]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
NSX: allow net-migration only in combined mode
authorarmando-migliaccio <armamig@gmail.com>
Tue, 29 Apr 2014 01:27:04 +0000 (18:27 -0700)
committerarmando-migliaccio <armamig@gmail.com>
Mon, 19 May 2014 14:49:41 +0000 (07:49 -0700)
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
neutron/tests/unit/vmware/etc/nsx.ini.combined.test [new file with mode: 0644]
neutron/tests/unit/vmware/test_nsx_opts.py

index d8236ec1b3bf084d18b82768b556e8f4c02ee06d..85811b66852e9eadda1c15d38524362216c437b5 100644 (file)
@@ -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 (file)
index 0000000..2a6f830
--- /dev/null
@@ -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
index 5dd105e05773b2240e1c697fb032eb983449992c..a5829810c63f41c29f16e704120a2e988ababe93 100644 (file)
@@ -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):