cloud-report
Version:
Collects and analyzes cloud resources
44 lines (43 loc) • 1.88 kB
JavaScript
;
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;