您可以剪切、粘贴和编辑 JavaScript 示例以编写脚本,用于通过 vCACCAFEEntitiesFinder 脚本实用程序对象来查找 vRealize Automation 实体。

有关 vRealize Orchestrator 中脚本编写的更多信息,请参见《使用 VMware vRealize Orchestrator 进行开发》

查找按名称筛选的目录资源

表 1. 输入变量

变量

类型

host

vCACCAFE:VcacHost

您可以使用以下任一示例:

  • 此示例脚本会获取目标主机上与 name_of_the_resource 查询匹配(按名称和描述)的所有目录资源。

    var items = vCACCAFEEntitiesFinder.findCatalogResources(host, "name_of_the_resource");
  • 此示例脚本会执行以下操作:

    1. 获取“用户资源”服务并调用 get 方法,将 Pageable 对象的实例作为 vCACCAFEPageOdataRequest 参数进行传递。

    2. 创建 vCACCAFEPageOdataRequest 对象时使用 OData 查询作为单个筛选器用于筛选与 name_of_the_resource 字符串匹配的 name 属性。

    var service = host.createCatalogClient().getCatalogConsumerResourceService(); 
    
    var filter = new Array();
    filter[0] = vCACCAFEFilterParam.equal("name", vCACCAFEFilterParam.string("name_of_the_resource"));
    var query = vCACCAFEOdataQuery.query().addFilter(filter); 
    
    var items = service.getResourcesList(new vCACCAFEPageOdataRequest(query));

查找按所有者筛选的目录资源

此示例脚本会执行以下操作:

  1. 获取“用户资源”服务并调用 get 方法,将 vCACCAFEPageOdataRequest 对象的实例作为 Pageable 参数进行传递。

  2. 创建 vCACCAFEPageOdataRequest 对象时使用 OData 查询作为单个筛选器用于筛选与 user@domain.com 字符串匹配的 owner/ref 属性。

    owners/ref 属性是基于内部结构和目录资源字段的组合。vCACCAFECatalogResource 实体具有 owners 属性,即 vCACCAFECatalogPrincipal 实体的集合。vCACCAFECatalogPrincipal 实体具有 ref 属性,即用户主体 ID 的字符串表现形式。

var filter = new Array();
filter[0] = vCACCAFEFilterParam.substringOf("owners/ref", vCACCAFEFilterParam.string("user@domain.com"));
var query = vCACCAFEOdataQuery.query().addFilter(filter);

var items = service.getResourcesList(new vCACCAFEPageOdataRequest(query));

查找按名称和所有者筛选的目录资源

此示例脚本使用 vCACCAFEFilterParam.and(array of conditions) 逻辑运算符将之前两个示例的 OData 查询合并为一个条件。

var conditions = new Array();
conditions[0] = vCACCAFEFilterParam.equal("name", vCACCAFEFilterParam.string("name_of_the_resource_here"));
conditions[1] = vCACCAFEFilterParam.substringOf("owners/ref", vCACCAFEFilterParam.string("user@domain.com"));

var filter = new Array();
filter[0] = vCACCAFEFilterParam.and(conditions);
var query = vCACCAFEOdataQuery.query().addFilter(filter);

var items = service.getResourcesList(new vCACCAFEPageOdataRequest(query));

您可以使用其他逻辑运算符(例如 vCACCAFEFilterParam.group(array of parameters)vCACCAFEFilterParam.not(parameter)vCACCAFEFilterParam.startsWith(id, string)vCACCAFEFilterParam.endsWith(id, string)vCACCAFEFilterParam.greaterThan(id, number)vCACCAFEFilterParam.lessThan(id, number) 等)定义其他条件。