From 4b2914670e11a8b2487fa360596f3d85fc1620ee Mon Sep 17 00:00:00 2001 From: Giridhar Jayavelu Date: Mon, 8 Aug 2016 21:31:10 -0700 Subject: [PATCH] [dvs] set physical network as dvportgroup moid Prior to this patch, when provider network of type 'portgroup' was created, the physical network of the network was pointing to 'dvs'. This patch changes to use the dvportgroup moid to be consistent with the 'portgroup' provider network behavior in nsx plugin. Change-Id: I101fc935f1a63f5bf1ad75ce7357e20329c41d78 --- vmware_nsx/plugins/dvs/plugin.py | 5 +++-- vmware_nsx/tests/unit/dvs/test_plugin.py | 7 +++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/vmware_nsx/plugins/dvs/plugin.py b/vmware_nsx/plugins/dvs/plugin.py index dc76efa9d9..6d18554abe 100644 --- a/vmware_nsx/plugins/dvs/plugin.py +++ b/vmware_nsx/plugins/dvs/plugin.py @@ -146,6 +146,7 @@ class NsxDvsV2(addr_pair_db.AllowedAddressPairsMixin, if net_data.get(pnet.NETWORK_TYPE) == c_utils.NetworkTypes.VLAN: vlan_tag = net_data.get(pnet.SEGMENTATION_ID, 0) + net_id = None if net_data.get(pnet.NETWORK_TYPE) == c_utils.NetworkTypes.PORTGROUP: net_id = net_data.get(pnet.PHYSICAL_NETWORK) dvs_id = self._dvs._net_id_to_moref(net_id).value @@ -164,7 +165,7 @@ class NsxDvsV2(addr_pair_db.AllowedAddressPairsMixin, nsx_db.add_network_binding( context.session, new_net['id'], net_data.get(pnet.NETWORK_TYPE), - 'dvs', + net_id or 'dvs', vlan_tag) except Exception: with excutils.save_and_reraise_exception(): @@ -174,7 +175,7 @@ class NsxDvsV2(addr_pair_db.AllowedAddressPairsMixin, self._dvs.delete_port_group(dvs_id) new_net[pnet.NETWORK_TYPE] = net_data.get(pnet.NETWORK_TYPE) - new_net[pnet.PHYSICAL_NETWORK] = 'dvs' + new_net[pnet.PHYSICAL_NETWORK] = net_id or 'dvs' new_net[pnet.SEGMENTATION_ID] = vlan_tag # this extra lookup is necessary to get the diff --git a/vmware_nsx/tests/unit/dvs/test_plugin.py b/vmware_nsx/tests/unit/dvs/test_plugin.py index ba6bf18cf2..9853992a98 100644 --- a/vmware_nsx/tests/unit/dvs/test_plugin.py +++ b/vmware_nsx/tests/unit/dvs/test_plugin.py @@ -155,7 +155,8 @@ class NeutronSimpleDvsTest(test_plugin.NeutronDbPluginV2TestCase): self._plugin = manager.NeutronManager.get_plugin() def _create_and_delete_dvs_network(self, network_type='flat', vlan_tag=0): - params = {'provider:network_type': network_type} + params = {'provider:network_type': network_type, + 'provider:physical_network': 'fake-moid'} if network_type == 'vlan': params['provider:segmentation_id'] = vlan_tag params['arg_list'] = tuple(params.keys()) @@ -169,16 +170,18 @@ class NeutronSimpleDvsTest(test_plugin.NeutronDbPluginV2TestCase): dvs_id = '%s-%s' % (network['network']['name'], id) binding = nsx_db.get_network_bindings(ctx.session, id) self.assertIsNotNone(binding) - self.assertEqual('dvs', binding[0].phy_uuid) if network_type == 'flat': self.assertEqual('flat', binding[0].binding_type) self.assertEqual(0, binding[0].vlan_id) + self.assertEqual('dvs', binding[0].phy_uuid) elif network_type == 'vlan': self.assertEqual('vlan', binding[0].binding_type) self.assertEqual(vlan_tag, binding[0].vlan_id) + self.assertEqual('dvs', binding[0].phy_uuid) elif network_type == 'portgroup': self.assertEqual('portgroup', binding[0].binding_type) self.assertEqual(0, binding[0].vlan_id) + self.assertEqual('fake-moid', binding[0].phy_uuid) else: self.fail() if network_type != 'portgroup':