lib/fog/vsphere/requests/compute/create_vm.rb in fog-1.9.0 vs lib/fog/vsphere/requests/compute/create_vm.rb in fog-1.10.0
- old
+ new
@@ -37,30 +37,45 @@
end
def device_change attributes
devices = []
if (nics = attributes[:interfaces])
- devices << nics.map { |nic| create_interface(nic, nics.index(nic)) }
+ devices << nics.map { |nic| create_interface(nic, nics.index(nic), :add, attributes) }
end
if (disks = attributes[:volumes])
devices << create_controller
devices << disks.map { |disk| create_disk(disk, disks.index(disk)) }
end
devices.flatten
end
- def create_interface nic, index = 0, operation = :add
+ def create_nic_backing nic, attributes
+ raw_network = get_raw_network(nic.network, attributes[:datacenter])
+
+ if raw_network.kind_of? RbVmomi::VIM::DistributedVirtualPortgroup
+ RbVmomi::VIM.VirtualEthernetCardDistributedVirtualPortBackingInfo(
+ :port => RbVmomi::VIM.DistributedVirtualSwitchPortConnection(
+ :portgroupKey => raw_network.key,
+ :switchUuid => raw_network.config.distributedVirtualSwitch.uuid
+ )
+ )
+ else
+ RbVmomi::VIM.VirtualEthernetCardNetworkBackingInfo(:deviceName => nic.network)
+ end
+ end
+
+ def create_interface nic, index = 0, operation = :add, attributes = {}
{
:operation => operation,
:device => nic.type.new(
:key => index,
:deviceInfo =>
{
:label => nic.name,
:summary => nic.summary,
},
- :backing => RbVmomi::VIM.VirtualEthernetCardNetworkBackingInfo(:deviceName => nic.network),
+ :backing => create_nic_backing(nic, attributes),
:addressType => 'generated')
}
end
def create_controller operation = :add, controller_key = 1000, bus_id = 0
\ No newline at end of file