From 24d5d4819ede6728e98d376852e8007fe982fd70 Mon Sep 17 00:00:00 2001 From: armando-migliaccio Date: Mon, 28 Apr 2014 18:27:04 -0700 Subject: [PATCH] NSX: allow net-migration only in combined mode To allow migration of networks from the agent based model to the agentless one, both modes need to be available; prior to this change the extension was available in 'agentless' mode too; this may lead to leftovers during the migration step. This patch makes the extension available in 'combined' mode only, which was the intended behavior. Closes-bug: #1313985 Change-Id: I491ee3eaf25fc30c0ab4092ee198802a6b06d91d --- neutron/plugins/vmware/dhcpmeta_modes.py | 8 +++---- .../unit/vmware/etc/nsx.ini.combined.test | 17 ++++++++++++++ neutron/tests/unit/vmware/test_nsx_opts.py | 23 +++++++++++++++++++ 3 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 neutron/tests/unit/vmware/etc/nsx.ini.combined.test diff --git a/neutron/plugins/vmware/dhcpmeta_modes.py b/neutron/plugins/vmware/dhcpmeta_modes.py index d8236ec1b..85811b668 100644 --- a/neutron/plugins/vmware/dhcpmeta_modes.py +++ b/neutron/plugins/vmware/dhcpmeta_modes.py @@ -102,10 +102,10 @@ class DhcpMetadataAccess(object): cfg.CONF.set_override('network_auto_schedule', False) LOG.warn(_('network_auto_schedule has been disabled')) notifier = combined.DhcpAgentNotifyAPI(self, lsn_manager) - self.supported_extension_aliases.append(lsn.EXT_ALIAS) - # Add the capability to migrate dhcp and metadata services over - self.migration_manager = ( - migration.MigrationManager(self, lsn_manager, notifier)) + self.supported_extension_aliases.append(lsn.EXT_ALIAS) + # Add the capability to migrate dhcp and metadata services over + self.migration_manager = ( + migration.MigrationManager(self, lsn_manager, notifier)) return notifier def _init_extensions(self): diff --git a/neutron/tests/unit/vmware/etc/nsx.ini.combined.test b/neutron/tests/unit/vmware/etc/nsx.ini.combined.test new file mode 100644 index 000000000..2a6f8307c --- /dev/null +++ b/neutron/tests/unit/vmware/etc/nsx.ini.combined.test @@ -0,0 +1,17 @@ +[DEFAULT] +default_tz_uuid = fake_tz_uuid +nova_zone_id = whatever +nsx_controllers = fake_1, fake_2 +nsx_user = foo +nsx_password = bar +default_l3_gw_service_uuid = whatever +default_l2_gw_service_uuid = whatever +default_service_cluster_uuid = whatever +default_interface_name = whatever +req_timeout = 14 +http_timeout = 13 +redirects = 12 +retries = 11 + +[NSX] +agent_mode = combined diff --git a/neutron/tests/unit/vmware/test_nsx_opts.py b/neutron/tests/unit/vmware/test_nsx_opts.py index 5dd105e05..a5829810c 100644 --- a/neutron/tests/unit/vmware/test_nsx_opts.py +++ b/neutron/tests/unit/vmware/test_nsx_opts.py @@ -34,6 +34,7 @@ BASE_CONF_PATH = vmware.get_fake_conf('neutron.conf.test') NSX_INI_PATH = vmware.get_fake_conf('nsx.ini.basic.test') NSX_INI_FULL_PATH = vmware.get_fake_conf('nsx.ini.full.test') NSX_INI_AGENTLESS_PATH = vmware.get_fake_conf('nsx.ini.agentless.test') +NSX_INI_COMBINED_PATH = vmware.get_fake_conf('nsx.ini.combined.test') NVP_INI_DEPR_PATH = vmware.get_fake_conf('nvp.ini.full.test') @@ -158,6 +159,8 @@ class ConfigurationTest(base.BaseTestCase): plugin.supported_extension_aliases) self.assertNotIn('dhcp_agent_scheduler', plugin.supported_extension_aliases) + self.assertNotIn('lsn', + plugin.supported_extension_aliases) def test_agentless_extensions_version_fail(self): self.config_parse(args=['--config-file', BASE_CONF_PATH, @@ -198,6 +201,26 @@ class ConfigurationTest(base.BaseTestCase): self.assertIn('dhcp_agent_scheduler', plugin.supported_extension_aliases) + def test_combined_extensions(self): + self.config_parse(args=['--config-file', BASE_CONF_PATH, + '--config-file', NSX_INI_COMBINED_PATH]) + cfg.CONF.set_override('core_plugin', vmware.PLUGIN_NAME) + self.assertEqual(config.AgentModes.COMBINED, + cfg.CONF.NSX.agent_mode) + with mock.patch.object(client.NsxApiClient, + 'get_version', + return_value=version.Version("4.2")): + with mock.patch.object(lsnlib, + 'service_cluster_exists', + return_value=True): + plugin = manager.NeutronManager().get_plugin() + self.assertIn('agent', + plugin.supported_extension_aliases) + self.assertIn('dhcp_agent_scheduler', + plugin.supported_extension_aliases) + self.assertIn('lsn', + plugin.supported_extension_aliases) + class OldNVPConfigurationTest(base.BaseTestCase): -- 2.45.2