in source/lambda/services/servicequotaschecks/lib/service-quotas-checks.js [180:216]
async getServiceLimits(checkName, params, valid_regions) {
if(!Promise.allSettled) {
Promise.allSettled = function(promises) {
return Promise.all(promises.map(p => Promise.resolve(p).then(value => ({
status: 'fulfilled',
value
}), reason => ({
status: 'rejected',
reason
}))));
};
}
let limits_map = {};
let region_map = {};
let getServiceQuotas = valid_regions.map(currentRegion => {
AWS.config.update({region: currentRegion});
let servicequotas = new AWS.ServiceQuotas();
return servicequotas.getServiceQuota(params).promise();
});
try {
let serviceQuotasArray=[];
let promiseResults = await Promise.allSettled(getServiceQuotas);
promiseResults.forEach(result => {
if(result.status==='fulfilled')
serviceQuotasArray.push(result.value);
});
serviceQuotasArray.map(item=> {
let currentRegion = item.Quota.QuotaArn.split(":")[3];
region_map[currentRegion]=item.Quota.Value;
})
} catch(err) {
LOGGER.log('ERROR', err);
}
limits_map[checkName]=region_map;
LOGGER.log('DEBUG', JSON.stringify(limits_map))
return limits_map;
}