1

有什么方法可以通过 vijava 获取我想要的 VM 的确切列表,同时获取它们的“类型信息”(例如运行时、配置、来宾对象)?目前,您必须通过 InventoryNavigator 来获取所有列出的虚拟机并进行迭代,直到找到与您感兴趣的名称匹配的虚拟机。这似乎有点矫枉过正。无论如何,我是否可以在不首先检索所有内容的情况下获得我要求的确切 VM?

String [][] typeInfo = new String[][] {new String[]{"guest", "config", "runtime"}};
ManagedEntity entity = new InventoryNavigator().searchManagedEntity(typeInfo, "hello-world-vm");

在调试过程中,我们发现这个单一的调用会返回所有列出的虚拟机,API 会搜索该列表以找到与传递的名称匹配的虚拟机。出于性能原因,我不想返回每个列出的 VM,而只返回“hello-world-vm”。

4

1 回答 1

1

您应该使用独特的东西来定位您正在寻找的 VirtualMachine,例如它的 UUID。

例如:

ServiceInstance si = new ServiceInstance(xxx)
String uuid = "some uuid here"
VirtualMachine vm = si.searchIndex.findByUuid(null, uuid, true)

这将仅返回具有给定 uuid 的 VM。上面的代码是 groovy 而不是 Java,我认为你需要在 Java 中使用分号和 getxxx 方法(自从我写真正的 Java 以来已经很久了)

于 2014-07-27T00:35:56.593 回答