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/qmi-cloud-cli/jobs/test.js
Manuel Romero 9ca0d8c374 rename projects
2020-06-05 12:56:06 +02:00

173 lines
4.7 KiB
JavaScript

const db = require('qmi-cloud-common/mongo');
/*var scenarios = ['azqmi-qs-sn', 'azqmi-qdc-qs', 'azqmi-qdc-ss', 'azqmi-qs-qib'];
db.models.Provision.updateMany({"scenario": { $in: scenarios}}, {"isExternalAccess": true}, function(err, res){
if (err) {
console.log("error", err);
process.exit(1);
} else {
console.log("Good", res);
process.exit(0);
}
});*/
/*var promise = db.models.Subscription.create({
subsId: "62ebff8f-c40b-41be-9239-252d6c0c8ad9"
});
promise.then(function (subs) {
console.log("Good", subs);
process.exit(0);
}).catch(function(err){
console.log("error", err);
process.exit(1);
})*/
async function getScenario(){
var res = await db.scenario.get();
console.log("res", res.results);
}
/*db.models.Scenario.updateMany({"name": { $exists: true}}, {"subscription": "5ec23bd0999e8a00193725b8"}, function(err, res){
if (err) {
console.log("error", err);
process.exit(1);
} else {
console.log("Good", res);
process.exit(0);
}
});*/
//getScenario();
async function asyncForEach(array, callback) {
for (let index = 0; index < array.length; index++) {
await callback(array[index], index, array);
}
}
async function getProvisions(filter){
return db.provision.get(filter);
}
/*getProvisions().then(async function(res){
console.log(res.results.length);
await asyncForEach(res.results, async function(prov){
if ( prov.vmType ) {
//console.log("vmType", prov.vmType, prov.vmImage)
prov["vmImage"] = {
"vm1": {
"vmType": prov.vmType,
"diskSizeGb": 128
}
}
prov.vmType = null;
await prov.save();
}
});
process.exit(0);
});*/
/*db.models.Provision.updateMany({"nodeCount": { $exists: true}}, { $unset: { nodeCount: "" } }, function(err, res){
if (err) {
console.log("error", err);
process.exit(1);
} else {
console.log("Good", res);
process.exit(0);
}
});*/
/*db.models.Scenario.updateMany({"nodeCount": { $exists: true}}, { $unset: { nodeCount: "" } }, function(err, res){
if (err) {
console.log("error", err);
process.exit(1);
} else {
console.log("Good", res);
process.exit(0);
}
});*/
/*db.models.Provision.updateMany({}, { "scenarioVersion": "1.0" }, function(err, res){
if (err) {
console.log("error", err);
process.exit(1);
} else {
console.log("Good", res);
process.exit(0);
}
});*/
/*getProvisions({
"isDestroyed": true,
"statusVms": "Stopped"
}).then(async function(res){
console.log(res.results.length);
await asyncForEach(res.results, async function(prov){
//if ( prov.destroy ) {
var runningFrom = new Date(prov.runningFrom).getTime();
var updated;
if ( prov.destroy ) {
updated = new Date(prov.destroy.updated).getTime();
} else {
updated = new Date(prov.updated).getTime();
}
var mins = Math.floor( (updated-runningFrom)/1000/60);
if ( !isNaN(mins) ) {
var newTimeRunning = (prov.timeRunning-mins);
if ( newTimeRunning > 0 ) {
console.log(prov._id, "timeRunning="+prov.timeRunning, " offset="+mins, " timeRunningNew="+newTimeRunning, prov.destroy? "OK" : "BUUUH");
prov.timeRunning = newTimeRunning;
await prov.save();
console.log("saved!");
}
}
//}
});
process.exit(0);
})*/
/*getProvisions({
"isDestroyed": true
}).then(async function(res){
console.log(res.results.length);
var count = 0;
await asyncForEach(res.results, async function(prov){
//if ( prov.destroy ) {
var actualDestroyDate;
if ( prov.destroy ) {
actualDestroyDate = prov.destroy.updated;
prov.actualDestroyDate = actualDestroyDate;
await prov.save();
count = count + 1;
console.log("saved!", count);
}
//}
});
process.exit(0);
})*/
getProvisions({
"isDestroyed": true, "actualDestroyDate": {"$exists":false}, "isDeleted": true
}).then(async function(res){
console.log(res.total, res.count);
var count = 0;
await asyncForEach(res.results, async function(prov){
prov.actualDestroyDate = prov.updated;
await prov.save();
count = count + 1;
console.log("saved!", count);
});
process.exit(0);
})