This repository has been archived on 2025-12-25. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
qmi-cloud/server/workers/processor-destroy.js
2020-04-30 13:08:00 +02:00

41 lines
1.6 KiB
JavaScript

const tf = require('./docker/tf');
const db = require('../mongo');
const path = require('path');
const sendEmail = require("../send-email.js");
module.exports = async function(job){
var destroyMongo = await db.destroy.update(job.data.id, {
"status": "destroying",
"jobId": job.id,
"logFile": path.join('/logs', 'destroy', `${job.data.id}.log`)
});
var provMongo = await db.provision.getById(job.data.provId);
return tf.destroy(destroyMongo, provMongo)
.then(async function(output) {
let update, update2;
if ( output.indexOf("Error:") !== -1 ) {
update = await db.destroy.update(destroyMongo._id,{"status": "error"});
update2 = await db.provision.update(provMongo._id, {"isDestroyed": false});
} else {
update = await db.destroy.update(destroyMongo._id, {"status": "destroyed"});
let timeRunning = db.utils.getNewTimeRunning(provMongo);
update2 = await db.provision.update(provMongo._id, {"isDestroyed": true, "timeRunning": timeRunning, "pendingNextAction": undefined});
sendEmail.sendDestroyed(update2, job.data._scenario);
}
return { destroy: update, provision: update2 };
}).then(async function(res) {
return Promise.resolve({"success": true, job: res});
}).catch(function(err) {
console.log("Processor Destroy: err", err);
db.destroy.update(destroyMongo._id, {"status": "error", "isDestroyed": false});
return Promise.reject({"success": false, "err": err});
});
}