summaryrefslogtreecommitdiffstats
path: root/nova/service.py
diff options
context:
space:
mode:
Diffstat (limited to 'nova/service.py')
-rw-r--r--nova/service.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/nova/service.py b/nova/service.py
index 45bdf7ec0..15d1ca887 100644
--- a/nova/service.py
+++ b/nova/service.py
@@ -111,7 +111,7 @@ class Launcher(object):
"""
self._services = []
- eventlet_backdoor.initialize_if_enabled()
+ self.backdoor_port = eventlet_backdoor.initialize_if_enabled()
@staticmethod
def run_server(server):
@@ -131,6 +131,8 @@ class Launcher(object):
:returns: None
"""
+ if self.backdoor_port is not None:
+ server.backdoor_port = self.backdoor_port
gt = eventlet.spawn(self.run_server, server)
self._services.append(gt)
@@ -382,6 +384,7 @@ class Service(object):
self.periodic_fuzzy_delay = periodic_fuzzy_delay
self.saved_args, self.saved_kwargs = args, kwargs
self.timers = []
+ self.backdoor_port = None
def start(self):
vcs_string = version.version_string_with_vcs()
@@ -400,6 +403,9 @@ class Service(object):
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)
LOG.debug(_("Creating Consumer connection for Service %s") %
self.topic)
@@ -578,6 +584,7 @@ class WSGIService(object):
port=self.port)
# Pull back actual port used
self.port = self.server.port
+ self.backdoor_port = None
def _get_manager(self):
"""Initialize a Manager object appropriate for this service.
@@ -612,6 +619,8 @@ class WSGIService(object):
if self.manager:
self.manager.init_host()
self.manager.pre_start_hook()
+ if self.backdoor_port is not None:
+ self.manager.backdoor_port = self.backdoor_port
self.server.start()
if self.manager:
self.manager.post_start_hook()