diff --git a/senlin/engine/health_manager.py b/senlin/engine/health_manager.py index 982646049..9df994c46 100644 --- a/senlin/engine/health_manager.py +++ b/senlin/engine/health_manager.py @@ -71,10 +71,10 @@ def ListenerProc(exchange, project_id, cluster_id): NotificationEndpoint(project_id, cluster_id), ] listener = messaging.get_notification_listener( - transport, targets, endpoints, pool="senlin-listeners") + transport, targets, endpoints, executor='threading', + pool="senlin-listeners") listener.start() - listener.wait() class HealthManager(service.Service): @@ -162,6 +162,9 @@ class HealthManager(service.Service): 'params': cluster.params, } + LOG.info("Loading cluster %s for health monitoring", + cluster.cluster_id) + entry = self._start_check(entry) if entry: self.rt['registries'].append(entry) diff --git a/senlin/engine/service.py b/senlin/engine/service.py index 14aea1ca3..14207ffcb 100644 --- a/senlin/engine/service.py +++ b/senlin/engine/service.py @@ -114,13 +114,6 @@ class EngineService(service.Service): LOG.info(_LI("Starting dispatcher for engine %s"), self.engine_id) self.dispatcher.start() - # create a health manager RPC service for this engine. - self.health_mgr = health_manager.HealthManager( - self, self.health_mgr_topic, consts.RPC_API_VERSION) - - LOG.info(_LI("Starting health manager for engine %s"), self.engine_id) - self.health_mgr.start() - target = oslo_messaging.Target(version=consts.RPC_API_VERSION, server=self.host, topic=self.topic) @@ -128,6 +121,14 @@ class EngineService(service.Service): self._rpc_server = rpc_messaging.get_rpc_server(target, self) self._rpc_server.start() self.service_manage_cleanup() + + # create a health manager RPC service for this engine. + self.health_mgr = health_manager.HealthManager( + self, self.health_mgr_topic, consts.RPC_API_VERSION) + + LOG.info(_LI("Starting health manager for engine %s"), self.engine_id) + self.health_mgr.start() + self.TG.add_timer(cfg.CONF.periodic_interval, self.service_manage_report) super(EngineService, self).start() diff --git a/senlin/tests/unit/engine/test_health_manager.py b/senlin/tests/unit/engine/test_health_manager.py index 2e7729215..83bcb4aa0 100644 --- a/senlin/tests/unit/engine/test_health_manager.py +++ b/senlin/tests/unit/engine/test_health_manager.py @@ -64,9 +64,9 @@ class TestListenerProc(base.SenlinTestCase): exchange='EXCHANGE') mock_endpoint.assert_called_once_with('PROJECT_ID', 'CLUSTER_ID') mock_listener.assert_called_once_with( - x_transport, [x_target], [x_endpoint], pool="senlin-listeners") + x_transport, [x_target], [x_endpoint], + executor='threading', pool="senlin-listeners") x_listener.start.assert_called_once_with() - x_listener.wait.assert_called_once_with() class TestHealthManager(base.SenlinTestCase):