diff --git a/files/event_pipeline_alarm.yaml b/files/event_pipeline_alarm.yaml new file mode 100644 index 0000000000000000000000000000000000000000..626006fae1bd1c9842bfd2026b6e4dd2aa2f1ed4 --- /dev/null +++ b/files/event_pipeline_alarm.yaml @@ -0,0 +1,13 @@ +--- +sources: + - name: event_source + events: + - "*" + sinks: + - event_sink +sinks: + - name: event_sink + transformers: + publishers: + - notifier:// + - notifier://?topic=alarm.all diff --git a/hooks/ceilometer_hooks.py b/hooks/ceilometer_hooks.py index 7f18c0afd15cbf9dc5596853450906cf63aede07..afd6cd0d6787ef1c9401daa7b0401fb51cd03f25 100755 --- a/hooks/ceilometer_hooks.py +++ b/hooks/ceilometer_hooks.py @@ -184,6 +184,7 @@ def config_changed(): if openstack_upgrade_available('ceilometer-common'): status_set('maintenance', 'Upgrading to new OpenStack release') do_openstack_upgrade(CONFIGS) + install_event_pipeline_setting() update_nrpe_config() CONFIGS.write_all() # NOTE(jamespage): Drop when charm switches to apache2+mod_wsgi @@ -204,6 +205,14 @@ def config_changed(): ha_joined(rid) +def install_event_pipeline_setting(): + src_file = 'files/event_pipeline_alarm.yaml' + dest_file = '/etc/ceilometer/event_pipeline_alarm.yaml' + if not os.path.isdir(os.path.dirname(dest_file)): + os.makedirs(os.path.dirname(dest_file)) + shutil.copy(src_file, dest_file) + + @hooks.hook('upgrade-charm') @harden() def upgrade_charm(): diff --git a/templates/mitaka/ceilometer.conf b/templates/mitaka/ceilometer.conf index dc64536150ded9f98c7afc607e41242f629c0deb..6c7c920daf3d166242cf8cb82ac8904c0c156012 100644 --- a/templates/mitaka/ceilometer.conf +++ b/templates/mitaka/ceilometer.conf @@ -8,6 +8,7 @@ debug = {{ debug }} verbose = {{ verbose }} use_syslog = {{ use_syslog }} +event_pipeline_cfg_file = /etc/ceilometer/event_pipeline_alarm.yaml [api] port = {{ port }} diff --git a/unit_tests/test_ceilometer_hooks.py b/unit_tests/test_ceilometer_hooks.py index 878496a15084c2f5b1429d6da16dc862898cf9cd..5bd4f823090bb2f4c89a7c07c380a86017cb911e 100644 --- a/unit_tests/test_ceilometer_hooks.py +++ b/unit_tests/test_ceilometer_hooks.py @@ -147,44 +147,51 @@ class CeilometerHooksTest(CharmTestCase): self.assertTrue(changed.called) self.assertTrue(install.called) + @patch.object(hooks, 'install_event_pipeline_setting') @patch('charmhelpers.core.hookenv.config') @patch.object(hooks, 'ceilometer_joined') @patch.object(hooks, 'install_ceilometer_ocf') def test_config_changed_no_upgrade(self, ocf, - joined, mock_config): + joined, mock_config, event_pipe): self.openstack_upgrade_available.return_value = False hooks.hooks.execute(['hooks/config-changed']) self.openstack_upgrade_available.\ assert_called_with('ceilometer-common') self.assertFalse(self.do_openstack_upgrade.called) + self.assertTrue(event_pipe.called) self.assertTrue(self.CONFIGS.write_all.called) self.assertTrue(joined.called) self.assertTrue(self.reload_systemd.called) self.assertTrue(ocf.called) + @patch.object(hooks, 'install_event_pipeline_setting') @patch('charmhelpers.core.hookenv.config') @patch.object(hooks, 'ceilometer_joined') @patch.object(hooks, 'install_ceilometer_ocf') def test_config_changed_upgrade(self, ocf, - joined, mock_config): + joined, mock_config, event_pipe): self.openstack_upgrade_available.return_value = True hooks.hooks.execute(['hooks/config-changed']) self.openstack_upgrade_available.\ assert_called_with('ceilometer-common') self.assertTrue(self.do_openstack_upgrade.called) + self.assertTrue(event_pipe.called) self.assertTrue(self.CONFIGS.write_all.called) self.assertTrue(joined.called) self.assertTrue(self.reload_systemd.called) self.assertTrue(ocf.called) + @patch.object(hooks, 'install_event_pipeline_setting') @patch.object(hooks, 'install_ceilometer_ocf') - def test_config_changed_with_openstack_upgrade_action(self, ocf): + def test_config_changed_with_openstack_upgrade_action(self, ocf, + event_pipe): self.openstack_upgrade_available.return_value = True self.test_config.set('action-managed-upgrade', True) hooks.hooks.execute(['hooks/config-changed']) self.assertFalse(self.do_openstack_upgrade.called) + self.assertTrue(event_pipe.called) self.assertTrue(ocf.called) @patch.object(hooks, 'canonical_url')