Hello,
there is a way! First, you have to get the MoRef of the providerVdc to identify the resourcepool in a VC. But be careful, in environments with many vCenter-servers the MoRef is maybe not unique ( look here and here).
I think this code will fit your requirements:
//A Moref is a VC-Identifier
var rpMorefs = new Array(); //do this for all vcdHostsfor each (var vcdInstance in VclHostManager.getHostList()) { vcdInstance.login(); //get all Provider-vDCs from vcdHost for each ( var providerVdc in vcdInstance.toAdminObject().getProviderVdcs()) { //Prepare query - getProviderVdc by name var expression = new VclExpression(VclQueryProviderVdcResourcePoolRelationField.NAME, providerVdc.name, VclExpressionType.EQUALS); var filter = new VclFilter(expression); var params = new VclQueryParams(); params.setFilter(filter); while (resultSet != null) { // retrieve ProviderVdcResourcePoolRelationRecord record var records = resultSet.getRecords(new VclQueryResultProviderVdcResourcePoolRelationRecord()); for each (var record in records) { //get all resourcePoolMorefs rpMorefs.push(record.resourcePoolMoref); } resultSet = resultSet.getNextPage(); } }}
var resourcePools = VcPlugin.getAllResourcePools(); //get the vCenter-resourcePoolObject by Moreffor each (var moref in rpMorefs){ for each (var resourcePool in resourcePools) { if ( moref == resourcePool.id) { System.log("Resourcepool of the providerVdc: " + resourcePool.name); } } }
Another way to retrieve the MoRef is to extract it from the providerVdc-XML (providerVdc.toXml()).
Cheers,
Thomas