VMware {code} Community
hilavergil
Contributor
Contributor

Add an existing hard disk

I am trying to use vSphere Management SDK for Java to add an existing hard disk to a VM, which function can i use?

QQ截图20180515141642.png

Tags (1)
Reply
0 Kudos
3 Replies
hilavergil
Contributor
Contributor

  VirtualDeviceConfigSpec virtualdiskconfigspec = new VirtualDeviceConfigSpec();

  VirtualDisk tmpdisk = new VirtualDisk();

  VirtualDiskFlatVer2BackingInfo diskfileBacking = new VirtualDiskFlatVer2BackingInfo();

   int ckey = 0;

   int unitNumber = 0;

  List<Integer> getControllerKeyReturnArr = getControllerKey(testcentosMor);

   if (!getControllerKeyReturnArr.isEmpty()) {

  ckey = getControllerKeyReturnArr.get(0);

  unitNumber = getControllerKeyReturnArr.get(1);

  System.out.println("###WATCH ME###");

  System.out.println("controllerKey is "+ckey);

  System.out.println("unitNumber is "+unitNumber);

  System.out.println("##############");

  }

  String fileName = "[" + "datastore1" + "] " + "Redhat" + "/" + "Redhat"
   + ".vmdk";

  diskfileBacking.setFileName(fileName);

  diskfileBacking.setDiskMode("persistent");

  tmpdisk.setControllerKey(ckey);

  tmpdisk.setUnitNumber(unitNumber);

  tmpdisk.setBacking(diskfileBacking);

// tmpdisk.setCapacityInKB(4194304);
// tmpdisk.setKey(2001);

   virtualdiskconfigspec.setOperation(VirtualDeviceConfigSpecOperation.ADD);

// virtualdiskconfigspec.setFileOperation(VirtualDeviceConfigSpecFileOperation.CREATE);
   virtualdiskconfigspec.setDevice(tmpdisk);

  List<VirtualDeviceConfigSpec> alvdcs =

   new ArrayList<VirtualDeviceConfigSpec>();

  alvdcs.add(virtualdiskconfigspec);

  VirtualMachineConfigSpec vmcsreconfig = new VirtualMachineConfigSpec();

  vmcsreconfig.getDeviceChange().addAll(alvdcs);

  System.out.printf(" Reconfiguring the Virtual Machine - [ %s ]", virtualMachineName);

  List<HostScsiDisk>tempdisks=new ArrayList<HostScsiDisk>();

  ManagedObjectReference task = vimPort.reconfigVMTask(testcentosMor, vmcsreconfig);

   if (getTaskResultAfterDone(task)) {

  System.out.printf("\n Reconfiguring the Virtual Machine "
   + " - [ %s ] Successful", virtualMachineName);

  } else {

  System.out.printf(" Reconfiguring the Virtual Machine "
   + " - [ %s ] Failed", virtualMachineName);

  }

Reply
0 Kudos
doskiran
Enthusiast
Enthusiast

Sample java program to extend existing VM harddisk with specified capacity using vSphere API. https://code.vmware.com/samples/1821/extend-vm-hard-disk?h=Sample
 
Reply
0 Kudos
doskiran
Enthusiast
Enthusiast

Java program to Add existing disk to Powered on VM sample -

https://code.vmware.com/samples/2122/hot-add-existing-disk?h=Java

Reply
0 Kudos