我正在查询 ESX 主机,其中一些由 vCenter 服务器管理,而另一些则不是。我想找出管理此主机的 vCenter 服务器的名称(如果有的话)。
我正在使用 Python psphere 模块,但我想要的只是我应该查看的对象类型和属性。这是我的代码的相关摘录:
from psphere.client import Client
import psphere.managedobjects
items = []
cl = Client( hostname, userid, password )
dcs = psphere.managedobjects.Datacenter.all( cl )
我通过检查数据中心列表来识别 ESX 主机与 vCenter 服务器:
if len( dcs ) == 1 and dcs[0].name == 'ha-datacenter':
hosts = psphere.managedobjects.HostSystem.all( cl )
通常,上面的主机将是一个元素的列表:ESX 主机。我想知道如何确定该主机是否有管理 ESX 服务器。vSphere客户端做到了,所以一定有办法。
else: # This is a vCenter server, so we can drill down to find the ESX servers
for dc in dcs:
items.extend( getEntities( dc, [hostname] ) )
getEntities() 是我自己的函数,用于收集有关主机和 vCenter 服务器的详细信息。