summaryrefslogtreecommitdiffstats
path: root/openstack
diff options
context:
space:
mode:
authorMichael Basnight <mbasnight@gmail.com>2012-12-06 11:51:37 -0600
committerMichael Basnight <mbasnight@gmail.com>2012-12-10 12:54:17 -0600
commit1438ac6107865f1440a6d6aea82c602f84898203 (patch)
treee2873873cfe8d2a32b5ccf39121545359e97f6c2 /openstack
parent7cf016a21558803039cfadd2b98cc5cab528972f (diff)
downloadoslo-1438ac6107865f1440a6d6aea82c602f84898203.tar.gz
oslo-1438ac6107865f1440a6d6aea82c602f84898203.tar.xz
oslo-1438ac6107865f1440a6d6aea82c602f84898203.zip
Make wsgi.Server comply with service.Launcher interface
fixes LP 1087369 Change-Id: Icf222b5bffe1f40a5c325ffe2a1b397f22713c00
Diffstat (limited to 'openstack')
-rw-r--r--openstack/common/wsgi.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/openstack/common/wsgi.py b/openstack/common/wsgi.py
index 60b14ef..f52fca0 100644
--- a/openstack/common/wsgi.py
+++ b/openstack/common/wsgi.py
@@ -55,27 +55,32 @@ class Service(service.Service):
Launcher classes in service.py.
"""
- def __init__(self, threads=1000):
+ def __init__(self, application, port,
+ host='0.0.0.0', backlog=128, threads=1000):
+ self.application = application
+ self._port = port
+ self._host = host
+ self.backlog = backlog
super(Service, self).__init__(threads)
- def start(self, application, port, host='0.0.0.0', backlog=128):
+ def start(self):
"""Start serving this service using the provided server instance.
:returns: None
"""
super(Service, self).start()
- socket = eventlet.listen((host, port), backlog=backlog)
- (self._host, self._port) = socket.getsockname()
- self.tg.add_thread(self._run, application, socket)
+ self._socket = eventlet.listen((self._host, self._port),
+ backlog=self.backlog)
+ self.tg.add_thread(self._run, self.application, self._socket)
@property
def host(self):
- return self._host
+ return self._socket.getsockname()[0] if self._socket else self._host
@property
def port(self):
- return self._port
+ return self._socket.getsockname()[1] if self._socket else self._port
def stop(self):
"""Stop serving this API.