您可以在 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); 
}