/** * Create an instance of {@link VirtualDeviceConfigSpec } * */ public VirtualDeviceConfigSpec createVirtualDeviceConfigSpec() { return new VirtualDeviceConfigSpec(); }
static VirtualDeviceConfigSpec createRemoveCdConfigSpec(VirtualMachine vm, String cdName) throws Exception { VirtualDeviceConfigSpec cdSpec = new VirtualDeviceConfigSpec(); cdSpec.setOperation(VirtualDeviceConfigSpecOperation.remove); VirtualCdrom cdRemove = (VirtualCdrom)findVirtualDevice(vm.getConfig(), cdName); if(cdRemove != null) { cdSpec.setDevice(cdRemove); return cdSpec; } else { System.out.println("No device available " + cdName); return null; } }
static VirtualDeviceConfigSpec createRemoveCdConfigSpec(VirtualMachine vm, String cdName) throws Exception { VirtualDeviceConfigSpec cdSpec = new VirtualDeviceConfigSpec(); cdSpec.setOperation(VirtualDeviceConfigSpecOperation.remove); VirtualCdrom cdRemove = (VirtualCdrom)findVirtualDevice(vm.getConfig(), cdName); if(cdRemove != null) { cdSpec.setDevice(cdRemove); return cdSpec; } else { System.out.println("No device available " + cdName); return null; } }
VirtualDeviceConfigSpec getNicSpecs(String fileName, List<VirtualDevice> virtualDevicesList, VirtualDeviceConfigSpecOperation operation, String addressType, Integer key, String parameter, VmInputs vmInputs) { VirtualDeviceConfigSpec nicSpecs = new VirtualDeviceConfigSpec(); VirtualEthernetCard nic; if (Operation.ADD.toString().equalsIgnoreCase(parameter)) { nic = getEth(fileName, addressType, key); return getNicOpSpec(nicSpecs, operation, nic); } else { nic = findVirtualDevice(VirtualEthernetCard.class, virtualDevicesList, vmInputs); if (nic != null) { return getNicOpSpec(nicSpecs, operation, nic); } } throw new RuntimeException("No nic named: [" + vmInputs.getUpdateValue() + "] can be found."); }
VirtualDeviceConfigSpec getPopulatedDiskSpec(String volumeName, List<VirtualDevice> virtualDevicesList, VirtualDeviceConfigSpecOperation operation, VirtualDeviceConfigSpecFileOperation fileOperation, int controllerKey, int unitNumber, int key, String parameter, VmInputs vmInputs) throws Exception { VirtualDeviceConfigSpec diskSpecs = new VirtualDeviceConfigSpec(); if (Operation.CREATE.toString().equalsIgnoreCase(parameter) || Operation.ADD.toString().equalsIgnoreCase(parameter)) { VirtualDisk disk = createVirtualDisk(volumeName, controllerKey, unitNumber, key, vmInputs, parameter); return getDiskSpecs(diskSpecs, operation, fileOperation, disk); } else { VirtualDisk disk = findVirtualDevice(VirtualDisk.class, virtualDevicesList, vmInputs); if (disk != null) { return getDiskSpecs(diskSpecs, operation, fileOperation, disk); } } throw new RuntimeException("No disk device named: [" + vmInputs.getUpdateValue() + "] can be found."); }
static VirtualDeviceConfigSpec createRemoveDiskConfigSpec( VirtualMachineConfigInfo vmConfig, String diskName) throws Exception { VirtualDeviceConfigSpec diskSpec = new VirtualDeviceConfigSpec(); VirtualDisk disk = (VirtualDisk) findVirtualDevice( vmConfig, diskName); if(disk != null) { diskSpec.setOperation( VirtualDeviceConfigSpecOperation.remove); // remove the following line can keep the disk file diskSpec.setFileOperation( VirtualDeviceConfigSpecFileOperation.destroy); diskSpec.setDevice(disk); return diskSpec; } else { throw new Exception("No device found: " + diskName); } }
static VirtualDeviceConfigSpec createRemoveDiskConfigSpec( VirtualMachineConfigInfo vmConfig, String diskName) throws Exception { VirtualDeviceConfigSpec diskSpec = new VirtualDeviceConfigSpec(); VirtualDisk disk = (VirtualDisk) findVirtualDevice( vmConfig, diskName); if(disk != null) { diskSpec.setOperation( VirtualDeviceConfigSpecOperation.remove); // remove the following line can keep the disk file diskSpec.setFileOperation( VirtualDeviceConfigSpecFileOperation.destroy); diskSpec.setDevice(disk); return diskSpec; } else { throw new Exception("No device found: " + diskName); } }
static VirtualDeviceConfigSpec createRemoveDiskConfigSpec( VirtualMachine vm, String diskName) throws Exception { VirtualDeviceConfigSpec diskSpec = new VirtualDeviceConfigSpec(); VirtualDisk disk = (VirtualDisk) findVirtualDevice(vm.getConfig(), diskName); if(disk != null) { diskSpec.setOperation(VirtualDeviceConfigSpecOperation.remove); diskSpec.setFileOperation(VirtualDeviceConfigSpecFileOperation.destroy); diskSpec.setDevice(disk); return diskSpec; } else { System.out.println("No device found: " + diskName); return null; } }
static VirtualDeviceConfigSpec createRemoveDiskConfigSpec(VirtualMachine vm, String diskName) throws Exception { VirtualDeviceConfigSpec diskSpec = new VirtualDeviceConfigSpec(); VirtualDisk disk = (VirtualDisk) findVirtualDisk(vm.getConfig(), diskName); if (disk != null) { diskSpec.setOperation(VirtualDeviceConfigSpecOperation.remove); diskSpec .setFileOperation(VirtualDeviceConfigSpecFileOperation.destroy); diskSpec.setDevice(disk); return diskSpec; } return null; }
private VirtualDeviceConfigSpec getFirstScsiController(int diskCtrlKey) { VirtualLsiLogicController scsiCtrl = new VirtualLsiLogicController(); scsiCtrl.setBusNumber(DEFAULT_CONTROLLER_BUS_NUMBER); scsiCtrl.setKey(diskCtrlKey); scsiCtrl.setSharedBus(VirtualSCSISharing.NO_SHARING); VirtualDeviceConfigSpec scsiCtrlSpec = new VirtualDeviceConfigSpec(); scsiCtrlSpec.setOperation(VirtualDeviceConfigSpecOperation.ADD); scsiCtrlSpec.setDevice(scsiCtrl); return scsiCtrlSpec; }
private static VirtualDeviceConfigSpec createDeviceConfig(VirtualMachine vm, String mac, VirtualEthernetCardDistributedVirtualPortBackingInfo nicBacking) { VirtualDeviceConfigSpec configSpec = null; VirtualMachineConfigInfo vmConfigInfo = vm.getConfig(); VirtualDevice[] vds = vmConfigInfo.getHardware().getDevice(); int i = 0; while (configSpec == null && i < vds.length) { if (vds[i] instanceof VirtualEthernetCard && ((VirtualEthernetCard) vds[i]).getMacAddress().equals(mac)) { configSpec = new VirtualDeviceConfigSpec(); configSpec.setOperation(VirtualDeviceConfigSpecOperation.edit); vds[i].setBacking(nicBacking); configSpec.setDevice(vds[i]); } i++; } return configSpec; }
static VirtualDeviceConfigSpec createScsiSpec(int cKey) { VirtualDeviceConfigSpec scsiSpec = new VirtualDeviceConfigSpec(); scsiSpec.setOperation(VirtualDeviceConfigSpecOperation.add); VirtualLsiLogicController scsiCtrl = new VirtualLsiLogicController(); scsiCtrl.setKey(cKey); scsiCtrl.setBusNumber(0); scsiCtrl.setSharedBus(VirtualSCSISharing.noSharing); scsiSpec.setDevice(scsiCtrl); return scsiSpec; }
static VirtualDeviceConfigSpec createScsiSpec(int cKey) { VirtualDeviceConfigSpec scsiSpec = new VirtualDeviceConfigSpec(); scsiSpec.setOperation(VirtualDeviceConfigSpecOperation.add); VirtualLsiLogicController scsiCtrl = new VirtualLsiLogicController(); scsiCtrl.setKey(cKey); scsiCtrl.setBusNumber(0); scsiCtrl.setSharedBus(VirtualSCSISharing.noSharing); scsiSpec.setDevice(scsiCtrl); return scsiSpec; }
private VirtualDeviceConfigSpec createFloppyConfigSpecs() { VirtualFloppyDeviceBackingInfo flpBacking = new VirtualFloppyDeviceBackingInfo(); flpBacking.setDeviceName(DEFAULT_FLOPPY_DEVICE_NAME); VirtualFloppy floppyDisk = new VirtualFloppy(); floppyDisk.setBacking(flpBacking); floppyDisk.setKey(DEFAULT_FLOPPY_DEVICE_KEY); VirtualDeviceConfigSpec flpSpecs = new VirtualDeviceConfigSpec(); flpSpecs.setOperation(VirtualDeviceConfigSpecOperation.ADD); flpSpecs.setDevice(floppyDisk); return flpSpecs; }
VirtualDeviceConfigSpec getPopulatedCDSpecs(String fileName, ManagedObjectReference dataStoreRef, List<VirtualDevice> virtualDevicesList, VirtualDeviceConfigSpecOperation operation, Integer controllerKey, Integer unitNumber, Integer key, String parameter, VmInputs vmInputs) { VirtualDeviceConfigSpec cdSpecs = new VirtualDeviceConfigSpec(); if (Operation.ADD.toString().equalsIgnoreCase(parameter)) { VirtualCdromIsoBackingInfo cdIsoBacking = new VirtualCdromIsoBackingInfo(); cdIsoBacking.setDatastore(dataStoreRef); cdIsoBacking.setFileName(fileName + TEST_CD_ISO); VirtualCdrom cdRom = new VirtualCdrom(); cdRom.setBacking(cdIsoBacking); cdRom.setControllerKey(controllerKey); cdRom.setUnitNumber(unitNumber); cdRom.setKey(key); return getCDSpec(cdSpecs, operation, cdRom); } else { VirtualCdrom cdRemove = findVirtualDevice(VirtualCdrom.class, virtualDevicesList, vmInputs); if (cdRemove != null) { return getCDSpec(cdSpecs, operation, cdRemove); } } throw new RuntimeException("No optical device named: [" + vmInputs.getUpdateValue() + "] can be found."); }
static VirtualDeviceConfigSpec createNicSpec(String netName, String nicName) throws Exception { VirtualDeviceConfigSpec nicSpec = new VirtualDeviceConfigSpec(); nicSpec.setOperation(VirtualDeviceConfigSpecOperation.add); VirtualEthernetCard nic = new VirtualPCNet32(); VirtualEthernetCardNetworkBackingInfo nicBacking = new VirtualEthernetCardNetworkBackingInfo(); nicBacking.setDeviceName(netName); Description info = new Description(); info.setLabel(nicName); info.setSummary(netName); nic.setDeviceInfo(info); // type: "generated", "manual", "assigned" by VC nic.setAddressType("generated"); nic.setBacking(nicBacking); nic.setKey(0); nicSpec.setDevice(nic); return nicSpec; } }
static VirtualDeviceConfigSpec createDiskSpec(String dsName, int cKey, long diskSizeKB, String diskMode) { VirtualDeviceConfigSpec diskSpec = new VirtualDeviceConfigSpec(); diskSpec.setOperation(VirtualDeviceConfigSpecOperation.add); diskSpec.setFileOperation( VirtualDeviceConfigSpecFileOperation.create); VirtualDisk vd = new VirtualDisk(); vd.setCapacityInKB(diskSizeKB); diskSpec.setDevice(vd); vd.setKey(0); vd.setUnitNumber(0); vd.setControllerKey(cKey); VirtualDiskFlatVer2BackingInfo diskfileBacking = new VirtualDiskFlatVer2BackingInfo(); String fileName = "["+ dsName +"]"; diskfileBacking.setFileName(fileName); diskfileBacking.setDiskMode(diskMode); diskfileBacking.setThinProvisioned(true); vd.setBacking(diskfileBacking); return diskSpec; }
static VirtualDeviceConfigSpec createAddCdConfigSpec(VirtualMachine vm, String dsName, String isoName) throws Exception { VirtualDeviceConfigSpec cdSpec = new VirtualDeviceConfigSpec(); cdSpec.setOperation(VirtualDeviceConfigSpecOperation.add); VirtualCdrom cdrom = new VirtualCdrom(); VirtualCdromIsoBackingInfo cdDeviceBacking = new VirtualCdromIsoBackingInfo(); DatastoreSummary ds = findDatastoreSummary(vm, dsName); cdDeviceBacking.setDatastore(ds.getDatastore()); cdDeviceBacking.setFileName("[" + dsName +"] "+ vm.getName() + "/" + isoName + ".iso"); VirtualDevice vd = getIDEController(vm); cdrom.setBacking(cdDeviceBacking); cdrom.setControllerKey(vd.getKey()); cdrom.setUnitNumber(vd.getUnitNumber()); cdrom.setKey(-1); cdSpec.setDevice(cdrom); return cdSpec; }
static VirtualDeviceConfigSpec createAddCdConfigSpec(VirtualMachine vm, String dsName, String isoName) throws Exception { VirtualDeviceConfigSpec cdSpec = new VirtualDeviceConfigSpec(); cdSpec.setOperation(VirtualDeviceConfigSpecOperation.add); VirtualCdrom cdrom = new VirtualCdrom(); VirtualCdromIsoBackingInfo cdDeviceBacking = new VirtualCdromIsoBackingInfo(); DatastoreSummary ds = findDatastoreSummary(vm, dsName); cdDeviceBacking.setDatastore(ds.getDatastore()); cdDeviceBacking.setFileName("[" + dsName +"] "+ vm.getName() + "/" + isoName + ".iso"); VirtualDevice vd = getIDEController(vm); cdrom.setBacking(cdDeviceBacking); cdrom.setControllerKey(vd.getKey()); cdrom.setUnitNumber(vd.getUnitNumber()); cdrom.setKey(-1); cdSpec.setDevice(cdrom); return cdSpec; }
public void addHardDisk(String diskFilePath, VirtualDiskMode diskMode) throws Exception { VirtualMachineConfigSpec vmConfigSpec = new VirtualMachineConfigSpec(); VirtualDeviceConfigSpec diskSpec = new VirtualDeviceConfigSpec(); VirtualDeviceConfigSpec[] vdiskSpecArray = {diskSpec}; vmConfigSpec.setDeviceChange(vdiskSpecArray); VirtualDiskFlatVer2BackingInfo diskfileBacking = new VirtualDiskFlatVer2BackingInfo(); diskfileBacking.setFileName(diskFilePath); diskfileBacking.setDiskMode(diskMode.toString()); VirtualSCSIController scsiController = getFirstAvailableController(VirtualSCSIController.class); int unitNumber = getFirstFreeUnitNumberForController(scsiController); VirtualDisk disk = new VirtualDisk(); disk.setControllerKey(scsiController.key); disk.setUnitNumber(unitNumber); disk.setBacking(diskfileBacking); //Unlike required by API ref, the capacityKB is optional. So skip setCapacityInKB() method. disk.setKey(-100); diskSpec.setOperation(VirtualDeviceConfigSpecOperation.add); diskSpec.setDevice(disk); Task task = vm.reconfigVM_Task(vmConfigSpec); task.waitForTask(200, 100); }