diff --git a/src/vmm_mad/remotes/lib/vcenter_driver/virtual_machine.rb b/src/vmm_mad/remotes/lib/vcenter_driver/virtual_machine.rb index 767abd3c98..e212c29bf4 100644 --- a/src/vmm_mad/remotes/lib/vcenter_driver/virtual_machine.rb +++ b/src/vmm_mad/remotes/lib/vcenter_driver/virtual_machine.rb @@ -1217,10 +1217,17 @@ class VirtualMachine < VCenterDriver::Template if !unmanaged_nics.empty? nics = get_vcenter_nics - select = ->(name){ + select_net =->(ref){ device = nil nics.each do |nic| - next unless nic.deviceInfo.summary == name + type = nic.backing.class + if type == NET_CARD + nref = nic.backing.network._ref + else + nref = nic.backing.port.portgroupKey + end + + next unless nref == ref device = nic break end @@ -1231,7 +1238,7 @@ class VirtualMachine < VCenterDriver::Template } unmanaged_nics.each do |unic| - vnic = select.call(unic['BRIDGE']) + vnic = select_net.call(unic['VCENTER_NET_REF']) vcenter_nic_class = vnic.class new_model = unic['MODEL'] && !unic['MODEL'].empty? && !unic['MODEL'].nil? opennebula_nic_class = nic_model_class(unic['MODEL']) if new_model