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
|
CONF = config.CONF
|
||||||
|
|
||||||
|
|
||||||
def create_server(conf, name, port):
|
def create_server(conf, name, host, port):
|
||||||
app = deploy.loadapp('config:%s' % conf, name=name)
|
app = deploy.loadapp('config:%s' % conf, name=name)
|
||||||
return wsgi.Server(app, port)
|
return wsgi.Server(app, host=host, port=port)
|
||||||
|
|
||||||
|
|
||||||
def serve(*servers):
|
def serve(*servers):
|
||||||
@@ -65,8 +65,10 @@ if __name__ == '__main__':
|
|||||||
servers = []
|
servers = []
|
||||||
servers.append(create_server(CONF.config_file[0],
|
servers.append(create_server(CONF.config_file[0],
|
||||||
'admin',
|
'admin',
|
||||||
|
options['bind_host'],
|
||||||
int(options['admin_port'])))
|
int(options['admin_port'])))
|
||||||
servers.append(create_server(CONF.config_file[0],
|
servers.append(create_server(CONF.config_file[0],
|
||||||
'main',
|
'main',
|
||||||
|
options['bind_host'],
|
||||||
int(options['public_port'])))
|
int(options['public_port'])))
|
||||||
serve(*servers)
|
serve(*servers)
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
|
bind_host = 0.0.0.0
|
||||||
public_port = 5000
|
public_port = 5000
|
||||||
admin_port = 35357
|
admin_port = 35357
|
||||||
admin_token = ADMIN
|
admin_token = ADMIN
|
||||||
|
@@ -51,20 +51,21 @@ class WritableLogger(object):
|
|||||||
class Server(object):
|
class Server(object):
|
||||||
"""Server class to manage multiple WSGI sockets and applications."""
|
"""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.application = application
|
||||||
self.port = port
|
self.host = host or '0.0.0.0'
|
||||||
|
self.port = port or 0
|
||||||
self.pool = eventlet.GreenPool(threads)
|
self.pool = eventlet.GreenPool(threads)
|
||||||
self.socket_info = {}
|
self.socket_info = {}
|
||||||
self.greenthread = None
|
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."""
|
"""Run a WSGI server with the given application."""
|
||||||
logging.debug('Starting %(arg0)s on %(host)s:%(port)s' %
|
logging.debug('Starting %(arg0)s on %(host)s:%(port)s' %
|
||||||
{'arg0': sys.argv[0],
|
{'arg0': sys.argv[0],
|
||||||
'host': host,
|
'host': self.host,
|
||||||
'port': self.port})
|
'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)
|
self.greenthread = self.pool.spawn(self._run, self.application, socket)
|
||||||
if key:
|
if key:
|
||||||
self.socket_info[key] = socket.getsockname()
|
self.socket_info[key] = socket.getsockname()
|
||||||
|
@@ -139,6 +139,7 @@ CONF = CommonConfig(project='keystone')
|
|||||||
|
|
||||||
|
|
||||||
register_str('admin_token', default='ADMIN')
|
register_str('admin_token', default='ADMIN')
|
||||||
|
register_str('bind_host', default='0.0.0.0')
|
||||||
register_str('compute_port')
|
register_str('compute_port')
|
||||||
register_str('admin_port')
|
register_str('admin_port')
|
||||||
register_str('public_port')
|
register_str('public_port')
|
||||||
|
Reference in New Issue
Block a user