nebraska: Move NebraskaHandler into NebraskaServer

This is a handle that is used only by the NebraskaServer, but it is
currently dangling in the module. Moved it there.

BUG=chromium:920404
TEST=unittest

Change-Id: I6d498b22d4b651713df62727214a9900b6450500
Reviewed-on: https://chromium-review.googlesource.com/1521151
Commit-Ready: Amin Hassani <ahassani@chromium.org>
Tested-by: Amin Hassani <ahassani@chromium.org>
Reviewed-by: Xiaochu Liu <xiaochu@chromium.org>
diff --git a/nebraska/nebraska.py b/nebraska/nebraska.py
index d96c458..54367ab 100755
--- a/nebraska/nebraska.py
+++ b/nebraska/nebraska.py
@@ -668,29 +668,6 @@
                     self._install_payloads_address).GetXMLString()
 
 
-class NebraskaHandler(BaseHTTPRequestHandler):
-  """HTTP request handler for Omaha requests."""
-
-  def do_POST(self):
-    """Responds to XML-formatted Omaha requests."""
-    request_len = int(self.headers.getheader('content-length'))
-    request = self.rfile.read(request_len)
-    logging.debug("Received request: %s", request)
-
-    try:
-      response = self.server.owner.nebraska.GetResponseToRequest(request)
-    except Exception as err:
-      logging.error("Failed to handle request (%s)", str(err))
-      traceback.print_exc()
-      self.send_error(500, "Failed to handle incoming request")
-      return
-
-    self.send_response(200)
-    self.send_header('Content-Type', 'application/xml')
-    self.end_headers()
-    self.wfile.write(response)
-
-
 class NebraskaServer(object):
   """A simple Omaha server instance.
 
@@ -713,9 +690,32 @@
     self._server_thread = None
     self.nebraska = nebraska
 
+  class NebraskaHandler(BaseHTTPRequestHandler):
+    """HTTP request handler for Omaha requests."""
+
+    def do_POST(self):
+      """Responds to XML-formatted Omaha requests."""
+      request_len = int(self.headers.getheader('content-length'))
+      request = self.rfile.read(request_len)
+      logging.debug("Received request: %s", request)
+
+      try:
+        response = self.server.owner.nebraska.GetResponseToRequest(request)
+      except Exception as err:
+        logging.error("Failed to handle request (%s)", str(err))
+        traceback.print_exc()
+        self.send_error(500, "Failed to handle incoming request")
+        return
+
+      self.send_response(200)
+      self.send_header('Content-Type', 'application/xml')
+      self.end_headers()
+      self.wfile.write(response)
+
   def Start(self):
     """Starts a mock Omaha HTTP server."""
-    self._httpd = HTTPServer(('', self.GetPort()), NebraskaHandler)
+    self._httpd = HTTPServer(('', self.GetPort()),
+                             NebraskaServer.NebraskaHandler)
     self._port = self._httpd.server_port
     self._httpd.owner = self
     self._server_thread = threading.Thread(target=self._httpd.serve_forever)
diff --git a/nebraska/nebraska_unittest.py b/nebraska/nebraska_unittest.py
index 24e6d67..884446f 100755
--- a/nebraska/nebraska_unittest.py
+++ b/nebraska/nebraska_unittest.py
@@ -18,7 +18,7 @@
 _UPDATE_DIR = "test_update_dir"
 _PAYLOAD_ADDRESS = "111.222.212:2357"
 
-class MockNebraskaHandler(nebraska.NebraskaHandler):
+class MockNebraskaHandler(nebraska.NebraskaServer.NebraskaHandler):
   """Subclass NebraskaHandler to facilitate testing.
 
   Because of the complexity of the socket handling super class init functions,
@@ -111,7 +111,7 @@
         server.Start()
 
         server_mock.assert_called_once_with(
-            ('', _NEBRASKA_PORT), nebraska.NebraskaHandler)
+            ('', _NEBRASKA_PORT), nebraska.NebraskaServer.NebraskaHandler)
 
         # pylint: disable=protected-access
         thread_mock.assert_has_calls((