diff options
Diffstat (limited to 'nova/service.py')
-rw-r--r-- | nova/service.py | 11 |
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() |