Add support for backdoor_port to be returned with a rpc call.
This adds an rpc call for compute and network that will return the eventlet_backdoor port for the service. Change-Id: I95fdb5ca9bce9f3128300e3b5601fb2b2fc5e82f Signed-off-by: Matthew Treinish <treinish@linux.vnet.ibm.com>
This commit is contained in:
@@ -64,7 +64,7 @@ backdoor_locals = {
|
|||||||
|
|
||||||
def initialize_if_enabled():
|
def initialize_if_enabled():
|
||||||
if CONF.backdoor_port is None:
|
if CONF.backdoor_port is None:
|
||||||
return
|
return None
|
||||||
|
|
||||||
# NOTE(johannes): The standard sys.displayhook will print the value of
|
# NOTE(johannes): The standard sys.displayhook will print the value of
|
||||||
# the last expression and set it to __builtin__._, which overwrites
|
# the last expression and set it to __builtin__._, which overwrites
|
||||||
@@ -76,6 +76,8 @@ def initialize_if_enabled():
|
|||||||
pprint.pprint(val)
|
pprint.pprint(val)
|
||||||
sys.displayhook = displayhook
|
sys.displayhook = displayhook
|
||||||
|
|
||||||
eventlet.spawn(eventlet.backdoor.backdoor_server,
|
sock = eventlet.listen(('localhost', CONF.backdoor_port))
|
||||||
eventlet.listen(('localhost', CONF.backdoor_port)),
|
port = sock.getsockname()[1]
|
||||||
|
eventlet.spawn(eventlet.backdoor.backdoor_server, sock,
|
||||||
locals=backdoor_locals)
|
locals=backdoor_locals)
|
||||||
|
return port
|
||||||
|
|||||||
@@ -140,6 +140,7 @@ class Manager(base.Base):
|
|||||||
host = CONF.host
|
host = CONF.host
|
||||||
self.host = host
|
self.host = host
|
||||||
self.load_plugins()
|
self.load_plugins()
|
||||||
|
self.backdoor_port = None
|
||||||
super(Manager, self).__init__(db_driver)
|
super(Manager, self).__init__(db_driver)
|
||||||
|
|
||||||
def load_plugins(self):
|
def load_plugins(self):
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ class Launcher(object):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
self._services = []
|
self._services = []
|
||||||
eventlet_backdoor.initialize_if_enabled()
|
self.backdoor_port = eventlet_backdoor.initialize_if_enabled()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def run_server(server):
|
def run_server(server):
|
||||||
@@ -131,6 +131,8 @@ class Launcher(object):
|
|||||||
:returns: None
|
:returns: None
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
if self.backdoor_port is not None:
|
||||||
|
server.backdoor_port = self.backdoor_port
|
||||||
gt = eventlet.spawn(self.run_server, server)
|
gt = eventlet.spawn(self.run_server, server)
|
||||||
self._services.append(gt)
|
self._services.append(gt)
|
||||||
|
|
||||||
@@ -382,6 +384,7 @@ class Service(object):
|
|||||||
self.periodic_fuzzy_delay = periodic_fuzzy_delay
|
self.periodic_fuzzy_delay = periodic_fuzzy_delay
|
||||||
self.saved_args, self.saved_kwargs = args, kwargs
|
self.saved_args, self.saved_kwargs = args, kwargs
|
||||||
self.timers = []
|
self.timers = []
|
||||||
|
self.backdoor_port = None
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
vcs_string = version.version_string_with_vcs()
|
vcs_string = version.version_string_with_vcs()
|
||||||
@@ -400,6 +403,9 @@ class Service(object):
|
|||||||
|
|
||||||
self.manager.pre_start_hook()
|
self.manager.pre_start_hook()
|
||||||
|
|
||||||
|
if self.backdoor_port is not None:
|
||||||
|
self.manager.backdoor_port = self.backdoor_port
|
||||||
|
|
||||||
self.conn = rpc.create_connection(new=True)
|
self.conn = rpc.create_connection(new=True)
|
||||||
LOG.debug(_("Creating Consumer connection for Service %s") %
|
LOG.debug(_("Creating Consumer connection for Service %s") %
|
||||||
self.topic)
|
self.topic)
|
||||||
@@ -578,6 +584,7 @@ class WSGIService(object):
|
|||||||
port=self.port)
|
port=self.port)
|
||||||
# Pull back actual port used
|
# Pull back actual port used
|
||||||
self.port = self.server.port
|
self.port = self.server.port
|
||||||
|
self.backdoor_port = None
|
||||||
|
|
||||||
def _get_manager(self):
|
def _get_manager(self):
|
||||||
"""Initialize a Manager object appropriate for this service.
|
"""Initialize a Manager object appropriate for this service.
|
||||||
@@ -612,6 +619,8 @@ class WSGIService(object):
|
|||||||
if self.manager:
|
if self.manager:
|
||||||
self.manager.init_host()
|
self.manager.init_host()
|
||||||
self.manager.pre_start_hook()
|
self.manager.pre_start_hook()
|
||||||
|
if self.backdoor_port is not None:
|
||||||
|
self.manager.backdoor_port = self.backdoor_port
|
||||||
self.server.start()
|
self.server.start()
|
||||||
if self.manager:
|
if self.manager:
|
||||||
self.manager.post_start_hook()
|
self.manager.post_start_hook()
|
||||||
|
|||||||
Reference in New Issue
Block a user