有没有办法通过vijava获取我想要的VM的确切列表,同时也获得他们的"类型信息" (例如运行时,配置,访客对象)?目前你必须通过InventoryNavigator来获取所有列出的VM并进行迭代,直到找到与你感兴趣的名称相匹配的那个。这看起来有点过分。无论如何,我可以在没有首先检索所有内容的情况下获得我要求的确切VM?
String [][] typeInfo = new String[][] {new String[]{"guest", "config", "runtime"}};
ManagedEntity entity = new InventoryNavigator().searchManagedEntity(typeInfo, "hello-world-vm");
在调试过程中,已发现此单个调用返回列出的所有VM,并且API搜索该列表以查找与传递的名称匹配的那个。出于性能原因,我不想返回每个列出的VM,而只返回" hello-world-vm"。
答案 0 :(得分: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以来已经很久了)