diff options
| author | Jimmy Bergman <jimmy@sigint.se> | 2011-06-23 13:34:01 +0200 |
|---|---|---|
| committer | Jimmy Bergman <jimmy@sigint.se> | 2011-06-23 13:34:01 +0200 |
| commit | 3d1c8463d80932ddbe677ea1b8aee357642018a8 (patch) | |
| tree | 15948de511002332e24128573db7b09f0b1b52ba /nova | |
| parent | 51c20f6f85d76bc14f394221a8836d2aac9a1aea (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.py | 18 |
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 |
