UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

47 lines (46 loc) 1.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const utils_1 = require("../../../utils"); const aws_1 = require("../../../utils/aws"); const base_1 = require("../../base"); const elbs_1 = require("./elbs"); class ElbV2AttributesCollector extends base_1.BaseCollector { collect() { return this.getAllElbAttributes(); } async getAllElbAttributes() { const serviceName = "ELBv2"; const elbRegions = this.getRegions(serviceName); const elbV2sCollector = new elbs_1.ElbV2sCollector(); elbV2sCollector.setSession(this.getSession()); const elb_attributes = {}; try { const elbsData = await utils_1.CollectorUtil.cachedCollect(elbV2sCollector); const elbs = elbsData.elbs; for (const region of elbRegions) { try { const elbService = this.getClient(serviceName, region); const regionElbs = elbs[region]; const allRegionElbAttributes = {}; for (const elb of regionElbs) { const regionElbAttributes = await elbService.describeLoadBalancerAttributes({ LoadBalancerArn: elb.LoadBalancerArn, }).promise(); allRegionElbAttributes[elb.LoadBalancerName] = regionElbAttributes.Attributes; await utils_1.CommonUtil.wait(200); } elb_attributes[region] = allRegionElbAttributes; } catch (error) { aws_1.AWSErrorHandler.handle(error); continue; } } } catch (error) { aws_1.AWSErrorHandler.handle(error); } return { elb_attributes }; } } exports.ElbV2AttributesCollector = ElbV2AttributesCollector;