UNPKG

cloud-report

Version:

Collects and analyzes cloud resources

44 lines (43 loc) 1.88 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 queue_urls_1 = require("./queue_urls"); class QueueAttributesCollector extends base_1.BaseCollector { collect() { return this.getAllQueues(); } async getAllQueues() { const serviceName = "SQS"; const sqsRegions = this.getRegions(serviceName); const queueUrlsCollector = new queue_urls_1.QueueUrlsCollector(); queueUrlsCollector.setSession(this.getSession()); const queue_attributes = {}; try { const queueUrlsData = await utils_1.CollectorUtil.cachedCollect(queueUrlsCollector); const queue_urls = queueUrlsData.queue_urls; for (const region of sqsRegions) { try { const sqs = this.getClient(serviceName, region); queue_attributes[region] = {}; for (const queueUrl of queue_urls[region]) { const getQueueAttributesResult = await sqs.getQueueAttributes({ QueueUrl: queueUrl, AttributeNames: ["All"] }).promise(); if (getQueueAttributesResult.Attributes) { queue_attributes[region][queueUrl] = getQueueAttributesResult.Attributes; } await utils_1.CommonUtil.wait(200); } } catch (error) { aws_1.AWSErrorHandler.handle(error); } } } catch (error) { aws_1.AWSErrorHandler.handle(error); } return { queue_attributes }; } } exports.QueueAttributesCollector = QueueAttributesCollector;