fuel-plugin-vmware-dvs/deployment_scripts/puppet/modules/vmware_dvs/files/nova.patch

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(