vSphere SDK 如何在 JAVA 中删除虚拟机



我正在努力寻找一种通过使用vSphere SDK JAVA API删除虚拟机的方法,但似乎没有任何效果。据我所知,我需要获取虚拟机托管对象的实例并调用 Destroy_Task(),但到目前为止,我只能通过使用 PropertyCollector 获取虚拟机的 ManagedObjectReference,这对这个特定任务没有帮助。

我在互联网上找不到任何可以说明如何做到这一点的例子,希望这里有人可以帮助我。

提前致谢

好的,

我设法解决了它。所以 ManagedObject 是一个服务器端对象,在客户端我们只能访问一个 ManageObjectReference,

要执行 ManagedObject 的方法,我们需要通过 VimPortType vimPort 调用它们。因此,通过 API 删除虚拟机的步骤是

  1. 我们得到特定虚拟机的托管对象引用
  2. 调用 vimPort(mor) where mor in ManagedObjectReference 从步骤 1 开始。

仅此而已。

使用 java API 在 VMware 实例上执行操作非常容易。

  1. 获取服务实例
  2. 从服务实例获取根文件夹
  3. 使用根文件夹中的 vmname 搜索虚拟机
  4. 执行操作

Folder rootFolder = serviceInstance.getRootFolder(); InventoryNavigator inventoryNavigator = new InventoryNavigator(rootFolder); vm = (VirtualMachine) inventoryNavigator.searchManagedEntity(VirtualMachine.class.getSimpleName(), vmName); Task task = vm.powerOffVM_Task(); task.waitForTask(); Task task1 = vm.destroy_Task();

到目前为止,我已经处理了几乎所有云的java api。但是VMware的API是最好的。你只需要深入研究它。

最新更新