public void addHardDisk()

in src/com/vmware/vim25/mox/VirtualMachineDeviceManager.java [391:420]


  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);
  }