pyvmomi检索所有VM的自定义属性“所有者”

问题描述

我正在尝试(但失败)弄清楚如何使用pyvmomi为vCenter中的所有VM检索名为“所有者”的自定义属性

我使用这样的代码来检索VM名称,电源状态和uu​​id:

摘要=虚拟机摘要 打印(summary.config.name,“”,summary.runtime.powerState,“ summary.config.uuid)

但是,我无法弄清楚如何为vCenter中的所有VM检索名为“所有者”的自定义属性

预先感谢

解决方法

CustomAttribute分别存储在customValue字段中。每个customValue都有其名称和键,在您的情况下,“所有者”是名称,您需要先获取其键。

这是一个示例:

conn=connect.SmartConnect(host='***',user='***',pwd='***',port=443)
content = conn.RetrieveContent()
cfm = content.customFieldsManager
required_field = ["Owner"]
my_customField = {}
for my_field in cfm.field:
    if my_field.name in required_field:
        my_customField[my_field.key]=my_field.name

键及其显示名称在my_customField字典中,您可以通过它获取customValue

for opts in vm.customValue:
    if opts.key in my_customField:
        output[my_customField[opts.key]]=opts.value

在输出字典中,您拥有想要的东西。