diff --git a/hooks/ceilometer_hooks.py b/hooks/ceilometer_hooks.py index 62ee121..654fb4f 100755 --- a/hooks/ceilometer_hooks.py +++ b/hooks/ceilometer_hooks.py @@ -91,6 +91,7 @@ from ceilometer_utils import ( services, get_ceilometer_context, get_shared_secret, + GNOCCHI_SERVICE, do_openstack_upgrade, set_shared_secret, assess_status, @@ -426,10 +427,16 @@ def identity_notifications_changed(): # Some ceilometer services will create a client and request # the service catalog from keystone on startup. So if # endpoints change we need to restart these services. - key = '%s-endpoint-changed' % (CEILOMETER_SERVICE) - if key in notifications: - service_restart('ceilometer-alarm-evaluator') - service_restart('ceilometer-alarm-notifier') + restart_needed = False + for svc in [CEILOMETER_SERVICE, GNOCCHI_SERVICE]: + key = '%s-endpoint-changed' % (svc) + if key in notifications: + log('Change of endpoint {} detected, ' + 'trigger service restart'.format(svc)) + restart_needed = True + if restart_needed: + for restart_svc in services(): + service_restart(restart_svc) @hooks.hook("ceilometer-service-relation-joined") diff --git a/lib/ceilometer_utils.py b/lib/ceilometer_utils.py index cc26d8c..f66c753 100644 --- a/lib/ceilometer_utils.py +++ b/lib/ceilometer_utils.py @@ -107,6 +107,7 @@ MITAKA_SERVICES = [ CEILOMETER_DB = "ceilometer" CEILOMETER_SERVICE = "ceilometer" +GNOCCHI_SERVICE = "gnocchi" CEILOMETER_BASE_PACKAGES = [ 'haproxy', diff --git a/unit_tests/test_ceilometer_hooks.py b/unit_tests/test_ceilometer_hooks.py index d4b0372..a45d3d4 100644 --- a/unit_tests/test_ceilometer_hooks.py +++ b/unit_tests/test_ceilometer_hooks.py @@ -331,6 +331,7 @@ class CeilometerHooksTest(CharmTestCase): @patch('charmhelpers.core.hookenv.config') def test_identity_notifications_changed(self, mock_config): + self.services.return_value = ['svc1', 'svc2'] self.relation_ids.return_value = ['keystone-notifications:0'] self.relation_get.return_value = None @@ -340,8 +341,8 @@ class CeilometerHooksTest(CharmTestCase): (hooks.CEILOMETER_SERVICE)): 1} hooks.hooks.execute(['hooks/identity-notifications-relation-changed']) - call1 = call('ceilometer-alarm-evaluator') - call2 = call('ceilometer-alarm-notifier') + call1 = call('svc1') + call2 = call('svc2') self.service_restart.assert_has_calls([call1, call2], any_order=False) @patch('charmhelpers.core.hookenv.config')