Revision dc1f9cfa
Added by Chris Roberts almost 6 years ago
app/models/concerns/fog_extensions/vsphere/server.rb | ||
---|---|---|
|
||
def select_nic(fog_nics, nic)
|
||
nic_attrs = nic.compute_attributes
|
||
all_networks = service.raw_networks(datacenter)
|
||
vm_network = all_networks.detect { |network| nic_attrs['network'] && [network.name, network.try(:key)].include?(nic_attrs['network']) }
|
||
vm_network ||= all_networks.detect { |network| network._ref == nic_attrs['network'] }
|
||
all_networks = service.list_networks(datacenter: datacenter)
|
||
vm_network = all_networks.detect { |network| nic_attrs['network'] && [network[:name], network[:key]].compact.include?(nic_attrs['network']) }
|
||
vm_network ||= all_networks.detect { |network| network[:_ref] == nic_attrs['network'] }
|
||
unless vm_network
|
||
Rails.logger.info "Could not find Vsphere network for #{nic_attrs.inspect}"
|
||
return
|
||
end
|
||
selected_nic = fog_nics.detect { |fn| fn.network == vm_network.name } # grab any nic on the same network
|
||
selected_nic = fog_nics.detect { |fn| fn.network == vm_network[:name] } # grab any nic on the same network
|
||
if selected_nic.nil? && vm_network.respond_to?(:key)
|
||
selected_nic = fog_nics.detect { |fn| fn.network == vm_network.key } # try to match on portgroup
|
||
selected_nic = fog_nics.detect { |fn| fn.network == vm_network[:key] } # try to match on portgroup
|
||
end
|
||
selected_nic
|
||
end
|
bundler.d/vmware.rb | ||
---|---|---|
group :vmware do
|
||
gem 'fog-vsphere', '>= 2.1.1'
|
||
gem 'fog-vsphere', '>= 2.3.0'
|
||
gem 'rbvmomi', '>= 1.9.0'
|
||
end
|
Also available in: Unified diff
Fixes #23961 - Update Foreman Fog-Vsphere select_nic method.