def _create_and_delete_dvs_network(self, network_type='flat', vlan_tag=0): params = {'provider:network_type': network_type} if network_type == 'vlan': params['provider:segmentation_id'] = vlan_tag params['arg_list'] = tuple(params.keys()) with contextlib.nested( mock.patch.object(self._plugin._dvs, 'add_port_group'), mock.patch.object(self._plugin._dvs, 'delete_port_group') ) as (mock_add, mock_delete): with self.network(**params) as network: ctx = context.get_admin_context() id = network['network']['id'] 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) elif network_type == 'vlan': self.assertEqual('vlan', binding[0].binding_type) self.assertEqual(vlan_tag, binding[0].vlan_id) else: self.fail() mock_add.assert_called_once_with(dvs_id, vlan_tag)
def _extend_network_dict_provider(self, context, network, multiprovider=None, bindings=None): if not bindings: bindings = nsx_db.get_network_bindings(context.session, network['id']) if not multiprovider: multiprovider = nsx_db.is_multiprovider_network(context.session, network['id']) # With NSX plugin 'normal' overlay networks will have no binding # TODO(salvatore-orlando) make sure users can specify a distinct # phy_uuid as 'provider network' for STT net type if bindings: if not multiprovider: # network came in through provider networks api network[pnet.NETWORK_TYPE] = bindings[0].binding_type network[pnet.PHYSICAL_NETWORK] = bindings[0].phy_uuid network[pnet.SEGMENTATION_ID] = bindings[0].vlan_id else: # network come in though multiprovider networks api network[mpnet.SEGMENTS] = [ {pnet.NETWORK_TYPE: binding.binding_type, pnet.PHYSICAL_NETWORK: binding.phy_uuid, pnet.SEGMENTATION_ID: binding.vlan_id} for binding in bindings]