Vijava 学习笔记之(模板生成虚拟机)

vijava 源代码:

package com.vmware.template;


import com.vmware.util.Session;
import com.vmware.vim25.VirtualDeviceConfigSpec;
import com.vmware.vim25.VirtualMachineCloneSpec;
import com.vmware.vim25.VirtualMachineConfigSpec;
import com.vmware.vim25.VirtualMachineRelocateSpec;
import com.vmware.vim25.mo.*;

import java.rmi.RemoteException;

/**
 * Created by vixuan-008 on 2015/5/4.
 */
public class VirtualMachineTemplate {
    public static void main(String[] args){

        try{
            String poolName="";
            String hostName="192.168.0.10";
            com.vmware.vim25.mo.VirtualMachine templateVM = null;
            com.vmware.vim25.mo.ResourcePool pool = null;
            ComputeResource computerResource = null;
            InventoryNavigator inventoryNavigator = null;
            Task task = null;

            ServiceInstance instance = Session.getInstance("***", "***", "**");
            Folder rootFolder = instance.getRootFolder();
            inventoryNavigator = new InventoryNavigator(rootFolder);
            try {
                templateVM = (com.vmware.vim25.mo.VirtualMachine) inventoryNavigator.searchManagedEntity(
                        "VirtualMachine", "wintem");
            } catch (RemoteException e) {
                e.printStackTrace();
            }
            VirtualMachineRelocateSpec virtualMachineRelocateSpec = new VirtualMachineRelocateSpec();
            if (null != poolName && !"".equals(poolName)) {
                try {
                    pool = (ResourcePool) inventoryNavigator.searchManagedEntity("ResourcePool", poolName);
                    virtualMachineRelocateSpec.setPool(pool.getMOR());
                } catch (RemoteException e) {
                    e.printStackTrace();
                }


            } else {

                try {
                    computerResource = (ComputeResource) inventoryNavigator.searchManagedEntity("ComputeResource", hostName);

                    virtualMachineRelocateSpec.setPool(computerResource.getResourcePool().getMOR());
                    virtualMachineRelocateSpec.setHost(computerResource.getHosts()[0].getMOR());

                } catch (RemoteException e) {
                    e.printStackTrace();
                }

            }

            VirtualMachineConfigSpec configSpec = new VirtualMachineConfigSpec();


            configSpec.setNumCPUs(Integer.parseInt("4"));
            configSpec.setMemoryMB(Long.parseLong("1024"));





            VirtualMachineCloneSpec cloneSpec =
                    new VirtualMachineCloneSpec();
            VirtualDeviceConfigSpec virtualDeviceConfigSpec = new VirtualDeviceConfigSpec();


            cloneSpec.setLocation(virtualMachineRelocateSpec);

            cloneSpec.setPowerOn(true);
            cloneSpec.setTemplate(false);
            cloneSpec.setConfig(configSpec);



            try {


                task = templateVM.cloneVM_Task((Folder) templateVM.getParent(),
                        "vm6", cloneSpec);
                String result=task.waitForTask();
                if(result.equals(Task.SUCCESS)){
                    System.out.println("success");
                }else{
                    System.out.println("faile");
                }


            } catch (RemoteException e) {
                e.printStackTrace();

            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

相关截图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值