gpt4 book ai didi

java - 使用 VI Java 获取 Vmware 中的 PoweredOn VM 数量

转载 作者:行者123 更新时间:2023-12-02 02:39:24 25 4
gpt4 key购买 nike

如何使用 VI Java SDK 获取 Vmware 中的 PoweredOn VM 计数?有没有办法根据电源状态过滤虚拟机?

以下代码给出了虚拟机引用对象。

 ManagedEntity[] vms = new InventoryNavigator(clusterEntity).searchManagedEntities("VirtualMachine");

要过滤 PoweredOn 状态的 VM,我们必须循环遍历托管实体并检索 VM 对象,这是一个耗时的操作。那么有没有办法单独获取计数信息呢?

最佳答案

实现此目的的一种方法是通过 PropertyCollectorRetrievePropertiesEx方法。

请注意,PropertyCollector 是一个相当复杂的野兽 - 简而言之,您需要为其提供递归策略(例如递归到子文件夹)以及您希望提取的属性。如果您之前从未使用过 PropertyCollector,那么您应该在线查找示例程序并修改它。

PropertyCollector 的优点在于,它只需一次调用即可检索大量实体的特定信息。所以在这方面它是相当有效的。您还可以很容易地获得计数。

正如您所指出的,另一种方法是逐个查询每个虚拟机,执行多个查询并接收更多需要处理的数据。根据您拥有/预期拥有的虚拟机数量以及您的性能要求,您可以选择最适合您的方法。

如果您使用的是 vSphere 6.5,请考虑使用 REST API。它有一个 list接受查询参数的虚拟机的操作,电源状态是通过该 API 公开的少数属性之一。因此,您可以使用 URL GET https://{server}/rest/vcenter/vm?filter.power_states.1=POWERED_ON 获取已启动虚拟机的列表。请注意,这仅限于 1000 个虚拟机。

关于java - 使用 VI Java 获取 Vmware 中的 PoweredOn VM 数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45728794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com