diff options
-rw-r--r-- | nova/tests/test_vmwareapi.py | 1 | ||||
-rw-r--r-- | nova/virt/vmwareapi/vm_util.py | 19 | ||||
-rw-r--r-- | nova/virt/vmwareapi/vmops.py | 1 |
3 files changed, 21 insertions, 0 deletions
diff --git a/nova/tests/test_vmwareapi.py b/nova/tests/test_vmwareapi.py index 22544fd2d..74c786a86 100644 --- a/nova/tests/test_vmwareapi.py +++ b/nova/tests/test_vmwareapi.py @@ -60,6 +60,7 @@ class VMwareAPIVMTestCase(test.TestCase): 'bridge_interface': None, 'injected': True}, {'broadcast': '192.168.0.255', + 'id': 'foo', 'dns': ['192.168.0.1'], 'gateway': '192.168.0.1', 'gateway_v6': 'dead:beef::1', diff --git a/nova/virt/vmwareapi/vm_util.py b/nova/virt/vmwareapi/vm_util.py index c1015cb13..bc3bd8a9c 100644 --- a/nova/virt/vmwareapi/vm_util.py +++ b/nova/virt/vmwareapi/vm_util.py @@ -73,6 +73,25 @@ def get_vm_create_spec(client_factory, instance, data_store_name, device_config_spec = vif_spec_list config_spec.deviceChange = device_config_spec + + # add vm-uuid and iface-id.x values for Quantum + extra_config = [] + opt = client_factory.create('ns0:OptionValue') + opt.key = "nvp.vm-uuid" + opt.value = instance['uuid'] + extra_config.append(opt) + + i = 0 + for vif_info in vif_infos: + if vif_info['iface_id']: + opt = client_factory.create('ns0:OptionValue') + opt.key = "nvp.iface-id.%d" % i + opt.value = vif_info['iface_id'] + extra_config.append(opt) + i += 1 + + config_spec.extraConfig = extra_config + return config_spec diff --git a/nova/virt/vmwareapi/vmops.py b/nova/virt/vmwareapi/vmops.py index 106de0cb0..4b8f926e3 100644 --- a/nova/virt/vmwareapi/vmops.py +++ b/nova/virt/vmwareapi/vmops.py @@ -189,6 +189,7 @@ class VMwareVMOps(object): vif_infos.append({'network_name': network_name, 'mac_address': mac_address, 'network_ref': network_ref, + 'iface_id': mapping.get('id'), }) return vif_infos |