summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorJimmy Bergman <jimmy@sigint.se>2011-06-23 13:34:01 +0200
committerJimmy Bergman <jimmy@sigint.se>2011-06-23 13:34:01 +0200
commit3d1c8463d80932ddbe677ea1b8aee357642018a8 (patch)
tree15948de511002332e24128573db7b09f0b1b52ba /nova
parent51c20f6f85d76bc14f394221a8836d2aac9a1aea (diff)
Change so that the flash socket policy server is using eventlet instead of twisted and is running in the same process as the main vnx proxy
Diffstat (limited to 'nova')
-rw-r--r--nova/wsgi.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/nova/wsgi.py b/nova/wsgi.py
index 33ba852bc..700142f42 100644
--- a/nova/wsgi.py
+++ b/nova/wsgi.py
@@ -70,6 +70,15 @@ class Server(object):
if key:
self.socket_info[key] = socket.getsockname()
+ def start_tcp(self, listener, port, host='0.0.0.0', key=None, backlog=128):
+ """Run a raw TCP server with the given application."""
+ arg0 = sys.argv[0]
+ logging.audit(_('Starting TCP server %(arg0)s on %(host)s:%(port)s') % locals())
+ socket = eventlet.listen((host, port), backlog=backlog)
+ self.pool.spawn_n(self._run_tcp, listener, socket)
+ if key:
+ self.socket_info[key] = socket.getsockname()
+
def wait(self):
"""Wait until all servers have completed running."""
try:
@@ -83,6 +92,15 @@ class Server(object):
eventlet.wsgi.server(socket, application, custom_pool=self.pool,
log=WritableLogger(logger))
+ def _run_tcp(self, listener, socket):
+ """Start a raw TCP server in a new green thread."""
+ while True:
+ try:
+ new_sock, address = socket.accept()
+ self.pool.spawn_n(listener, new_sock)
+ except (SystemExit, KeyboardInterrupt):
+ pass
+
class Request(webob.Request):
pass