UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

50 lines (49 loc) 2.23 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 certificates_1 = require("./certificates"); class CertificateDetailsCollector extends base_1.BaseCollector { collect() { return this.getAllCertificateDetails(); } async getAllCertificateDetails() { const self = this; const serviceName = "ACM"; const acmRegions = self.getRegions(serviceName); const certificateCollector = new certificates_1.CertificateCollector(); certificateCollector.setSession(this.getSession()); const certificate_details = {}; try { const certificatesData = await utils_1.CollectorUtil.cachedCollect(certificateCollector); const certificates = certificatesData.certificates; for (const region of acmRegions) { try { const acmService = self.getClient(serviceName, region); const regionCertificates = certificates[region]; const allRegionCertificateDetails = []; for (const certificate of regionCertificates) { const regionCertificateDetails = await acmService.describeCertificate({ CertificateArn: certificate.CertificateArn, }).promise(); if (regionCertificateDetails.Certificate) { allRegionCertificateDetails.push(regionCertificateDetails.Certificate); } } certificate_details[region] = allRegionCertificateDetails; await utils_1.CommonUtil.wait(200); } catch (error) { aws_1.AWSErrorHandler.handle(error); continue; } } } catch (error) { aws_1.AWSErrorHandler.handle(error); } return { certificate_details }; } } exports.CertificateDetailsCollector = CertificateDetailsCollector;