善用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