summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/keystone-all6
-rw-r--r--etc/keystone.conf1
-rw-r--r--keystone/common/wsgi.py11
-rw-r--r--keystone/config.py1
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')