您可以在 vCenter插件中使用查找器方法来查询vCenter 清单对象。您可以使用 XPath 表达式来定义搜索参数。
vCenter插件包含一组对象查找器方法,例如:getAllDatastores()、getAllResourcePools()、findAllForType()。您可以使用这些方法来访问连接到 Automation Orchestrator 服务器的 vCenter 实例的清单,并按 ID、名称或其他属性搜索对象。
出于性能考虑,查找器方法不返回查询对象的任何属性,除非您在搜索查询中指定一组属性。
您可以在 Orchestrator 文档主页参考在线版本的 vCenter 插件脚本 API。
重要说明: 基于 XPath 表达式的查询可能会影响
Automation Orchestrator 性能,因为查找器方法会返回
vCenter 端给定类型的所有对象,并会将查询筛选器应用到
vCenter 插件端。
将 XPath 表达式与 vCenter 插件示例结合使用
调用查找器方法时,可以使用基于 XPath 查询语言的表达式。搜索将返回与 XPath 表达式匹配的所有清单对象。如果想查询任何属性,可以将其以字符串数组形式包含到搜索脚本中。
以下 JavaScript 示例使用了 VcPlugin 脚本对象以及 XPath 表达式,用于返回 vCenter 所属受管对象的所有数据存储对象的名称,并且在其名称中包含字符串 ds。
var datastores = VcPlugin.getAllDatastores(null, "xpath:name[contains(.,'ds')]"); for each (datastore in datastores){ System.log(datastore.name); }
使用 Server 脚本对象和 findAllForType 查找器方法可以调用同一 XPath 表达式。
var datastores = Server.findAllForType("VC:Datastore", "xpath:name[contains(.,'ds')]"); for each (datastore in datastores){ System.log(datastore.name); }
以下脚本示例会返回其 ID 以数字 1 开头的所有主机系统对象的名称。
var hosts = VcPlugin.getAllHostSystems(null, "xpath:id[starts-with(.,'1')]"); for each (host in hosts){ System.log(host.name); }
以下脚本会返回其名称中包含字符串 DC(无论大写或小写)的所有数据中心对象的名称和 ID。该脚本还可检索标记属性。
var datacenters = VcPlugin.getAllDatacenters(['tag'], "xpath:name[contains(translate(., 'DC', 'dc'), 'dc')]"); for each (datacenter in datacenters){ System.log(datacenter.name + " " + datacenter.id); }