private List<Integer> getControllerKey(ConnectionResources connectionResources, ManagedObjectReference vmMor) throws InvalidPropertyFaultMsg, RuntimeFaultFaultMsg { List<VirtualDevice> virtualDevicesList = ((ArrayOfVirtualDevice) connectionResources.getMoRefHandler() .entityProps(vmMor, new String[]{CONFIG_HARDWARE_DEVICE}).get(CONFIG_HARDWARE_DEVICE)) .getVirtualDevice(); Map<Integer, VirtualDevice> deviceMap = getVirtualDeviceMap(virtualDevicesList); for (VirtualDevice virtualDevice : virtualDevicesList) { if (virtualDevice instanceof VirtualSCSIController) { VirtualSCSIController scsiController = (VirtualSCSIController) virtualDevice; int[] slots = new int[MAXIMUM_SCSI_SLOTS]; slots[RESERVED_SCSI_SLOT] = OCCUPIED; List<Integer> deviceKeyList = scsiController.getDevice(); for (Integer deviceKey : deviceKeyList) { if (deviceMap.get(deviceKey).getUnitNumber() != null) { slots[deviceMap.get(deviceKey).getUnitNumber()] = OCCUPIED; } } for (int counter = 0; counter < slots.length; counter++) { if (slots[counter] != OCCUPIED) { List<Integer> controllerKeys = new ArrayList<>(); controllerKeys.add(scsiController.getKey()); controllerKeys.add(counter); return controllerKeys; } } } } throw new RuntimeException(ErrorMessages.SCSI_CONTROLLER_CAPACITY_MAXED_OUT); }
int[] slots = new int[MAXIMUM_ATAPI_SLOTS]; for (Integer deviceKey : deviceList) { if (deviceMap.get(deviceKey).getUnitNumber() != null) { slots[deviceMap.get(deviceKey).getUnitNumber()] = OCCUPIED;
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; }
cdrom.setBacking(cdDeviceBacking); cdrom.setControllerKey(vd.getKey()); cdrom.setUnitNumber(vd.getUnitNumber()); cdrom.setKey(-1);
cdrom.setBacking(cdDeviceBacking); cdrom.setControllerKey(vd.getKey()); cdrom.setUnitNumber(vd.getUnitNumber()); cdrom.setKey(-1);