UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

40 lines (39 loc) 1.74 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 table_names_1 = require("./table_names"); class DynamoDBTablesDetailsCollector extends base_1.BaseCollector { collect() { return this.getAllTablesDetails(); } async getAllTablesDetails() { const serviceName = "DynamoDB"; const dynamoDBRegions = this.getRegions(serviceName); const tables_details = {}; const dynamoDBTableNamesCollector = new table_names_1.DynamoDBTableNamesCollector(); dynamoDBTableNamesCollector.setSession(this.getSession()); const tablesData = await utils_1.CollectorUtil.cachedCollect(dynamoDBTableNamesCollector); const tableNames = tablesData.tableNames; for (const region of dynamoDBRegions) { try { const dynamoDB = this.getClient(serviceName, region); tables_details[region] = []; for (const tableName of tableNames[region]) { const tableResponse = await dynamoDB.describeTable({ TableName: tableName }).promise(); if (tableResponse.Table) { tables_details[region].push(tableResponse.Table); } await utils_1.CommonUtil.wait(200); } } catch (err) { aws_1.AWSErrorHandler.handle(err, region); continue; } } return { tables_details }; } } exports.DynamoDBTablesDetailsCollector = DynamoDBTablesDetailsCollector;