Make bind host configurable
* fixes bug 945868 Change-Id: Ib33dc9ad1878a9215c1a1ab10814fa7d0905cbdb
This commit is contained in:
@@ -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)
|
||||
|
@@ -1,4 +1,5 @@
|
||||
[DEFAULT]
|
||||
bind_host = 0.0.0.0
|
||||
public_port = 5000
|
||||
admin_port = 35357
|
||||
admin_token = ADMIN
|
||||
|
@@ -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()
|
||||
|
@@ -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')
|
||||
|
Reference in New Issue
Block a user