UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

40 lines (39 loc) 1.66 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 RDSReservedInstancesCollector extends base_1.BaseCollector { collect() { return this.getAllInstances(); } async getAllInstances() { const serviceName = "RDS"; const rdsRegions = this.getRegions(serviceName); const reserved_instances = {}; for (const region of rdsRegions) { try { const rds = this.getClient(serviceName, region); let fetchPending = true; let marker; reserved_instances[region] = []; while (fetchPending) { const instancesResponse = await rds.describeReservedDBInstances({ Marker: marker }).promise(); if (instancesResponse && instancesResponse.ReservedDBInstances) { reserved_instances[region] = reserved_instances[region].concat(instancesResponse.ReservedDBInstances); } marker = instancesResponse.Marker; fetchPending = marker !== undefined && marker !== null; await utils_1.CommonUtil.wait(200); } } catch (error) { aws_1.AWSErrorHandler.handle(error); continue; } } return { reserved_instances }; } } exports.RDSReservedInstancesCollector = RDSReservedInstancesCollector;