Esempio n. 1
0
 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)
Esempio n. 2
0
 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]