35 lines
1.3 KiB
Diff
35 lines
1.3 KiB
Diff
--- a/nova/virt/vmwareapi/vif.py
|
|
+++ b/nova/virt/vmwareapi/vif.py
|
|
@@ -145,7 +145,16 @@
|
|
|
|
def get_network_ref(session, cluster, vif, is_neutron):
|
|
if is_neutron:
|
|
- network_ref = _get_neutron_network(session, cluster, vif)
|
|
+ try:
|
|
+ network_ref = {'dvsw': vif['details']['dvs_id'],
|
|
+ 'dvpg': vif['details']['pg_id'],
|
|
+ 'type': 'DistributedVirtualPortgroup'}
|
|
+ except KeyError:
|
|
+ network_ref = _get_neutron_network(session, cluster, vif)
|
|
+ try:
|
|
+ network_ref['dvs_port_key'] = vif['details']['dvs_port_key']
|
|
+ except KeyError:
|
|
+ pass
|
|
else:
|
|
create_vlan = vif['network'].get_meta('should_create_vlan', False)
|
|
network_ref = ensure_vlan_bridge(session, vif, cluster=cluster,
|
|
diff --git a/nova/virt/vmwareapi/vm_util.py b/nova/virt/vmwareapi/vm_util.py
|
|
--- a/nova/virt/vmwareapi/vm_util.py
|
|
+++ b/nova/virt/vmwareapi/vm_util.py
|
|
@@ -453,6 +453,10 @@
|
|
'ns0:DistributedVirtualSwitchPortConnection')
|
|
portgroup.switchUuid = network_ref['dvsw']
|
|
portgroup.portgroupKey = network_ref['dvpg']
|
|
+ try:
|
|
+ portgroup.portKey = network_ref['dvs_port_key']
|
|
+ except KeyError:
|
|
+ pass
|
|
backing.port = portgroup
|
|
else:
|
|
backing = client_factory.create(
|