From 620f738ddb51cb14b3e01a33e185bbcde9b766f5 Mon Sep 17 00:00:00 2001 From: Liam Young <liam.young@canonical.com> Date: Tue, 14 Oct 2014 06:48:48 +0000 Subject: [PATCH] Update unit tests and pass nsx settings to nsx plugin --- hooks/neutron_api_context.py | 1 - hooks/neutron_api_hooks.py | 20 ++++++++++++---- unit_tests/test_neutron_api_context.py | 32 +++++++++++++++++++++++--- unit_tests/test_neutron_api_hooks.py | 2 ++ 4 files changed, 46 insertions(+), 9 deletions(-) diff --git a/hooks/neutron_api_context.py b/hooks/neutron_api_context.py index 3a9d76ba..081c7814 100644 --- a/hooks/neutron_api_context.py +++ b/hooks/neutron_api_context.py @@ -80,7 +80,6 @@ class NeutronCCContext(context.NeutronContext): def __call__(self): from neutron_api_utils import api_port ctxt = super(NeutronCCContext, self).__call__() - ctxt['external_network'] = config('neutron-external-network') if config('neutron-plugin') == 'nsx': ctxt['nvp_username'] = config('nvp-username') ctxt['nvp_password'] = config('nvp-password') diff --git a/hooks/neutron_api_hooks.py b/hooks/neutron_api_hooks.py index 5258b06a..acff240b 100755 --- a/hooks/neutron_api_hooks.py +++ b/hooks/neutron_api_hooks.py @@ -299,11 +299,21 @@ def neutron_api_relation_changed(): @hooks.hook('neutron-plugin-api-relation-joined') def neutron_plugin_api_relation_joined(rid=None): - relation_data = { - 'neutron-security-groups': config('neutron-security-groups'), - 'l2-population': get_l2population(), - 'overlay-network-type': get_overlay_network_type(), - } + if config('neutron-plugin') == 'nsx': + relation_data = { + 'nvp-username': config('nvp-username'), + 'nvp-password': config('nvp-password'), + 'nvp-cluster-name': config('nvp-cluster-name'), + 'nvp-tz-uuid': config('nvp-tz-uuid'), + 'nvp-l3-uuid': config('nvp-l3-uuid'), + 'nvp-controllers': config('nvp-controllers'), + } + else: + relation_data = { + 'neutron-security-groups': config('neutron-security-groups'), + 'l2-population': get_l2population(), + 'overlay-network-type': get_overlay_network_type(), + } relation_set(relation_id=rid, **relation_data) diff --git a/unit_tests/test_neutron_api_context.py b/unit_tests/test_neutron_api_context.py index 437395b5..9a09e6bd 100644 --- a/unit_tests/test_neutron_api_context.py +++ b/unit_tests/test_neutron_api_context.py @@ -122,10 +122,10 @@ class HAProxyContextTest(CharmTestCase): _open.assert_called_with('/etc/default/haproxy', 'w') -class NeutronAPIContextsTest(CharmTestCase): +class NeutronCCContextTest(CharmTestCase): def setUp(self): - super(NeutronAPIContextsTest, self).setUp(context, TO_PATCH) + super(NeutronCCContextTest, self).setUp(context, TO_PATCH) self.relation_get.side_effect = self.test_relation.get self.config.side_effect = self.test_config.get self.api_port = 9696 @@ -135,9 +135,15 @@ class NeutronAPIContextsTest(CharmTestCase): self.test_config.set('debug', True) self.test_config.set('verbose', True) self.test_config.set('neutron-external-network', 'bob') + self.test_config.set('nvp-username', 'bob') + self.test_config.set('nvp-password', 'hardpass') + self.test_config.set('nvp-cluster-name', 'nsxclus') + self.test_config.set('nvp-tz-uuid', 'tzuuid') + self.test_config.set('nvp-l3-uuid', 'l3uuid') + self.test_config.set('nvp-controllers', 'ctrl1 ctrl2') def tearDown(self): - super(NeutronAPIContextsTest, self).tearDown() + super(NeutronCCContextTest, self).tearDown() @patch.object(context.NeutronCCContext, 'network_manager') @patch.object(context.NeutronCCContext, 'plugin') @@ -209,3 +215,23 @@ class NeutronAPIContextsTest(CharmTestCase): with patch.object(napi_ctxt, '_ensure_packages') as ep: napi_ctxt._ensure_packages() ep.assert_has_calls([]) + + @patch.object(context.NeutronCCContext, 'network_manager') + @patch.object(context.NeutronCCContext, 'plugin') + @patch('__builtin__.__import__') + def test_neutroncc_context_nsx(self, _import, plugin, nm): + plugin.return_value = 'nsx' + self.related_units.return_value = [] + self.test_config.set('neutron-plugin', 'nsx') + napi_ctxt = context.NeutronCCContext()() + expect = { + 'nvp_cluster_name': 'nsxclus', + 'nvp_controllers': 'ctrl1,ctrl2', + 'nvp_controllers_list': ['ctrl1', 'ctrl2'], + 'nvp_l3_uuid': 'l3uuid', + 'nvp_password': 'hardpass', + 'nvp_tz_uuid': 'tzuuid', + 'nvp_username': 'bob', + } + for key in expect.iterkeys(): + self.assertEquals(napi_ctxt[key], expect[key]) diff --git a/unit_tests/test_neutron_api_hooks.py b/unit_tests/test_neutron_api_hooks.py index e350f87a..b4d40ce2 100644 --- a/unit_tests/test_neutron_api_hooks.py +++ b/unit_tests/test_neutron_api_hooks.py @@ -33,6 +33,7 @@ TO_PATCH = [ 'determine_ports', 'do_openstack_upgrade', 'execd_preinstall', + 'filter_installed_packages', 'get_l2population', 'get_overlay_network_type', 'is_relation_made', @@ -111,6 +112,7 @@ class NeutronAPIHooksTests(CharmTestCase): self.assertTrue(_id_cluster_joined.called) self.assertTrue(self.CONFIGS.write_all.called) self.assertTrue(self.do_openstack_upgrade.called) + self.assertTrue(self.apt_install.called) def test_amqp_joined(self): self._call_hook('amqp-relation-joined')