diff options
-rwxr-xr-x | bin/keystone-all | 6 | ||||
-rw-r--r-- | etc/keystone.conf | 1 | ||||
-rw-r--r-- | keystone/common/wsgi.py | 11 | ||||
-rw-r--r-- | keystone/config.py | 1 |
4 files changed, 12 insertions, 7 deletions
diff --git a/bin/keystone-all b/bin/keystone-all index 5dddd147..f7221ae1 100755 --- a/bin/keystone-all +++ b/bin/keystone-all @@ -25,9 +25,9 @@ from keystone.common import wsgi CONF = config.CONF -def create_server(conf, name, port): +def create_server(conf, name, host, port): app = deploy.loadapp('config:%s' % conf, name=name) - return wsgi.Server(app, port) + return wsgi.Server(app, host=host, port=port) def serve(*servers): @@ -65,8 +65,10 @@ if __name__ == '__main__': servers = [] servers.append(create_server(CONF.config_file[0], 'admin', + options['bind_host'], int(options['admin_port']))) servers.append(create_server(CONF.config_file[0], 'main', + options['bind_host'], int(options['public_port']))) serve(*servers) diff --git a/etc/keystone.conf b/etc/keystone.conf index d1d51d74..5f74fb9c 100644 --- a/etc/keystone.conf +++ b/etc/keystone.conf @@ -1,4 +1,5 @@ [DEFAULT] +bind_host = 0.0.0.0 public_port = 5000 admin_port = 35357 admin_token = ADMIN diff --git a/keystone/common/wsgi.py b/keystone/common/wsgi.py index 6279d4cc..f8a7e2f1 100644 --- a/keystone/common/wsgi.py +++ b/keystone/common/wsgi.py @@ -51,20 +51,21 @@ class WritableLogger(object): class Server(object): """Server class to manage multiple WSGI sockets and applications.""" - def __init__(self, application, port, threads=1000): + def __init__(self, application, host=None, port=None, threads=1000): self.application = application - self.port = port + self.host = host or '0.0.0.0' + self.port = port or 0 self.pool = eventlet.GreenPool(threads) self.socket_info = {} self.greenthread = None - def start(self, host='0.0.0.0', key=None, backlog=128): + def start(self, key=None, backlog=128): """Run a WSGI server with the given application.""" logging.debug('Starting %(arg0)s on %(host)s:%(port)s' % {'arg0': sys.argv[0], - 'host': host, + 'host': self.host, 'port': self.port}) - socket = eventlet.listen((host, self.port), backlog=backlog) + socket = eventlet.listen((self.host, self.port), backlog=backlog) self.greenthread = self.pool.spawn(self._run, self.application, socket) if key: self.socket_info[key] = socket.getsockname() diff --git a/keystone/config.py b/keystone/config.py index 61643fc2..ba4f7b25 100644 --- a/keystone/config.py +++ b/keystone/config.py @@ -139,6 +139,7 @@ CONF = CommonConfig(project='keystone') register_str('admin_token', default='ADMIN') +register_str('bind_host', default='0.0.0.0') register_str('compute_port') register_str('admin_port') register_str('public_port') |