diff options
author | melanie witt <melwitt@yahoo-inc.com> | 2015-04-09 02:42:01 +0000 |
---|---|---|
committer | melanie witt <melwitt@yahoo-inc.com> | 2015-04-09 18:15:23 +0000 |
commit | 7d88028f74c63dc8070dcacf421083deff66b7b4 (patch) | |
tree | 4e1e23e0ed41da3509bd3d013f3698022a44bcaa | |
parent | 3d3083562371fb1ffb1a89d791cfd469035873a6 (diff) | |
download | nova-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.py | 3 | ||||
-rw-r--r-- | nova/tests/unit/network/test_manager.py | 14 |
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() |