I try to figure a way to optimize this action getIAASCatalogItemFromNameAndBG, it takes around 7min to execute it (more than 2500 VM's).
I guess I found a way to make the query in few seconds, but I would like your feedback about what I have done, and to be sure that both actions give the same result
Best Regards,
Manuel
Input:
bg: vCACCAFE:BusinessGroup
vcachost: vCACCAFE:VCACHost
Output:
att0 : vCACCAFE:CataloItem
Script:
var service = vcachost.createCatalogClient().getCatalogConsumerResourceService();
System.debug("**************Start of TEST1**********");
var CIname='%CI_NAME%'
var filter = new Array();
filter[0]= vCACCAFEFilterParam.substringOf("organization/subTenant/id", vCACCAFEFilterParam.string(bg.id));
filter[1] = vCACCAFEFilterParam.substringOf("catalogItem/name", vCACCAFEFilterParam.string(CIname));
filter[2] = vCACCAFEFilterParam.substringOf("owners/ref", vCACCAFEFilterParam.string("%SamAccount@AD.FQDN%"));
var query = vCACCAFEOdataQuery.query().addFilter(filter);
var items = service.getResourcesList(new vCACCAFEPageOdataRequest(query));
System.debug("pouet label: "+items[0].getCatalogItem().getLabel());
System.debug("pouet ID: "+items[0].getCatalogItem().getId());
var att0 = items[0];
System.debug("**************end of TEST1************");
Output:
[2016-08-18 16:45:11.587] [D] **************Start of TEST1**********
[2016-08-18 16:45:11.735] [D] pouet label: %CI_NAME%
[2016-08-18 16:45:11.735] [D] pouet ID: %CI_NAME_GUID%
[2016-08-18 16:45:11.735] [D] %resourceItem.name%
[2016-08-18 16:45:11.736] [D] BluePrint ID :DynamicWrapper (Instance) : [vCACCAFEProviderBinding]-[class com.vmware.vcac.catalog.rest.stubs.ProviderBinding]
-- VALUE : Binding id: 9be2c382-5a89-4715-a882-227190e34310, Provider: {id: 4e9b938a-5670-4631-a664-eda6252d8d51, label: iaas-service}
[2016-08-18 16:45:11.736] [D] **************end of TEST1************