A new embedded socket server for the metadata proxy is implemented.
This new implementation mimics the implementation of the
``UnixDomainWSGIServer`` class. The server listens to a file socket
that is populated by the HAProxy instance running inside the
network metadata namespace. The HAProxy writes the requests of the
virtual machines on the Unix file socket and the metadata proxy
sends the requests to the Nova metadata server.
This new implementation does not relies on ``neutron.api.wsgi.Server``
nor ``eventlet.wsgi.server``. It inherits from the built-in library
class ``socketserver.StreamRequestHandler``.
This implementation doesn't use ``oslo.services`` to spawn the
processes or the local threads depending on the ``metadata_workers``
configuration variable. Right now only the embedded form (local thread)
is implemented (metadata_workers=0, the default value). Future
implementations will enable again this configuration variable.
This patch also removes the use of ``oslo_service.launch`` to execute
the agent main thread. This should be restored once this library
removes the use of ``eventlet``.
Closes-Bug: #2087942
Change-Id: I007fb7452d709f4b711d8efb9dea5f374de668b4