i would i like to extend the size of vmdk file. as it is very much useful in my project
Below is the code which i am using for extenstion of vmdk file
code 1:
package com.vmware.vim25.mo.samples.vm;
import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;
import com.vmware.vim25.VirtualDevice;
import com.vmware.vim25.VirtualDeviceConfigSpec;
import com.vmware.vim25.VirtualDeviceConfigSpecFileOperation;
import com.vmware.vim25.VirtualDeviceConfigSpecOperation;
import com.vmware.vim25.VirtualDisk;
import com.vmware.vim25.VirtualMachineConfigInfo;
import com.vmware.vim25.VirtualMachineConfigSpec;
import com.vmware.vim25.VmConfigInfo;
import com.vmware.vim25.mo.Folder;
import com.vmware.vim25.mo.InventoryNavigator;
import com.vmware.vim25.mo.ServiceInstance;
import com.vmware.vim25.mo.Task;
import com.vmware.vim25.mo.VirtualMachine;
public class TestingDiskExt1 {
public static void main(String args[]) throws RemoteException, MalformedURLException
{
//vijava_disk.vmdk
String diskName = "vijava_disk";
VirtualDeviceConfigSpec vdiskSpec=null;
String vmname = "Testing";
ServiceInstance si = new ServiceInstance(new URL("xxx"), "xxx", "xxx", true);
Folder rootFolder = si.getRootFolder();
VirtualMachine vm = (VirtualMachine) new InventoryNavigator(rootFolder).searchManagedEntity("VirtualMachine", vmname);
if(vm==null)
{
System.out.println("No VM " + vmname + " found");
si.getServerConnection().logout();
return;
}
VirtualMachineConfigSpec vmConfigSpec = new VirtualMachineConfigSpec();
VirtualDisk disk=null;
VirtualMachineConfigInfo vmConfig=vm.getConfig();
//diskName="Hard disk 1";
VirtualDeviceConfigSpec diskSpec = new VirtualDeviceConfigSpec();
VirtualDevice [] devices = vmConfig.getHardware().getDevice();
int i=0;
for(i=0;i<devices.length;i++)
{
System.out.println(devices[i].getDeviceInfo().getLabel());
if(devices[i].getDeviceInfo().getLabel().equals("Hard disk 1"))
{
disk= (VirtualDisk) devices[i];break;
}
}
VirtualDeviceConfigSpec[] vmConfigSpecs = new VirtualDeviceConfigSpec[2];//=VirtualMachineConfigSpec[10];
vmConfigSpecs[0].device=devices[i];
vmConfigSpec.deviceChange=vmConfigSpecs;
VirtualDeviceConfigSpec opertn=new VirtualDeviceConfigSpec();
opertn.device=devices[i-1];
System.out.println("Contoller Key : "+devices[i].controllerKey+"\nOperation : "+opertn.getOperation());
disk.capacityInKB=8388609;
VirtualDevice vd=devices[i-1];
vmConfigSpecs[1].device=vd;
vmConfigSpecs[1].getOperation();
//vmConfigSpec;
//VirtualDisk disk = (VirtualDisk) findVirtualDevice(vm.getConfig(), diskName);
/*if(disk != null)
{
disk.setCapacityInKB(200*1024);
System.out.print("CAPACITY : " + disk.capacityInKB+"\nOptions"+ VirtualDeviceConfigSpecOperation.values()+"\n");
diskSpec.setOperation(VirtualDeviceConfigSpecOperation.edit);
diskSpec.setFileOperation(VirtualDeviceConfigSpecFileOperation.replace);
diskSpec.setDevice(disk);
vdiskSpec=diskSpec;
VirtualDeviceConfigSpec [] vdiskSpecArray = {vdiskSpec};
vmConfigSpec.setDeviceChange(vdiskSpecArray);
}
else
{
System.out.println("No device found: " + diskName);
}*/
//Task task = vm.reconfigVM_Task(vmConfigSpec);
//String status = task.waitForMe();
//if(status == Task.SUCCESS)
System.out.println("Success");
// else
System.out.println("Blast");
si.getServerConnection().logout();
}
}
code 2:
package com.vmware.vim25.mo.samples.vm;
import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;
import com.vmware.vim25.ManagedObjectReference;
import com.vmware.vim25.VimPortType;
import com.vmware.vim25.VirtualDeviceConfigSpec;
import com.vmware.vim25.mo.Datacenter;
import com.vmware.vim25.mo.Folder;
import com.vmware.vim25.mo.InventoryNavigator;
import com.vmware.vim25.mo.ServerConnection;
import com.vmware.vim25.mo.ServiceInstance;
import com.vmware.vim25.mo.Task;
import com.vmware.vim25.mo.VirtualDiskManager;
import com.vmware.vim25.mo.VirtualMachine;
public class TestingDiskExt2 {
public static void main(String args[]) throws RemoteException, MalformedURLException
{
ServiceInstance si = new ServiceInstance(new URL("XXXX"), "XXXr", "XXXX", true);
String vmname="Testing1";
Folder rootFolder = si.getRootFolder();
VirtualMachine vm = (VirtualMachine) new InventoryNavigator(rootFolder).searchManagedEntity("VirtualMachine", vmname);
if(vm==null)
{
System.out.println("No VM " + vmname + " found");
si.getServerConnection().logout();
return;
}
System.out.println("vmnnae : "+vm.getName());
ServiceInstance oldsi = si.getServerConnection().getServiceInstance();
ServerConnection sc = oldsi.getServerConnection();
//ServerConnection sc=new ServerConnection(new URL("hxxx"), vimService, si);
ManagedObjectReference mor=new ManagedObjectReference();
mor.setType("VirtualDiskManager");
//mor.setVal("Testing1");
VirtualDiskManager vdm=new VirtualDiskManager(sc, mor);
Datacenter dcc=(Datacenter)new InventoryNavigator(rootFolder).searchManagedEntity("Datacenter", vmname);
Task t=vdm.extendVirtualDisk_Task("[datastore1] Testing1/Testing1.vmdk", dcc, 1000000);
t.waitForMe();
System.out.println("Success");
si.getServerConnection().logout();
}
}
i have even attached java file which i am trying... plz see d codes and let me know abt it...!!!