UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

37 lines (36 loc) 1.44 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"); class RedshiftClustersCollector extends base_1.BaseCollector { collect(callback) { return this.getAllClusters(); } async getAllClusters() { const self = this; const serviceName = "Redshift"; const redshiftRegions = self.getRegions(serviceName); const clusters = {}; for (const region of redshiftRegions) { try { const redshift = self.getClient(serviceName, region); clusters[region] = []; let fetchPending = true; let marker; while (fetchPending) { const clustersResponse = await redshift.describeClusters({ Marker: marker }).promise(); clusters[region] = clusters[region].concat(clustersResponse.Clusters); marker = clustersResponse.Marker; fetchPending = marker !== undefined; await utils_1.CommonUtil.wait(200); } } catch (error) { aws_1.AWSErrorHandler.handle(error); } } return { clusters }; } } exports.RedshiftClustersCollector = RedshiftClustersCollector;