如何使用VMware vSphere Web Service SDK6.0开发自己的功能(三)之获取指定虚拟机的CPU个数以及内存大小

前言

前面说明了如何使用Web Service SDK登录vCenter Server以及获取虚拟机总数,这次就来说一下如何获取虚拟机的CPU个数以及内存大小。

实现

    void getVirtualMachineConfig() {
        //ServiceContent这个类跟mob首页的ServiceContent对应起来的,这里相当于拿到一个容器
        ManagedObjectReference propCol = connection.getServiceContent().getPropertyCollector();
        getMOREFs = new GetMOREF(connection);
        try {
            //根据虚拟机名称拿到对应的引用
            ManagedObjectReference vmRef = getMOREFs.vmByVMname("CentOS6.5", propCol);
            //解析虚拟机summary属性
            VirtualMachineSummary vmSummary = (VirtualMachineSummary)
                    getMOREFs.entityProps(vmRef, new String[]{"summary"}).get("summary");
            System.out.println(vmSummary.getConfig().getMemorySizeMB());
            System.out.println(vmSummary.getConfig().getNumCpu());
        } catch (InvalidPropertyFaultMsg invalidPropertyFaultMsg) {
            invalidPropertyFaultMsg.printStackTrace();
        } catch (RuntimeFaultFaultMsg runtimeFaultFaultMsg) {
            runtimeFaultFaultMsg.printStackTrace();
        }

    }

这个地方只提供了一种套路,按照这种套路,大家可以获取虚拟机中所有的配置,mob中有的属性,使用这种套路都可以得到。

 VirtualMachineSummary vmSummary = (VirtualMachineSummary)
                    getMOREFs.entityProps(vmRef, new String[]{"summary"}).get("summary");

这行代码中的summary对应mob中虚拟机的summary属性,VMware为虚拟机的每个配置都定义了一种数据结构,例如VirtualMa   chineCapability(定义了虚拟机兼容性)、VirtualMachineConfigInfo(虚拟机配置信息)、VirtualMachineSummary(虚拟机摘要信息)等。

运行结果

猜你喜欢

转载自blog.csdn.net/u013385554/article/details/81984195