Vijava学习笔记之(为指定的SCSI控制器,添加关联磁盘。主要针对虚拟机)

来源:互联网 发布:在linux中安装oracle 编辑:程序博客网 时间:2024/06/06 04:01

源代码:

package com.vmware.virtualmachine;import com.vmware.util.Session;import com.vmware.vim25.*;import com.vmware.vim25.mo.*;/** * Created by vixuan-008 on 2015/5/27. */public class VmCreate {    public static void main(String[] args) {        ServiceInstance serviceInstance=null;        try {            String vmname = "vm";//虚拟机名称            long diskSizeKB = 10*1024; //虚拟磁盘大小            // mode: persistent|independent_persistent,            // independent_nonpersistent            String diskMode = "persistent"; //虚拟磁盘类型            String datastoreName = "local05"; //存储器名称             serviceInstance = Session.getInstance("172.16.1.20", "root", "vmware");            Folder rootFolder = serviceInstance.getRootFolder();            VirtualMachine vm = (VirtualMachine) new InventoryNavigator(                    rootFolder).searchManagedEntity("VirtualMachine", vmname);            if (vm == null) {                System.out.println("No VM " + vmname + " found");                serviceInstance.getServerConnection().logout();                return;            }            // create vm config spec            VirtualMachineConfigSpec vmSpec =                    new VirtualMachineConfigSpec();            // create virtual devices            int cKey = 1000;            VirtualDeviceConfigSpec diskSpec = createDiskSpec(                    datastoreName, cKey, diskSizeKB, diskMode);            vmSpec.setDeviceChange(new VirtualDeviceConfigSpec[]                    {diskSpec});            // call the createVM_Task method on the vm folder           getVirtualMachieDevice(vm);            Task task = vm.reconfigVM_Task(vmSpec);            String result = task.waitForMe();            if (result == Task.SUCCESS) {                System.out.println("VM Created Sucessfully");            } else {                System.out.println("VM could not be created. ");            }        } catch (Exception e) {            e.printStackTrace();            System.out.println(e.getMessage());            serviceInstance.getServerConnection().logout();            return;        }    }      static VirtualDeviceConfigSpec createDiskSpec(String dsName,                                                  int cKey, long diskSizeKB, String diskMode)    {        VirtualDeviceConfigSpec diskSpec =                new VirtualDeviceConfigSpec();        diskSpec.setOperation(VirtualDeviceConfigSpecOperation.add);        diskSpec.setFileOperation(                VirtualDeviceConfigSpecFileOperation.create);        VirtualDisk vd = new VirtualDisk();        vd.setCapacityInKB(diskSizeKB);        diskSpec.setDevice(vd);        vd.setKey(-1);        vd.setUnitNumber(-1);        vd.setControllerKey(cKey);        VirtualDiskFlatVer2BackingInfo diskfileBacking =                new VirtualDiskFlatVer2BackingInfo();        String fileName = "["+ dsName +"]"+"111333333111222.vmk";        diskfileBacking.setFileName(fileName);        diskfileBacking.setDiskMode(diskMode);        diskfileBacking.setThinProvisioned(true);        vd.setBacking(diskfileBacking);        return diskSpec;    }    public static void getVirtualMachieDevice(VirtualMachine vm){        VirtualMachineConfigInfo vmConfig = (VirtualMachineConfigInfo)vm.getConfig();        VirtualDevice[] vds = vmConfig.getHardware().getDevice();        for(int k=0;k<vds.length;k++)        {         //  if(vds[k] instanceof VirtualSCSIController ){               System.out.println("----------start------------");                    System.out.println("name:"+vds[k].getDeviceInfo().getLabel());                     System.out.println("key:"+vds[k].getKey());               System.out.println("----------end------------");       //    }        }    }}


0 0
原创粉丝点击