summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormelanie witt <melwitt@yahoo-inc.com>2015-04-09 02:42:01 +0000
committermelanie witt <melwitt@yahoo-inc.com>2015-04-09 18:15:23 +0000
commit7d88028f74c63dc8070dcacf421083deff66b7b4 (patch)
tree4e1e23e0ed41da3509bd3d013f3698022a44bcaa
parent3d3083562371fb1ffb1a89d791cfd469035873a6 (diff)
downloadnova-7d88028f74c63dc8070dcacf421083deff66b7b4.tar.gz
Honor uuid parameter passed to nova-network create
The nova api for creating nova-network networks has an optional request parameter "id" which maps to the string uuid for the network to create. The nova-manage network create command represents it as the option --uuid. The parameter is currently being ignored by the nova-network manager. This change sets the uuid when creating the network if it has been specified. Closes-Bug: #1441931 Change-Id: Ib29e632b09905f557a7a6910d58207ed91cdc047
-rw-r--r--nova/network/manager.py3
-rw-r--r--nova/tests/unit/network/test_manager.py14
2 files changed, 17 insertions, 0 deletions
diff --git a/nova/network/manager.py b/nova/network/manager.py
index 1e8d2459e7..3e8e8b1afd 100644
--- a/nova/network/manager.py
+++ b/nova/network/manager.py
@@ -1311,6 +1311,9 @@ class NetworkManager(manager.Manager):
subnets = itertools.izip_longest(subnets_v4, subnets_v6)
for index, (subnet_v4, subnet_v6) in enumerate(subnets):
net = objects.Network(context=context)
+ uuid = kwargs.get('uuid')
+ if uuid:
+ net.uuid = uuid
net.bridge = bridge
net.bridge_interface = bridge_interface
net.multi_host = multi_host
diff --git a/nova/tests/unit/network/test_manager.py b/nova/tests/unit/network/test_manager.py
index 22adeed536..e0e9da3ad0 100644
--- a/nova/tests/unit/network/test_manager.py
+++ b/nova/tests/unit/network/test_manager.py
@@ -2265,6 +2265,20 @@ class CommonNetworkTestCase(test.TestCase):
'fd00::/48', None, None, None, None, None]
self.assertTrue(manager.create_networks(*args))
+ def test_create_networks_with_uuid(self):
+ cidr = '192.168.0.0/24'
+ uuid = FAKEUUID
+ manager = fake_network.FakeNetworkManager()
+ self.stubs.Set(manager, '_create_fixed_ips',
+ self.fake_create_fixed_ips)
+ args = [self.context.elevated(), 'foo', cidr, None, 1, 256,
+ 'fd00::/48', None, None, None, None, None]
+ kwargs = {'uuid': uuid}
+ nets = manager.create_networks(*args, **kwargs)
+ self.assertEqual(1, len(nets))
+ net = nets[0]
+ self.assertEqual(uuid, net['uuid'])
+
@mock.patch('nova.db.network_get_all')
def test_create_networks_cidr_already_used(self, get_all):
manager = fake_network.FakeNetworkManager()