X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FUI.git;a=blobdiff_plain;f=skyquake%2Fplugins%2Flaunchpad%2Fapi%2Flaunchpad.js;h=d1ba61409915e790b68498b4c3194fa76c643a2e;hp=02c28eb4fa6eb9939f26a6bfcb8b14666d2a7ba8;hb=267d43e391d633c26d45db31125612355665f193;hpb=e29efc315df33d546237e270470916e26df391d6 diff --git a/skyquake/plugins/launchpad/api/launchpad.js b/skyquake/plugins/launchpad/api/launchpad.js index 02c28eb4f..d1ba61409 100644 --- a/skyquake/plugins/launchpad/api/launchpad.js +++ b/skyquake/plugins/launchpad/api/launchpad.js @@ -1,5 +1,5 @@ /* - * + * * Copyright 2016 RIFT.IO Inc * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -48,18 +48,19 @@ APIConfig.NfviMetrics = ['vcpu', 'memory']; RPC.executeNSServicePrimitive = function(req) { var api_server = req.query['api_server']; return new Promise(function(resolve, reject) { + var uri = utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/operations/exec-ns-service-primitive'); var jsonData = { - "input": req.body + "input": utils.addProjectContextToRPCPayload(req, uri, req.body) }; var headers = _.extend({}, constants.HTTP_HEADERS.accept.data, constants.HTTP_HEADERS.content_type.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization } ); request({ - url: utils.confdPort(api_server) + APIVersion + '/api/operations/exec-ns-service-primitive', + url: uri, method: 'POST', headers: headers, forever: constants.FOREVER_ON, @@ -81,18 +82,20 @@ RPC.getNSServicePrimitiveValues = function(req) { // var nsr_id = req.body['nsr_id_ref']; // var nsConfigPrimitiveName = req.body['name']; return new Promise(function(resolve, reject) { + var uri = utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/operations/get-ns-service-primitive-values'); + var jsonData = { - "input": req.body + "input": utils.addProjectContextToRPCPayload(req, uri, req.body) }; var headers = _.extend({}, constants.HTTP_HEADERS.accept.data, constants.HTTP_HEADERS.content_type.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization } ); request({ - uri: utils.confdPort(api_server) + APIVersion + '/api/operations/get-ns-service-primitive-values', + uri: uri, method: 'POST', headers: headers, forever: constants.FOREVER_ON, @@ -133,16 +136,20 @@ RPC.refreshAccountConnectionStatus = function(req) { } } jsonData.input[rpcInfo[Type].label] = Name; + + var uri = utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/operations/' + rpcInfo[Type].rpc); + + jsonData.input = utils.addProjectContextToRPCPayload(req, uri, jsonData.input); + var headers = _.extend({}, constants.HTTP_HEADERS.accept.data, constants.HTTP_HEADERS.content_type.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization } ); return new Promise(function(resolve, reject) { - request({ - uri: utils.confdPort(api_server) + APIVersion + '/api/operations/' + rpcInfo[Type].rpc, + uri: uri, method: 'POST', headers: headers, forever: constants.FOREVER_ON, @@ -168,33 +175,34 @@ var DataCenters = {}; Catalog.get = function(req) { var api_server = req.query['api_server']; var results = {} + var projectPrefix = req.session.projectId ? "project-" : ""; return new Promise(function(resolve, reject) { Promise.all([ rp({ - uri: utils.confdPort(api_server) + APIVersion + '/api/config/nsd-catalog/nsd?deep', + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/config/nsd-catalog/nsd?deep'), method: 'GET', headers: _.extend({}, constants.HTTP_HEADERS.accept.collection, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }), forever: constants.FOREVER_ON, rejectUnauthorized: false, resolveWithFullResponse: true }), rp({ - uri: utils.confdPort(api_server) + APIVersion + '/api/config/vnfd-catalog/vnfd?deep', + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/config/vnfd-catalog/vnfd?deep'), method: 'GET', headers: _.extend({}, constants.HTTP_HEADERS.accept.collection, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }), forever: constants.FOREVER_ON, rejectUnauthorized: false, resolveWithFullResponse: true }), rp({ - uri: utils.confdPort(api_server) + APIVersion + '/api/operational/ns-instance-opdata?deep', + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/operational/ns-instance-opdata?deep'), method: 'GET', headers: _.extend({}, constants.HTTP_HEADERS.accept.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }), forever: constants.FOREVER_ON, rejectUnauthorized: false, @@ -207,7 +215,7 @@ Catalog.get = function(req) { // headers: _.extend({}, // constants.HTTP_HEADERS.accept.collection, // { - // 'Authorization': req.get('Authorization') + // 'Authorization': req.session && req.session.authorization // }), // forever: constants.FOREVER_ON, // rejectUnauthorized: false, @@ -258,12 +266,12 @@ Catalog.get = function(req) { var vnfdCatalog = null; var vnfdDict = {}; if (result[1].body) { - vnfdCatalog = JSON.parse(result[1].body).collection['vnfd:vnfd'].map(function(v, i) { + vnfdCatalog = JSON.parse(result[1].body).collection[projectPrefix + 'vnfd:vnfd'].map(function(v, i) { vnfdDict[v.id] = v['short-name'] || v.name; }) } if (result[0].body) { - response[0].descriptors = JSON.parse(result[0].body).collection['nsd:nsd']; + response[0].descriptors = JSON.parse(result[0].body).collection[projectPrefix + 'nsd:nsd']; if (result[2].body) { var data = JSON.parse(result[2].body); if (data && data["nsr:ns-instance-opdata"] && data["nsr:ns-instance-opdata"]["rw-nsr:nsd-ref-count"]) { @@ -286,10 +294,10 @@ Catalog.get = function(req) { } }; if (result[1].body) { - response[1].descriptors = JSON.parse(result[1].body).collection['vnfd:vnfd']; + response[1].descriptors = JSON.parse(result[1].body).collection[projectPrefix + 'vnfd:vnfd']; }; // if (result[2].body) { - // response[2].descriptors = JSON.parse(result[2].body).collection['pnfd:pnfd']; + // response[2].descriptors = JSON.parse(result[2].body).collection[projectPrefix + 'pnfd:pnfd']; // }; resolve({ statusCode: response.statusCode || 200, @@ -315,10 +323,10 @@ Catalog.delete = function(req) { console.log('Deleting', catalogType, id, 'from', api_server); return new Promise(function(resolve, reject) { request({ - uri: utils.confdPort(api_server) + APIVersion + '/api/config/' + catalogType + '-catalog/' + catalogType + '/' + id, + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/config/' + catalogType + '-catalog/' + catalogType + '/' + id), method: 'DELETE', headers: _.extend({}, constants.HTTP_HEADERS.accept.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }), forever: constants.FOREVER_ON, rejectUnauthorized: false, @@ -334,7 +342,7 @@ Catalog.delete = function(req) { Catalog.getVNFD = function(req) { var api_server = req.query['api_server']; var vnfdID = req.body.data; - var authorization = req.get('Authorization'); + var authorization = req.session && req.session.authorization; var VNFDs = []; if (typeof(vnfdID) == "object" && vnfdID.constructor.name == "Array") { vnfdID.map(function(id) { @@ -363,7 +371,7 @@ Catalog.getVNFD = function(req) { return new Promise(function(resolve, reject) { var url = utils.confdPort(api_server) + APIVersion + '/api/config/vnfd-catalog/vnfd' + (id ? '/' + id : '') + '?deep'; request({ - uri: url, + uri: utils.projectContextUrl(req, url), method: 'GET', headers: _.extend({}, constants.HTTP_HEADERS.accept.data, { 'Authorization': authorization @@ -399,10 +407,10 @@ Catalog.create = function(req) { return new Promise(function(resolve, reject) { var requestHeaders = {}; _.extend(requestHeaders, constants.HTTP_HEADERS.accept.data, constants.HTTP_HEADERS.content_type.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }); request({ - uri: utils.confdPort(api_server) + APIVersion + '/api/config/' + catalogType + '-catalog', + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/config/' + catalogType + '-catalog'), method: 'POST', headers: requestHeaders, forever: constants.FOREVER_ON, @@ -429,10 +437,10 @@ Catalog.update = function(req) { return new Promise(function(resolve, reject) { var requestHeaders = {}; _.extend(requestHeaders, constants.HTTP_HEADERS.accept.data, constants.HTTP_HEADERS.content_type.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }); request({ - uri: utils.confdPort(api_server) + APIVersion + '/api/config/' + catalogType + '-catalog' + '/' + catalogType + '/' + id, + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/config/' + catalogType + '-catalog' + '/' + catalogType + '/' + id), method: 'PUT', headers: requestHeaders, forever: constants.FOREVER_ON, @@ -508,12 +516,13 @@ NSR.get = function(req) { var nsrPromises = []; var api_server = req.query["api_server"]; var id = req.params.id; + var projectPrefix = req.session.projectId ? "project-" : ""; var nsdInfo = new Promise(function(resolve, reject) { request({ - uri: utils.confdPort(api_server) + APIVersion + '/api/config/nsd-catalog/nsd?deep', + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/config/nsd-catalog/nsd?deep'), method: 'GET', headers: _.extend({}, constants.HTTP_HEADERS.accept.collection, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }), forever: constants.FOREVER_ON, rejectUnauthorized: false, @@ -523,7 +532,7 @@ NSR.get = function(req) { var isString = typeof(response.body) == "string"; if (isString && response.body == '') return resolve('empty'); data = isString ? JSON.parse(response.body) : response.body; - var nsdData = data.collection["nsd:nsd"]; + var nsdData = data.collection[projectPrefix + "nsd:nsd"]; if (nsdData.constructor.name == "Object") { nsdData = [nsdData]; } @@ -533,10 +542,10 @@ NSR.get = function(req) { }) var config = new Promise(function(resolve, reject) { request({ - uri: utils.confdPort(api_server) + APIVersion + '/api/operational/ns-instance-config/nsr' + (id ? '/' + id : '') + '?deep', + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/operational/ns-instance-config/nsr' + (id ? '/' + id : '') + '?deep'), method: 'GET', headers: _.extend({}, id ? constants.HTTP_HEADERS.accept.data : constants.HTTP_HEADERS.accept.collection, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }), forever: constants.FOREVER_ON, rejectUnauthorized: false, @@ -557,10 +566,10 @@ NSR.get = function(req) { }); var opData = new Promise(function(resolve, reject) { request({ - uri: utils.confdPort(api_server) + APIVersion + '/api/operational/ns-instance-opdata/nsr' + (id ? '/' + id : '') + '?deep', + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/operational/ns-instance-opdata/nsr' + (id ? '/' + id : '') + '?deep'), method: 'GET', headers: _.extend({}, id ? constants.HTTP_HEADERS.accept.data : constants.HTTP_HEADERS.accept.collection, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }), forever: constants.FOREVER_ON, rejectUnauthorized: false, @@ -809,9 +818,11 @@ NSR.addVnfrDataPromise = function(req, nsrs) { nsr['console-urls'] = nsr['console-urls'] ? nsr['console-urls'] : []; vnfr && vnfr['vdur'] && vnfr['vdur'].map(function(vdur) { - vdur['console-url'] && nsr['console-urls'].push({ + // This console-url is what front-end will hit to generate a real console-url + vdur['console-url'] = 'api/vnfr/' + vnfr.id + '/vdur/' + vdur.id + '/console-url'; + nsr['console-urls'].push({ id: vdur.id, - name: vdur.name, + name: vnfr.name, 'console-url': vdur['console-url'] }); }); @@ -858,10 +869,10 @@ NSR.create = function(req) { return new Promise(function(resolve, reject) { var requestHeaders = {}; _.extend(requestHeaders, constants.HTTP_HEADERS.accept.data, constants.HTTP_HEADERS.content_type.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }); request({ - uri: utils.confdPort(api_server) + APIVersion + '/api/config/ns-instance-config', + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/config/ns-instance-config'), method: 'POST', headers: requestHeaders, forever: constants.FOREVER_ON, @@ -902,10 +913,10 @@ NSR.delete = function(req) { return new Promise(function(resolve, reject) { var requestHeaders = {}; _.extend(requestHeaders, constants.HTTP_HEADERS.accept.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }); request({ - uri: utils.confdPort(api_server) + APIVersion + '/api/config/ns-instance-config/nsr/' + id, + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/config/ns-instance-config/nsr/' + id), method: 'DELETE', headers: requestHeaders, forever: constants.FOREVER_ON, @@ -998,10 +1009,10 @@ NSR.setStatus = function(req) { } var requestHeaders = {}; _.extend(requestHeaders, constants.HTTP_HEADERS.accept.data, constants.HTTP_HEADERS.content_type.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }); request({ - uri: utils.confdPort(api_server) + APIVersion + '/api/config/ns-instance-config/nsr/' + id + '/admin-status/', + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/config/ns-instance-config/nsr/' + id + '/admin-status/'), method: 'PUT', headers: requestHeaders, json: { @@ -1051,12 +1062,12 @@ NSR.createScalingGroupInstance = function(req) { constants.HTTP_HEADERS.accept.data, constants.HTTP_HEADERS.content_type.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization } ); request({ - uri: utils.confdPort(api_server) + APIVersion + '/api/config/ns-instance-config/nsr/' + id + '/scaling-group/' + scaling_group_id + '/instance', + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/config/ns-instance-config/nsr/' + id + '/scaling-group/' + scaling_group_id + '/instance'), method: 'POST', headers: requestHeaders, json: jsonData, @@ -1100,12 +1111,12 @@ NSR.deleteScalingGroupInstance = function(req) { constants.HTTP_HEADERS.accept.data, constants.HTTP_HEADERS.content_type.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization } ); request({ - uri: utils.confdPort(api_server) + APIVersion + '/api/config/ns-instance-config/nsr/' + id + '/scaling-group/' + scaling_group_id + '/instance/' + scaling_instance_id, + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/config/ns-instance-config/nsr/' + id + '/scaling-group/' + scaling_group_id + '/instance/' + scaling_instance_id), method: 'DELETE', headers: requestHeaders, forever: constants.FOREVER_ON, @@ -1144,12 +1155,12 @@ NSR.nsd.vld.get = function(req) { _.extend(requestHeaders, vld_id ? constants.HTTP_HEADERS.accept.data : constants.HTTP_HEADERS.accept.collection, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization } ); request({ - uri: utils.confdPort(api_server) + APIVersion + '/api/config/ns-instance-config/nsr/' + nsr_id + '/nsd/vld' + (vld_id ? '/' + vld_id : '') +'?deep', + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/config/ns-instance-config/nsr/' + nsr_id + '/nsd/vld' + (vld_id ? '/' + vld_id : '') +'?deep'), method: 'GET', headers: requestHeaders, forever: constants.FOREVER_ON, @@ -1189,10 +1200,10 @@ NSR.nsd.vld.create = function(req) { return new Promise(function(resolve, reject) { var requestHeaders = {}; _.extend(requestHeaders, constants.HTTP_HEADERS.accept.data, constants.HTTP_HEADERS.content_type.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }); request({ - uri: utils.confdPort(api_server) + '/api/config/ns-instance-config/nsr/' + nsr_id + '/nsd/vld' + (vld_id ? '/' + vld_id : ''), + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + '/api/config/ns-instance-config/nsr/' + nsr_id + '/nsd/vld' + (vld_id ? '/' + vld_id : '')), method: vld_id ? 'PUT' : 'POST', headers: requestHeaders, forever: constants.FOREVER_ON, @@ -1231,12 +1242,12 @@ NSR.nsd.vld.delete = function(req) { _.extend(requestHeaders, constants.HTTP_HEADERS.accept.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization } ); request({ - uri: utils.confdPort(api_server) + APIVersion + '/api/config/ns-instance-config/nsr/' + nsr_id + '/nsd/vld/' + vld_id, + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/config/ns-instance-config/nsr/' + nsr_id + '/nsd/vld/' + vld_id), method: 'DELETE', headers: requestHeaders, forever: constants.FOREVER_ON, @@ -1258,11 +1269,11 @@ VNFR.get = function(req) { var uri = utils.confdPort(api_server); uri += APIVersion + '/api/operational/vnfr-catalog/vnfr' + (id ? '/' + id : '') + '?deep'; var headers = _.extend({}, id ? constants.HTTP_HEADERS.accept.data : constants.HTTP_HEADERS.accept.collection, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }); return new Promise(function(resolve, reject) { request({ - url: uri, + url: utils.projectContextUrl(req, uri), method: 'GET', headers: headers, forever: constants.FOREVER_ON, @@ -1270,12 +1281,16 @@ VNFR.get = function(req) { }, function(error, response, body) { if (utils.validateResponse('VNFR.get', error, response, body, resolve, reject)) { var data = JSON.parse(response.body); - var returnData = id ? [data["vnfr:vnfr"]] : data.collection["vnfr:vnfr"]; + var returnData = id ? (data["vnfr:vnfr"] ? [data["vnfr:vnfr"]] : []) : data.collection["vnfr:vnfr"]; returnData.forEach(function(vnfr) { - vnfr['nfvi-metrics'] = buildNfviGraphs(vnfr.vdur); - vnfr['epa-params'] = epa_aggregator(vnfr.vdur); + vnfr['nfvi-metrics'] = vnfr.vdur ? buildNfviGraphs(vnfr.vdur) : []; + vnfr['epa-params'] = vnfr.vdur ? epa_aggregator(vnfr.vdur) : []; vnfr['service-primitives-present'] = (vnfr['vnf-configuration'] && vnfr['vnf-configuration']['service-primitive'] && vnfr['vnf-configuration']['service-primitive'].length > 0) ? true : false; - }) + vnfr['vdur'] && vnfr['vdur'].map(function(vdur, vdurIndex) { + // This console-url is what front-end will hit to generate a real console-url + vdur['console-url'] = 'api/vnfr/' + vnfr.id + '/vdur/' + vdur.id + '/console-url'; + }); + }); return resolve(returnData); }; }); @@ -1329,7 +1344,7 @@ VNFR.getByNSR = function(req) { delete reqClone.params.id; uri += APIVersion + '/api/operational/ns-instance-opdata/nsr/' + id + '?deep'; var headers = _.extend({}, id ? constants.HTTP_HEADERS.accept.data : constants.HTTP_HEADERS.accept.collection, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }); return new Promise(function(resolve, reject) { if (VNFR.cachedNSR[id]) { @@ -1340,7 +1355,7 @@ VNFR.getByNSR = function(req) { }); } else { request({ - url: uri, + url: utils.projectContextUrl(req, uri), method: 'GET', headers: headers, forever: constants.FOREVER_ON, @@ -1376,11 +1391,11 @@ VLR.get = function(req) { var uri = utils.confdPort(api_server); uri += APIVersion + '/api/operational/vlr-catalog/vlr' + (id ? '/' + id : '') + '?deep'; var headers = _.extend({}, id ? constants.HTTP_HEADERS.accept.data : constants.HTTP_HEADERS.accept.collection, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }); return new Promise(function(resolve, reject) { request({ - url: uri, + url: utils.projectContextUrl(req, uri), method: 'GET', headers: headers, forever: constants.FOREVER_ON, @@ -1404,10 +1419,10 @@ RIFT.api = function(req) { var url = req.path; return new Promise(function(resolve, reject) { request({ - url: uri + url + '?deep', + url: utils.projectContextUrl(req, uri + url + '?deep'), method: 'GET', headers: _.extend({}, constants.HTTP_HEADERS.accept.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }), forever: constants.FOREVER_ON, rejectUnauthorized: false, @@ -1432,11 +1447,11 @@ ComputeTopology.get = function(req) { return new Promise(function(resolve, reject) { var nsrPromise = new Promise(function(success, failure) { request({ - uri: utils.confdPort(api_server) + APIVersion + '/api/operational/ns-instance-opdata/nsr/' + nsr_id + '?deep', + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/operational/ns-instance-opdata/nsr/' + nsr_id + '?deep'), method: 'GET', headers: _.extend({}, constants.HTTP_HEADERS.accept.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }), forever: constants.FOREVER_ON, rejectUnauthorized: false, @@ -1481,10 +1496,10 @@ ComputeTopology.get = function(req) { vnfrPromises.push( new Promise(function(success, failure) { rp({ - uri: utils.confdPort(api_server) + APIVersion + '/api/operational/vnfr-catalog/vnfr/' + vnfrId + '?deep', + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/operational/vnfr-catalog/vnfr/' + vnfrId + '?deep'), method: 'GET', headers: _.extend({}, constants.HTTP_HEADERS.accept.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }), forever: constants.FOREVER_ON, rejectUnauthorized: false, @@ -1575,11 +1590,11 @@ NetworkTopology.get = function(req) { var uri = utils.confdPort(api_server); uri += APIVersion + '/api/operational/network?deep'; var headers = _.extend({}, constants.HTTP_HEADERS.accept.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }); return new Promise(function(resolve, reject) { request({ - url: uri, + url: utils.projectContextUrl(req, uri), method: 'GET', headers: headers, forever: constants.FOREVER_ON, @@ -1606,11 +1621,11 @@ VDUR.get = function(req) { var uri = utils.confdPort(api_server); uri += APIVersion + '/api/operational/vnfr-catalog/vnfr/' + vnfrID + '/vdur/' + vdurID + '?deep'; var headers = _.extend({}, constants.HTTP_HEADERS.accept.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }); return new Promise(function(resolve, reject) { request({ - url: uri, + url: utils.projectContextUrl(req, uri), method: 'GET', headers: headers, forever: constants.FOREVER_ON, @@ -1625,16 +1640,46 @@ VDUR.get = function(req) { }) } +VDUR.consoleUrl = {}; +VDUR.consoleUrl.get = function(req) { + var api_server = req.query["api_server"]; + var vnfrID = req.params.vnfr_id; + var vdurID = req.params.vdur_id; + var uri = utils.confdPort(api_server); + uri += APIVersion + '/api/operational/vnfr-console/vnfr/' + vnfrID + '/vdur/' + vdurID + '/console-url' + '?deep'; + var headers = _.extend({}, constants.HTTP_HEADERS.accept.data, { + 'Authorization': req.session && req.session.authorization + }); + return new Promise(function(resolve, reject) { + request({ + url: utils.projectContextUrl(req, uri), + method: 'GET', + headers: headers, + forever: constants.FOREVER_ON, + rejectUnauthorized: false, + }, function(error, response, body) { + if (utils.validateResponse('VDUR.consoleUrl.get', error, response, body, resolve, reject)) { + var data = JSON.parse(response.body); + var returnData = data; + return resolve({ + data: returnData, + statusCode: response.statusCode + }); + }; + }); + }) +} + CloudAccount.get = function(req) { var api_server = req.query["api_server"]; var uri = utils.confdPort(api_server); - uri += APIVersion + '/api/config/cloud/account?deep'; + uri += APIVersion + '/api/operational/cloud/account?deep'; var headers = _.extend({}, constants.HTTP_HEADERS.accept.collection, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }); return new Promise(function(resolve, reject) { request({ - url: uri, + url: utils.projectContextUrl(req, uri), method: 'GET', headers: headers, forever: constants.FOREVER_ON, @@ -1667,11 +1712,11 @@ ConfigAgentAccount.get = function(req) { var requestHeaders = {}; _.extend(requestHeaders, constants.HTTP_HEADERS.accept.collection, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }); request({ - url: utils.confdPort(api_server) + APIVersion + '/api/operational/config-agent/account', + url: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/operational/config-agent/account'), type: 'GET', headers: requestHeaders, forever: constants.FOREVER_ON, @@ -1707,11 +1752,11 @@ ConfigAgentAccount.get = function(req) { var requestHeaders = {}; _.extend(requestHeaders, constants.HTTP_HEADERS.accept.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }); request({ - url: utils.confdPort(api_server) + APIVersion + '/api/operational/config-agent/account/' + id, + url: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/operational/config-agent/account/' + id), type: 'GET', headers: requestHeaders, forever: constants.FOREVER_ON, @@ -1760,11 +1805,11 @@ ConfigAgentAccount.create = function(req) { _.extend(requestHeaders, constants.HTTP_HEADERS.accept.data, constants.HTTP_HEADERS.content_type.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }); request({ - url: utils.confdPort(api_server) + APIVersion + '/api/config/config-agent', + url: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/config/config-agent'), method: 'POST', headers: requestHeaders, forever: constants.FOREVER_ON, @@ -1799,11 +1844,11 @@ ConfigAgentAccount.update = function(req) { _.extend(requestHeaders, constants.HTTP_HEADERS.accept.data, constants.HTTP_HEADERS.content_type.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }); request({ - url: utils.confdPort(api_server) + APIVersion + '/api/config/config-agent/account/' + id, + url: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/config/config-agent/account/' + id), method: 'PUT', headers: requestHeaders, forever: constants.FOREVER_ON, @@ -1841,10 +1886,10 @@ ConfigAgentAccount.delete = function(req) { var requestHeaders = {}; _.extend(requestHeaders, constants.HTTP_HEADERS.accept.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }); request({ - url: utils.confdPort(api_server) + APIVersion + '/api/config/config-agent/account/' + id, + url: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/config/config-agent/account/' + id), method: 'DELETE', headers: requestHeaders, forever: constants.FOREVER_ON, @@ -1867,10 +1912,10 @@ DataCenters.get = function(req) { var requestHeaders = {}; _.extend(requestHeaders, constants.HTTP_HEADERS.accept.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }); request({ - url: utils.confdPort(api_server) + APIVersion + '/api/operational/datacenters/cloud-accounts?deep', + url: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/operational/datacenters?deep'), method: 'GET', headers: requestHeaders, forever: constants.FOREVER_ON, @@ -1879,7 +1924,7 @@ DataCenters.get = function(req) { if (utils.validateResponse('DataCenters.get', error, response, body, resolve, reject)) { var returnData = {}; try { - data = JSON.parse(response.body)['rw-launchpad:cloud-accounts']; + data = JSON.parse(response.body)["rw-launchpad:datacenters"]["ro-accounts"]; data.map(function(c) { returnData[c.name] = c.datacenters; }) @@ -1908,10 +1953,10 @@ SSHkey.get = function(req) { var requestHeaders = {}; _.extend(requestHeaders, constants.HTTP_HEADERS.accept.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }); request({ - url: utils.confdPort(api_server) + APIVersion + '/api/config/key-pair?deep', + url: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/config/key-pair?deep'), method: 'GET', headers: requestHeaders, forever: constants.FOREVER_ON, @@ -1945,10 +1990,10 @@ SSHkey.delete = function(req) { console.log('Deleting ssk-key', id); return new Promise(function(resolve, reject) { request({ - uri: utils.confdPort(api_server) + APIVersion + '/api/config/key-pair/' + id, + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/config/key-pair/' + id), method: 'DELETE', headers: _.extend({}, constants.HTTP_HEADERS.accept.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }), forever: constants.FOREVER_ON, rejectUnauthorized: false, @@ -1966,10 +2011,10 @@ SSHkey.post = function(req) { var data = req.body; return new Promise(function(resolve, reject) { request({ - uri: utils.confdPort(api_server) + APIVersion + '/api/config/key-pair/', + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/config/key-pair/'), method: 'POST', headers: _.extend({}, constants.HTTP_HEADERS.accept.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }), json: data, forever: constants.FOREVER_ON, @@ -1989,10 +2034,10 @@ SSHkey.put = function(req) { var data = req.body; return new Promise(function(resolve, reject) { request({ - uri: utils.confdPort(api_server) + APIVersion + '/api/config/key-pair/', + uri: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/config/key-pair/'), method: 'PUT', headers: _.extend({}, constants.HTTP_HEADERS.accept.data, { - 'Authorization': req.get('Authorization') + 'Authorization': req.session && req.session.authorization }), json: data, forever: constants.FOREVER_ON, @@ -2015,6 +2060,7 @@ module.exports.catalog = Catalog; module.exports.nsr = NSR; module.exports.vnfr = VNFR; module.exports.vlr = VLR; +module.exports.vdur = VDUR; module.exports.rift = RIFT; module.exports.computeTopology = ComputeTopology; module.exports.networkTopology = NetworkTopology;