From 3120b33ef6d35da282b10ea421c2b615d913024d Mon Sep 17 00:00:00 2001 From: James Page Date: Tue, 28 Jun 2016 11:30:50 +0100 Subject: [PATCH] Update for changes to charms.openstack, ensure aodh is installed before configuration and rendering --- src/reactive/aodh_handlers.py | 3 +++ unit_tests/test_aodh_handlers.py | 9 ++++++--- unit_tests/test_lib_charm_openstack_aodh.py | 12 ++++++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/reactive/aodh_handlers.py b/src/reactive/aodh_handlers.py index 37528c5..f725d27 100644 --- a/src/reactive/aodh_handlers.py +++ b/src/reactive/aodh_handlers.py @@ -67,18 +67,21 @@ def render(*args): aodh.assess_status() +@reactive.when('charm.installed') @reactive.when_not('cluster.available') @reactive.when(*MINIMAL_INTERFACES) def render_unclustered(*args): render(*args) +@reactive.when('charm.installed') @reactive.when('cluster.available', *MINIMAL_INTERFACES) def render_clustered(*args): render(*args) +@reactive.when('charm.installed') @reactive.when('config.complete') @reactive.when_not('db.synced') def run_db_migration(): diff --git a/unit_tests/test_aodh_handlers.py b/unit_tests/test_aodh_handlers.py index 354dd76..924d85a 100644 --- a/unit_tests/test_aodh_handlers.py +++ b/unit_tests/test_aodh_handlers.py @@ -104,14 +104,17 @@ class TestAodhHandlers(unittest.TestCase): 'setup_amqp_req': ('amqp.connected', ), 'setup_database': ('shared-db.connected', ), 'setup_endpoint': ('identity-service.connected', ), - 'render_unclustered': ('shared-db.available', + 'render_unclustered': ('charm.installed', + 'shared-db.available', 'identity-service.available', 'amqp.available',), - 'render_clustered': ('shared-db.available', + 'render_clustered': ('charm.installed', + 'shared-db.available', 'identity-service.available', 'amqp.available', 'cluster.available',), - 'run_db_migration': ('config.complete', ), + 'run_db_migration': ('charm.installed', + 'config.complete', ), 'cluster_connected': ('ha.connected', ), } when_not_patterns = { diff --git a/unit_tests/test_lib_charm_openstack_aodh.py b/unit_tests/test_lib_charm_openstack_aodh.py index da55a9e..9f07eaa 100644 --- a/unit_tests/test_lib_charm_openstack_aodh.py +++ b/unit_tests/test_lib_charm_openstack_aodh.py @@ -47,11 +47,15 @@ class Helper(unittest.TestCase): class TestOpenStackAodh(Helper): def test_install(self): + self.patch(aodh.AodhCharm, + 'set_config_defined_certs_and_keys') self.patch(aodh.AodhCharm.singleton, 'install') aodh.install() self.install.assert_called_once_with() def test_setup_endpoint(self): + self.patch(aodh.AodhCharm, + 'set_config_defined_certs_and_keys') self.patch(aodh.AodhCharm, 'service_name', new_callable=mock.PropertyMock) self.patch(aodh.AodhCharm, 'region', @@ -73,6 +77,8 @@ class TestOpenStackAodh(Helper): 'type1', 'region1', 'public_url', 'internal_url', 'admin_url') def test_render_configs(self): + self.patch(aodh.AodhCharm, + 'set_config_defined_certs_and_keys') self.patch(aodh.AodhCharm.singleton, 'render_with_interfaces') aodh.render_configs('interfaces-list') self.render_with_interfaces.assert_called_once_with( @@ -87,6 +93,8 @@ class TestAodhAdapters(Helper): 'keystone-api-version': '2', } config.side_effect = lambda: reply + self.patch(aodh.charms_openstack.adapters.APIConfigurationAdapter, + 'get_network_addresses') amqp_relation = mock.MagicMock() amqp_relation.relation_name = 'amqp' shared_db_relation = mock.MagicMock() @@ -112,11 +120,15 @@ class TestAodhAdapters(Helper): class TestAodhCharm(Helper): def test__init__(self): + self.patch(aodh.AodhCharm, + 'set_config_defined_certs_and_keys') self.patch(aodh.ch_utils, 'os_release') aodh.AodhCharm() self.os_release.assert_called_once_with('python-keystonemiddleware') def test_install(self): + self.patch(aodh.AodhCharm, + 'set_config_defined_certs_and_keys') b = aodh.AodhCharm() self.patch(aodh.charms_openstack.charm.OpenStackCharm, 'configure_source')