Barrcuda API endpoint
This commit is contained in:
@@ -28,6 +28,7 @@
|
||||
"angular-bootstrap-md": "9.0.0",
|
||||
"animate.css": "^3.7.2",
|
||||
"axios": "^0.21.1",
|
||||
"barracuda-api": "https://gitlab.com/qlik_gear/barracuda-api-node.git#0.0.2",
|
||||
"body-parser": "^1.19.0",
|
||||
"bootstrap": "^4.3.1",
|
||||
"bull-arena": "^2.6.4",
|
||||
|
||||
@@ -39,6 +39,15 @@ const provisionSchema = new mongoose.Schema({
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
barracudaAppId: {
|
||||
type: String
|
||||
},
|
||||
barracudaAppCname: {
|
||||
type: String
|
||||
},
|
||||
barracudaAzureFqdn: {
|
||||
type: String
|
||||
},
|
||||
isDestroyed: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
|
||||
@@ -67,7 +67,13 @@ module.exports = async function(job) {
|
||||
return await db.provision.update(prov._id, {"status": status});
|
||||
} ).then( async function(prov) {
|
||||
return tf.outputs(prov).then( async function(outputs){
|
||||
return await db.provision.update(prov._id, {"outputs": outputs});
|
||||
if ( outputs.barracudaAzureFqdn ) {
|
||||
let fqdn = outputs.barracudaAzureFqdn;
|
||||
delete outputs['barracudaAzureFqdn'];
|
||||
return await db.provision.update(prov._id, {"barracudaAzureFqdn": fqdn, "outputs": outputs});
|
||||
} else {
|
||||
return await db.provision.update(prov._id, {"outputs": outputs});
|
||||
}
|
||||
});
|
||||
} ).then( async function(prov) {
|
||||
// Application Gateway assign policy
|
||||
|
||||
@@ -5,6 +5,7 @@ const config = require('qmi-cloud-common/config');
|
||||
const passport = require('../passport');
|
||||
const fs = require('fs-extra');
|
||||
const azurecli = require('qmi-cloud-common/azurecli');
|
||||
const BarracudaAPI = require('barracuda-api');
|
||||
|
||||
import { queues, TF_APPLY_QUEUE, TF_APPLY_QSEOK_QUEUE, TF_DESTROY_QUEUE, STOP_CONTAINER_QUEUE } from 'qmi-cloud-common/queues';
|
||||
|
||||
@@ -351,6 +352,59 @@ router.delete('/:userId/provisions/:id', passport.ensureAuthenticatedAndIsMe, as
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* @swagger
|
||||
* /users/{userId}/provisions/{id}/barracuda:
|
||||
* post:
|
||||
* description: Barracuda - give a provision external access
|
||||
* summary: Barracuda - give a provision external access
|
||||
* produces:
|
||||
* - application/json
|
||||
* parameters:
|
||||
* - name: userId
|
||||
* in: path
|
||||
* type: string
|
||||
* required: true
|
||||
* - name: id
|
||||
* in: path
|
||||
* type: string
|
||||
* required: true
|
||||
* responses:
|
||||
* 200:
|
||||
* description: Provision
|
||||
* 404:
|
||||
* description: Not found
|
||||
*
|
||||
*/
|
||||
router.post('/:userId/provisions/:id/barracuda', passport.ensureAuthenticatedAndIsMe, async (req, res, next) => {
|
||||
try {
|
||||
|
||||
let provision = await db.provision.getById(req.params.id);
|
||||
if (!provision){
|
||||
return res.status(404).json({"msg": "Not found provision with id "+req.params.id});
|
||||
}
|
||||
|
||||
const client = new BarracudaAPI.QlikSenseNPrintingApp();
|
||||
|
||||
let appName = provision.scenario.toLowerCase();
|
||||
appName = appName.replace(/azqmi/g, 'qmi');
|
||||
appName = `${appName}-${provision._id}`
|
||||
|
||||
console.log("APIUser# Creating Barracuda App: "+ appName);
|
||||
client.create(appName, `${appName}.qmi.qlik-poc.com`, provision.barracudaAzureFqdn, "443").then(function(bApp) {
|
||||
console.log("APIUser# Barracuda App created! ID: "+ bApp.id);
|
||||
let cname = bApp.waas_services && bApp.waas_services.length? bApp.waas_services[0].cname : null;
|
||||
db.provision.update(provision._id, {"barracudaAppId": bApp.id, "barracudaAppCname":cname});
|
||||
});
|
||||
|
||||
return res.json({});
|
||||
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @swagger
|
||||
* /users/{userId}/provisions/{id}/abort:
|
||||
|
||||
@@ -2134,6 +2134,12 @@ balanced-match@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
||||
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
|
||||
|
||||
"barracuda-api@https://gitlab.com/qlik_gear/barracuda-api-node.git#0.0.2":
|
||||
version "0.0.2"
|
||||
resolved "https://gitlab.com/qlik_gear/barracuda-api-node.git#f95e3f3d87eee86d3bc6830e94bca59de1224a6a"
|
||||
dependencies:
|
||||
axios "^0.21.1"
|
||||
|
||||
base64-arraybuffer@0.1.5:
|
||||
version "0.1.5"
|
||||
resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
|
||||
|
||||
Reference in New Issue
Block a user