【发布时间】:2015-07-30 09:12:21
【问题描述】:
我正在使用 ViJava 5.5-beta。 例如,我想查找名称中包含“SQL”的所有 VM。 为了搜索,我得到所有“VirtalMachine”类型的 ManagedEntities 并迭代它们。 你能告诉我,有没有什么快速的搜索方法可以做到这一点?
serviceInstance = new ServiceInstance(new URL(vCenter), Constants.USERNAME, Constants.PASSWORD, true);
Folder rootFolder = serviceInstance.getRootFolder();
ManagedEntity[] mes = new InventoryNavigator(rootFolder).searchManagedEntities("VirtualMachine");
for (ManagedEntity me : mes) {
// ....if (name.contains("SQL"))......
}
【问题讨论】:
-
恐怕这是唯一的方法。无法将过滤传递给服务器。我们做了类似的事情,但不使用 String.contains() 方法,而是使用 Java 的模式匹配器。我们所做的一项优化是预先编译我们想要匹配的模式(在 for 循环之外)。这样,我们可能会在每个循环中节省几毫秒