Send network name and uuid to subnet create

Added the network segment name and uuid parameters to the infomation sent to
Cisco N1kV during subnet creation to allow for proper association of the
subnet and network segment.

Conflicts:
        neutron/tests/unit/cisco/n1kv/test_n1kv_plugin.py

Change-Id: I375d49ec43f79360189ecf5de0583873b8039db9
Closes-Bug: 1332713
(cherry picked from commit 779ddd17c5)
This commit is contained in:
Steven Hillman 2014-07-08 15:35:10 -07:00
parent c48db90ccd
commit 2a4153dc47
3 changed files with 23 additions and 2 deletions

View File

@ -331,6 +331,8 @@ class Client(object):
'dhcp': subnet['enable_dhcp'],
'dnsServersList': subnet['dns_nameservers'],
'networkAddress': network_address,
'netSegmentName': subnet['network_id'],
'id': subnet['id'],
'tenantId': subnet['tenant_id']}
return self._post(self.ip_pool_path % subnet['id'],
body=body)

View File

@ -28,7 +28,11 @@ _resource_metadata = {'port': ['id', 'macAddress', 'ipAddress', 'subnetId'],
'networkSegment', 'portProfile',
'portProfileId', 'tenantId',
'portId', 'macAddress',
'ipAddress', 'subnetId']}
'ipAddress', 'subnetId'],
'subnet': ['addressRangeStart', 'addressRangeEnd',
'ipAddressSubnet', 'description', 'gateway',
'dhcp', 'dnsServersList', 'networkAddress',
'netSegmentName', 'id', 'tenantId']}
class TestClient(n1kv_client):
@ -85,6 +89,10 @@ def _validate_resource(action, body=None):
port_set = set(_resource_metadata['port'])
if body_set - port_set:
raise c_exc.VSMError(reason='Invalid Request')
elif 'subnet' in action:
subnet_set = set(_resource_metadata['subnet'])
if body_set - subnet_set:
raise c_exc.VSMError(reason='Invalid Request')
else:
return

View File

@ -814,7 +814,18 @@ class TestN1kvNetworks(test_plugin.TestNetworksV2,
class TestN1kvSubnets(test_plugin.TestSubnetsV2,
N1kvPluginTestCase):
pass
def test_create_subnet_with_invalid_parameters(self):
"""Test subnet creation with invalid parameters sent to the VSM."""
with self.network() as network:
client_patch = patch(n1kv_client.__name__ + ".Client",
new=fake_client.TestClientInvalidRequest)
client_patch.start()
data = {'subnet': {'network_id': network['network']['id'],
'cidr': "10.0.0.0/24"}}
subnet_req = self.new_create_request('subnets', data)
subnet_resp = subnet_req.get_response(self.api)
# Subnet creation should fail due to invalid network name
self.assertEqual(subnet_resp.status_int, 400)
class TestN1kvL3Test(test_l3_plugin.L3NatExtensionTestCase):