deep-package-manager
Version:
DEEP Package Manager
82 lines (67 loc) • 1.66 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.SQSDriver = undefined;
var _AbstractDriver = require('./AbstractDriver');
var _deepCore = require('deep-core');
var _deepCore2 = _interopRequireDefault(_deepCore);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class SQSDriver extends _AbstractDriver.AbstractDriver {
/**
* @param {Object[]} args
*/
constructor(...args) {
super(...args);
this._sqs = this.provisioning.sqs;
}
/**
* @returns {String}
*/
region() {
return this.provisioning.sqs.config.region;
}
/**
* @returns {String}
*/
name() {
return _deepCore2.default.AWS.Service.SIMPLE_QUEUE_SERVICE;
}
/**
* @returns {String[]}
*/
resourcesArns() {
let queueUrls = [];
let sqsQueues = this.provisioning.config[this.name()].queues;
for (let dbolName in sqsQueues) {
if (sqsQueues.hasOwnProperty(dbolName)) {
queueUrls.push(sqsQueues[dbolName]['url']);
}
}
return queueUrls;
}
/**
* @param {Function} cb
*/
tag(cb) {
let queueUrls = this.resourcesArns();
if (queueUrls.length === 0) {
cb();
return;
}
let promises = queueUrls.map(url => {
return this._sqs.tagQueue({
QueueUrl: url,
Tags: this.tags
}).promise();
});
Promise.all(promises).then(res => {
console.debug('SQS resources have been successfully tagged');
cb();
}).catch(err => {
console.warn('Error while tagging QSQ resources: ', err);
cb();
});
}
}
exports.SQSDriver = SQSDriver;
;