diff --git a/nova/network/manager.py b/nova/network/manager.py index 1e8d2459e715..3e8e8b1afd79 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 22adeed5366d..e0e9da3ad082 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()