UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

43 lines (42 loc) 1.64 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 FlowLogsCollector extends base_1.BaseCollector { collect() { return this.getAllFlowLogs(); } async getAllFlowLogs() { const self = this; const serviceName = "EC2"; const ec2Regions = self.getRegions(serviceName); const flow_logs = {}; for (const region of ec2Regions) { try { const ec2 = self.getClient(serviceName, region); flow_logs[region] = []; let fetchPending = true; let marker; while (fetchPending) { const flowLogsResponse = await ec2.describeFlowLogs({ NextToken: marker }).promise(); if (flowLogsResponse && flowLogsResponse.FlowLogs) { flow_logs[region] = flow_logs[region].concat(flowLogsResponse.FlowLogs); marker = flowLogsResponse.NextToken; fetchPending = marker !== undefined; await utils_1.CommonUtil.wait(200); } else { fetchPending = false; } } } catch (error) { aws_1.AWSErrorHandler.handle(error); continue; } } return { flow_logs }; } } exports.FlowLogsCollector = FlowLogsCollector;