Примеры сценариев JavaScript можно вырезать, вставлять и редактировать, чтобы писать сценарии поиска сущностей vRealize Automation на основе объекта служебной программы создания сценариев vCACCAFEEntitiesFinder.

Дополнительные сведения о создании сценариев в vRealize Orchestrator см. в статье Разработка с помощью VMware vRealize Orchestrator.

Поиск ресурсов каталога с фильтрацией по имени

Таблица 1. Входные переменные

Переменная

Type

host

vCACCAFE:VcacHost

Можно использовать один из следующих примеров.

  • Этот пример сценария позволяет получить все ресурсы каталога для целевого узла, которые совпадают по имени и описанию с запросом name_of_the_resource.

    var items = vCACCAFEEntitiesFinder.findCatalogResources(host, "name_of_the_resource");
  • В этом примере сценария выполняются следующие действия.

    1. Получение службы ресурсов потребителей и вызов метода get путем передачи в качестве параметра Pageable экземпляра объекта vCACCAFEPageOdataRequest.

    2. Создание объекта vCACCAFEPageOdataRequestпутем предоставления запроса OData как единого фильтра атрибута name, совпадающего со строкой name_of_the_resource.

    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 путем передачи в качестве параметра Pageable экземпляра объекта vCACCAFEPageOdataRequest.

  2. Создание объекта vCACCAFEPageOdataRequestпутем предоставления запроса OData как единого фильтра атрибута owner/ref, совпадающего со строкой user@domain.com.

    Атрибут owners/ref составлен на основе внутренней структуры и полей ресурсов каталога. У сущности vCACCAFECatalogResource есть атрибут owners, представляющий собой коллекцию сущностей vCACCAFECatalogPrincipal. У сущности vCACCAFECatalogPrincipal есть свойство ref — это представление идентификатора субъекта-пользователя в виде строки.

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));

Поиск ресурсов каталога с фильтрацией по имени и владельцу

В этом примере сценария запросы OData из двух предыдущих примеров объединены в одно условие с помощью логического оператора vCACCAFEFilterParam.and(array of conditions).

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) и т. п.