NSX|V3+P: Respect default keyword for physical_net
When user (or heat stack) specifies 'default' in physical_net for vlan provider network, default vlan tz should be used. Change-Id: I7b9ef1b71bc98c341e7fa94469def1e0a83528a8
This commit is contained in:
parent
2b8418926f
commit
699c8b4e6b
@ -763,6 +763,9 @@ class NsxPluginV3Base(agentschedulers_db.AZDhcpAgentSchedulerDbMixin,
|
||||
net_data[pnet.SEGMENTATION_ID] = free_ids[0]
|
||||
return net_data[pnet.SEGMENTATION_ID]
|
||||
|
||||
def _default_physical_net(self, physical_net):
|
||||
return physical_net is None or physical_net == 'default'
|
||||
|
||||
def _validate_provider_create(self, context, network_data,
|
||||
default_vlan_tz_uuid,
|
||||
default_overlay_tz_uuid,
|
||||
@ -811,11 +814,11 @@ class NsxPluginV3Base(agentschedulers_db.AZDhcpAgentSchedulerDbMixin,
|
||||
if not transparent_vlan:
|
||||
# Set VLAN id to 0 for flat networks
|
||||
vlan_id = '0'
|
||||
if physical_net is None:
|
||||
if self._default_physical_net(physical_net):
|
||||
physical_net = default_vlan_tz_uuid
|
||||
elif net_type == utils.NsxV3NetworkTypes.VLAN:
|
||||
# Use default VLAN transport zone if physical network not given
|
||||
if physical_net is None:
|
||||
if self._default_physical_net(physical_net):
|
||||
physical_net = default_vlan_tz_uuid
|
||||
|
||||
if not transparent_vlan:
|
||||
|
@ -25,6 +25,7 @@ from vmware_nsx.tests.unit.nsx_mh import test_plugin as test_nsx_plugin
|
||||
class TestProvidernet(test_nsx_plugin.NsxPluginV2TestCase):
|
||||
|
||||
def test_create_delete_provider_network_default_physical_net(self):
|
||||
'''Leaves physical_net unspecified'''
|
||||
data = {'network': {'name': 'net1',
|
||||
'admin_state_up': True,
|
||||
'tenant_id': 'admin',
|
||||
@ -38,6 +39,22 @@ class TestProvidernet(test_nsx_plugin.NsxPluginV2TestCase):
|
||||
res = req.get_response(self.api)
|
||||
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code)
|
||||
|
||||
def test_create_delete_provider_network_default_physical_net_2(self):
|
||||
'''Uses the 'default' keyword as physical_net'''
|
||||
data = {'network': {'name': 'net1',
|
||||
'admin_state_up': True,
|
||||
'tenant_id': 'admin',
|
||||
pnet.NETWORK_TYPE: 'vlan',
|
||||
pnet.SEGMENTATION_ID: 411,
|
||||
pnet.PHYSICAL_NETWORK: 'default'}}
|
||||
network_req = self.new_create_request('networks', data, self.fmt)
|
||||
net = self.deserialize(self.fmt, network_req.get_response(self.api))
|
||||
self.assertEqual(net['network'][pnet.NETWORK_TYPE], 'vlan')
|
||||
self.assertEqual(net['network'][pnet.SEGMENTATION_ID], 411)
|
||||
req = self.new_delete_request('networks', net['network']['id'])
|
||||
res = req.get_response(self.api)
|
||||
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code)
|
||||
|
||||
def test_create_provider_network(self):
|
||||
data = {'network': {'name': 'net1',
|
||||
'admin_state_up': True,
|
||||
|
Loading…
x
Reference in New Issue
Block a user