def createNicSpec(nicKey,netName,macAddress,nicType): """ Define a virtual nic spec """ nicSpec = VirtualDeviceConfigSpec() nicSpec.setOperation(VirtualDeviceConfigSpecOperation.add) nicBacking = VirtualEthernetCardNetworkBackingInfo() # Assign Portgroup nicBacking.setDeviceName(netName) if nicType == "e1000": nic = VirtualE1000() elif nicType == "vmxnet2": nic = VirtualVmxnet2() elif nicType == "vmxnet3": nic = VirtualVmxnet3() nic.setKey(nicKey) nic.setBacking(nicBacking) # Address type is one of the following "generated", "manual", "assigned" by VC if macAddress: nic.setAddressType("manual") # MacAddress format is not validated here. nic.setMacAddress(macAddress) else: nic.setAddressType("generated") nicSpec.setDevice(nic) return nicSpec
def createScsiSpec(scsiKey,busNumber): """ Define a virtual scsi ctrl spec """ scsiSpec = VirtualDeviceConfigSpec() scsiSpec.setOperation(VirtualDeviceConfigSpecOperation.add) scsiCtrl = VirtualLsiLogicSASController() scsiCtrl.setKey(scsiKey) scsiCtrl.setBusNumber(busNumber) scsiCtrl.setSharedBus(VirtualSCSISharing.noSharing) scsiSpec.setDevice(scsiCtrl) return scsiSpec
def createScsiSpec(scsiKey,busNumber,scsiType): """ Define a virtual scsi ctrl spec """ scsiSpec = VirtualDeviceConfigSpec() scsiSpec.setOperation(VirtualDeviceConfigSpecOperation.add) if scsiType == "sas": scsiCtrl = VirtualLsiLogicSASController() elif scsiType == "parallel": scsiCtrl = VirtualLsiLogicController() elif scsiType == "buslogic": scsiCtrl = VirtualBusLogicController() elif scsiType == "paravirt": scsiCtrl = ParaVirtualSCSIController() scsiCtrl.setKey(scsiKey) scsiCtrl.setBusNumber(busNumber) scsiCtrl.setSharedBus(VirtualSCSISharing.noSharing) scsiSpec.setDevice(scsiCtrl) return scsiSpec
def createDiskSpec(scsiKey,diskKey,unitNumber,diskSize,diskMode,datastore): """ Define a virtual disk spec """ diskSpec = VirtualDeviceConfigSpec() diskSpec.setOperation(VirtualDeviceConfigSpecOperation.add) diskSpec.setFileOperation(VirtualDeviceConfigSpecFileOperation.create) vd = VirtualDisk() vd.setKey(diskKey) vd.setCapacityInKB(diskSize) vd.setUnitNumber(unitNumber) vd.setControllerKey(scsiKey) diskfileBacking = VirtualDiskFlatVer2BackingInfo() fileName = "["+datastore+"]" diskfileBacking.setFileName(fileName) diskfileBacking.setDiskMode(diskMode) diskfileBacking.setThinProvisioned(True) vd.setBacking(diskfileBacking) diskSpec.setDevice(vd) return diskSpec
rootME = mo.util.MorUtil.createExactManagedEntity(service.serverConnection, sc.rootFolder) invNav = mo.InventoryNavigator(rootME) host = invNav.searchManagedEntity('HostSystem', 'coho.reflex') if host is None: print >>sys.stderr, "could not locate host" for network in host.networks: if network.name == 'VM Network': break vm = invNav.searchManagedEntity('VirtualMachine', 'testers') if vm is None: print >>sys.stderr, "VirtualMachine is NOT correct." # return False datastore = invNav.searchManagedEntity('Datastore', 'NetApp Dev NFS Datastore') configSpec = VirtualMachineConfigSpec() devSpec = VirtualDeviceConfigSpec() devSpec.setOperation(VirtualDeviceConfigSpecOperation.edit) config = vm.getConfig() hardware = config.hardware for device in hardware.device: info = device.getDeviceInfo() if info.label == 'Network adapter 1': device.backing.setDeviceName("VM Network") devSpec.setDevice(device) configSpec.setDeviceChange([devSpec]) task = vm.reconfigVM_Task(configSpec) task.waitForMe()