源代码:
package com.vmware.client;
import com.vmware.util.Session;
import com.vmware.vim25.*;
import com.vmware.vim25.mo.*;
/**
* Created by vixuan-008 on 2015/6/27.
*/
public class UpdateVMDisk {
public static void main(String[] args)throws Exception{
ServiceInstance serviceInstance = null;
String vmname = "6699VV";
//ServiceInstance----服务实例
serviceInstance = Session.getInstance("192.168.0.22","administrator@vsphere.local","Vixuan12#");
//rootFolder-------根文件夹
Folder rootFolder = serviceInstance.getRootFolder();
//vm---------------指定虚拟机
VirtualMachine vm = (VirtualMachine) new InventoryNavigator(rootFolder).searchManagedEntity("VirtualMachine", vmname);
//vmci--------------虚拟机配置信息
VirtualMachineConfigInfo vmci = vm.getConfig();
//devices-----------虚拟机关联设备
VirtualDevice [] devices = vmci.getHardware().getDevice();
//theDisk-----------虚拟机系统磁盘
VirtualDisk theDisk = null;
for ( int i=0; devices!=null && i<devices.length; i++) {
if ( devices[i] instanceof VirtualDisk) {
theDisk = (VirtualDisk)devices[i];
break;
}
}
//更改系统磁盘大小
theDisk.setCapacityInKB(Long.parseLong("60")*1024*1024);
VirtualDeviceConfigSpec vdcs = new VirtualDeviceConfigSpec();
vdcs.setDevice(theDisk);
vdcs.setOperation(VirtualDeviceConfigSpecOperation.edit);
VirtualMachineConfigSpec vmcs = new VirtualMachineConfigSpec();
vmcs.setDeviceChange(new VirtualDeviceConfigSpec[]{vdcs});
//执行虚拟机系统磁盘更改任务
Task task = vm.reconfigVM_Task(vmcs);
String result = task.waitForMe();
if (result.equals(Task.SUCCESS)) {
System.out.println("success");
} else {
System.out.println("failed");
}
}
}