async getServiceLimits()

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