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