VMware vSphere WebService SDK使用心得

善用mob(Managed Object Browser)

mob地址一般是https://vcenter的FQDN/mob,mob可以让你更好的理解SDK中的那些例子,以及根据自己的业务逻辑改写一些功能。下图为mob首页图,图中的content为整个Managed Object的顶层,从这里进去可以找到整个vcenter server中所有对象及其属性。

善用GetMOREF类

GetMOREF类具体位置在VMware-vSphere-SDK-6.0.0-2561048\SDK\vsphere-ws\java\JAXWS\samples\com\vmware\connection\helpers,这是VMware官方提供的一个工具类,里面的每个函数对于开发都很有用。例如

​List<VirtualDevice> listvd = ((ArrayOfVirtualDevice) getMOREFs
                                .entityProps(vmMor, new String[] { "config.hardware.device" })
                                .get("config.hardware.device")).getVirtualDevice();

这是VMReconfig.java中的一个片段,这段代码的作用就是去获取指定虚拟机对象的所有设备,vmMor可以通过GetMOREF类中的vmByVMname函数去获得。至于config.hardware.device,就需要用mob一层一层点进去看了,相信结合mob就能理解为什么要这么写。

​​
 ManagedObjectReference propCol = connection.getServiceContent().getPropertyCollector();
 ManagedObjectReference vmRef = getMOREFs.vmByVMname(virtualMachineName,propCol);

上面这段代码的作用就是如何根据虚拟机名去获取其对应的ManagedObjectReference

善用SDK里面的文档

文档首页为VMware-vSphere-SDK-6.0.0-2561048/SDK/vsphere-ws/docs/ReferenceGuide/index.html

根据需求,在左侧导航栏对应的去找。

对SDK我整理了一下,使其能够在idea中编译运行,项目地址在VMwareProject