private static void replaceNetworkAdapter( VirtualMachineConfigSpec vmConfigSpec, VirtualDevice oldNIC, ManagedObjectReference newNetworkRef, String newNetworkName) throws Exception { logger.debug("new network: " + newNetworkName); VirtualEthernetCardNetworkBackingInfo nicBacking = new VirtualEthernetCardNetworkBackingInfo(); nicBacking.setDeviceName(newNetworkName); nicBacking.setNetwork(newNetworkRef); nicBacking.setUseAutoDetect(true); oldNIC.setBacking(nicBacking); VirtualDeviceConnectInfo info = new VirtualDeviceConnectInfo(); info.setConnected(true); info.setStartConnected(true); info.setAllowGuestControl(true); oldNIC.setConnectable(info); // oldNIC.getConnectable().setConnected(true); // oldNIC.getConnectable().setStartConnected(true); VirtualDeviceConfigSpec vmDeviceSpec = new VirtualDeviceConfigSpec(); vmDeviceSpec.setOperation(VirtualDeviceConfigSpecOperation.EDIT); vmDeviceSpec.setDevice(oldNIC); vmConfigSpec.getDeviceChange().add(vmDeviceSpec); }
public static VirtualDeviceConfigSpec createCdrom(VirtualDevice ideController, int unitNumber) { VirtualCdrom cdrom = new VirtualCdrom(); cdrom.setControllerKey(ideController.getKey()); cdrom.setUnitNumber(unitNumber); VirtualDeviceConnectInfo info = new VirtualDeviceConnectInfo(); info.setAllowGuestControl(true); info.setConnected(true); info.setStartConnected(true); cdrom.setConnectable(info); VirtualCdromAtapiBackingInfo backing = new VirtualCdromAtapiBackingInfo(); backing.setDeviceName(String.format("cdrom-%d-%d", ideController.getKey(), unitNumber)); backing.setUseAutoDetect(false); cdrom.setBacking(backing); VirtualDeviceConfigSpec spec = new VirtualDeviceConfigSpec(); spec.setDevice(cdrom); spec.setOperation(VirtualDeviceConfigSpecOperation.ADD); return spec; }
public static VirtualDeviceConfigSpec createFloppy(VirtualDevice sioController, int unitNumber) { VirtualFloppy floppy = new VirtualFloppy(); floppy.setControllerKey(sioController.getKey()); floppy.setUnitNumber(unitNumber); VirtualDeviceConnectInfo info = new VirtualDeviceConnectInfo(); info.setAllowGuestControl(true); info.setConnected(true); info.setStartConnected(true); floppy.setConnectable(info); VirtualFloppyDeviceBackingInfo backing = new VirtualFloppyDeviceBackingInfo(); backing.setDeviceName(String.format("floppy-%d", unitNumber)); floppy.setBacking(backing); VirtualDeviceConfigSpec spec = new VirtualDeviceConfigSpec(); spec.setDevice(floppy); spec.setOperation(VirtualDeviceConfigSpecOperation.ADD); return spec; }
private VirtualDeviceConfigSpec reconfigureCdrom(VirtualCdrom vcd) { VirtualCdrom cdrom = new VirtualCdrom(); cdrom.setControllerKey(vcd.getControllerKey()); cdrom.setKey(vcd.getKey()); cdrom.setUnitNumber(vcd.getUnitNumber()); VirtualDeviceConnectInfo info = new VirtualDeviceConnectInfo(); info.setAllowGuestControl(true); info.setConnected(true); info.setStartConnected(true); cdrom.setConnectable(info); cdrom.setBacking(vcd.getBacking()); VirtualDeviceConfigSpec spec = new VirtualDeviceConfigSpec(); spec.setDevice(cdrom); spec.setOperation(VirtualDeviceConfigSpecOperation.EDIT); return spec; }
private static void connectNIC(VirtualMachineConfigSpec vmConfigSpec, VirtualDevice oldNIC, String vmNetworkName) throws Exception { logger.debug("networkName: " + vmNetworkName); VirtualDeviceConnectInfo info = new VirtualDeviceConnectInfo(); info.setConnected(true); info.setStartConnected(true); info.setAllowGuestControl(true); oldNIC.setConnectable(info); VirtualDeviceConfigSpec vmDeviceSpec = new VirtualDeviceConfigSpec(); vmDeviceSpec.setOperation(VirtualDeviceConfigSpecOperation.EDIT); vmDeviceSpec.setDevice(oldNIC); vmConfigSpec.getDeviceChange().add(vmDeviceSpec); }
protected VirtualDisk reuseDisk(VirtualMachine machine, Integer scsiId, String fileName) { // SCSIコントローラを取得 VirtualSCSIController scsiController = getSCSIController(machine); // 仮想マシン自体のディスクを取得 VirtualDisk machineDisk = getVirtualDisk(machine, 0); VirtualDiskFlatVer2BackingInfo machieBackingInfo = VirtualDiskFlatVer2BackingInfo.class.cast(machineDisk .getBacking()); // VirtualDisk VirtualDisk disk = new VirtualDisk(); disk.setUnitNumber(scsiId); disk.setControllerKey(scsiController.getKey()); // VirtualDiskFlatVer2BackingInfo VirtualDiskFlatVer2BackingInfo backingInfo = new VirtualDiskFlatVer2BackingInfo(); backingInfo.setFileName(fileName); backingInfo.setDiskMode("persistent"); backingInfo.setSplit(false); backingInfo.setEagerlyScrub(false); backingInfo.setThinProvisioned(machieBackingInfo.getThinProvisioned()); backingInfo.setWriteThrough(false); disk.setBacking(backingInfo); // VirtualDeviceConnectInfo VirtualDeviceConnectInfo connectInfo = new VirtualDeviceConnectInfo(); connectInfo.setAllowGuestControl(false); connectInfo.setStartConnected(true); connectInfo.setConnected(true); disk.setConnectable(connectInfo); return disk; }
@Nonnull private static VirtualDeviceConnectInfo getVirtualDeviceConnectInfo(boolean connected, boolean connectOnStart) { VirtualDeviceConnectInfo connectInfo = new VirtualDeviceConnectInfo(); connectInfo.setAllowGuestControl(true); connectInfo.setConnected(connected); connectInfo.setStartConnected(connectOnStart); return connectInfo; }
protected VirtualDisk newDisk(VirtualMachine machine, Integer scsiId, Integer size) { // SCSIコントローラを取得 VirtualSCSIController scsiController = getSCSIController(machine); // 仮想マシン自体のディスクを取得 VirtualDisk machineDisk = getVirtualDisk(machine, 0); VirtualDiskFlatVer2BackingInfo machieBackingInfo = VirtualDiskFlatVer2BackingInfo.class.cast(machineDisk .getBacking()); // VirtualDisk VirtualDisk disk = new VirtualDisk(); disk.setUnitNumber(scsiId); disk.setCapacityInKB(size * 1024L * 1024L); disk.setControllerKey(scsiController.getKey()); // VirtualDiskFlatVer2BackingInfo VirtualDiskFlatVer2BackingInfo backingInfo = new VirtualDiskFlatVer2BackingInfo(); backingInfo.setDatastore(null); backingInfo.setFileName(""); backingInfo.setDiskMode("persistent"); backingInfo.setSplit(false); backingInfo.setEagerlyScrub(false); backingInfo.setThinProvisioned(machieBackingInfo.getThinProvisioned()); backingInfo.setWriteThrough(false); disk.setBacking(backingInfo); // VirtualDeviceConnectInfo VirtualDeviceConnectInfo connectInfo = new VirtualDeviceConnectInfo(); connectInfo.setAllowGuestControl(false); connectInfo.setStartConnected(true); connectInfo.setConnected(true); disk.setConnectable(connectInfo); return disk; }
public static VirtualDevice prepareDiskDevice(VirtualMachineMO vmMo, int controllerKey, String vmdkDatastorePath, int sizeInMb, ManagedObjectReference morDs, int deviceNumber, int contextNumber) throws Exception { VirtualDisk disk = new VirtualDisk(); VirtualDiskFlatVer2BackingInfo backingInfo = new VirtualDiskFlatVer2BackingInfo(); backingInfo.setDiskMode(VirtualDiskMode.PERSISTENT.value()); backingInfo.setThinProvisioned(true); backingInfo.setEagerlyScrub(false); backingInfo.setDatastore(morDs); backingInfo.setFileName(vmdkDatastorePath); disk.setBacking(backingInfo); int ideControllerKey = vmMo.getIDEDeviceControllerKey(); if (controllerKey < 0) controllerKey = ideControllerKey; if (deviceNumber < 0) { deviceNumber = vmMo.getNextDeviceNumber(controllerKey); } disk.setControllerKey(controllerKey); disk.setKey(-contextNumber); disk.setUnitNumber(deviceNumber); disk.setCapacityInKB(sizeInMb * 1024); VirtualDeviceConnectInfo connectInfo = new VirtualDeviceConnectInfo(); connectInfo.setConnected(true); connectInfo.setStartConnected(true); disk.setConnectable(connectInfo); return disk; }
@SuppressWarnings("unchecked") public static VirtualDevice prepareDiskDevice(VirtualMachineMO vmMo, int controllerKey, Pair<String, ManagedObjectReference>[] vmdkDatastorePathChain, int deviceNumber, int contextNumber) throws Exception { assert (vmdkDatastorePathChain != null); assert (vmdkDatastorePathChain.length >= 1); VirtualDisk disk = new VirtualDisk(); VirtualDiskFlatVer2BackingInfo backingInfo = new VirtualDiskFlatVer2BackingInfo(); backingInfo.setDatastore(vmdkDatastorePathChain[0].second()); backingInfo.setFileName(vmdkDatastorePathChain[0].first()); backingInfo.setDiskMode(VirtualDiskMode.PERSISTENT.value()); if (vmdkDatastorePathChain.length > 1) { Pair<String, ManagedObjectReference>[] parentDisks = new Pair[vmdkDatastorePathChain.length - 1]; for (int i = 0; i < vmdkDatastorePathChain.length - 1; i++) parentDisks[i] = vmdkDatastorePathChain[i + 1]; setParentBackingInfo(backingInfo, parentDisks); } disk.setBacking(backingInfo); int ideControllerKey = vmMo.getIDEDeviceControllerKey(); if (controllerKey < 0) controllerKey = ideControllerKey; if (deviceNumber < 0) { deviceNumber = vmMo.getNextDeviceNumber(controllerKey); } disk.setControllerKey(controllerKey); disk.setKey(-contextNumber); disk.setUnitNumber(deviceNumber); VirtualDeviceConnectInfo connectInfo = new VirtualDeviceConnectInfo(); connectInfo.setConnected(true); connectInfo.setStartConnected(true); disk.setConnectable(connectInfo); return disk; }