var NetworkTopology = {};
var VDUR = {};
var CloudAccount = {};
+var ResourceOrchestratorAccount = {};
var ConfigAgentAccount = {};
var RPC = {};
var SSHkey = {};
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,
// 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,
}
}
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,
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,
// headers: _.extend({},
// constants.HTTP_HEADERS.accept.collection,
// {
- // 'Authorization': req.get('Authorization')
+ // 'Authorization': req.session && req.session.authorization
// }),
// forever: constants.FOREVER_ON,
// rejectUnauthorized: false,
var vnfdCatalog = null;
var vnfdDict = {};
if (result[1].body) {
- vnfdCatalog = JSON.parse(result[1].body).collection['vnfd:vnfd'].map(function(v, i) {
+ response[1].descriptors = utils.dataToJsonSansPropNameNamespace(result[1].body).collection['vnfd'];
+ vnfdCatalog = response[1].descriptors.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 = utils.dataToJsonSansPropNameNamespace(result[0].body).collection['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"]) {
- var nsdRefCountCollection = data["nsr:ns-instance-opdata"]["rw-nsr:nsd-ref-count"];
+ if (data && data["ns-instance-opdata"]) {
response[0].descriptors.map(function(nsd) {
if (!nsd["meta"]) {
nsd["meta"] = {};
if (typeof nsd['meta'] == 'string') {
nsd['meta'] = JSON.parse(nsd['meta']);
}
- nsd["meta"]["instance-ref-count"] = _.findWhere(nsdRefCountCollection, {
- "nsd-id-ref": nsd.id
- })["instance-ref-count"];
nsd["constituent-vnfd"] && nsd["constituent-vnfd"].map(function(v) {
v.name = vnfdDict[v["vnfd-id-ref"]];
})
}
}
};
- if (result[1].body) {
- response[1].descriptors = JSON.parse(result[1].body).collection['vnfd:vnfd'];
- };
- // if (result[2].body) {
- // response[2].descriptors = JSON.parse(result[2].body).collection['pnfd:pnfd'];
- // };
resolve({
statusCode: response.statusCode || 200,
data: JSON.stringify(response)
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 + '/' + encodeURIComponent(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,
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) {
function requestVNFD(id) {
return new Promise(function(resolve, reject) {
- var url = utils.confdPort(api_server) + APIVersion + '/api/config/vnfd-catalog/vnfd' + (id ? '/' + id : '') + '?deep';
+ var url = utils.confdPort(api_server) + APIVersion + '/api/config/vnfd-catalog/vnfd' + (id ? '/' + encodeURIComponent(id) : '') + '?deep';
request({
- uri: url,
+ uri: utils.projectContextUrl(req, url),
method: 'GET',
headers: _.extend({}, constants.HTTP_HEADERS.accept.data, {
'Authorization': authorization
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,
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 + '/' + encodeURIComponent(id)),
method: 'PUT',
headers: requestHeaders,
forever: constants.FOREVER_ON,
var nsrPromises = [];
var api_server = req.query["api_server"];
var id = req.params.id;
- var nsdInfo = new Promise(function(resolve, reject) {
+ var projectPrefix = req.session.projectId ? "project-" : "";
+ var vnfdInfo = 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/vnfd-catalog/vnfd'),
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,
}, function(error, response, body) {
- if (utils.validateResponse('NSR.get nsd-catalog', error, response, body, resolve, reject)) {
+ if (utils.validateResponse('NSR.get vnfd-catalog', error, response, body, resolve, reject)) {
var data;
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"];
- if (nsdData.constructor.name == "Object") {
- nsdData = [nsdData];
+ var vnfdData = data.collection[projectPrefix + "vnfd:vnfd"];
+ if (vnfdData.constructor.name == "Object") {
+ vnfdData = [vnfdData];
}
- resolve(nsdData);
+ var vnfdDict = {};
+ vnfdData.map(function(v, i) {
+ vnfdDict[v.id] = v;
+ })
+ resolve(vnfdDict);
};
- })
+ })//
})
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 ? '/' + encodeURIComponent(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,
});
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 ? '/' + encodeURIComponent(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,
});
return new Promise(function(resolve, reject) {
//Need smarter error handling here
- Promise.all([config, opData]).then(function(resolves) {
+ Promise.all([config, opData, vnfdInfo]).then(function(resolves) {
var aggregate = {};
// resolves[0] ==> ns-instance-config
// resolves[1] ==> ns-instance-opdata
var nsInstanceConfig = resolves[0] && resolves[0];
var nsInstanceOpdata = resolves[1] && resolves[1];
+ var vnfdCatalog = resolves[2];
if (!nsInstanceConfig && !nsInstanceOpdata) {
return resolve({
'member-vnf-index-ref': vnfd['member-vnf-index-ref']
});
if (vnfrObj) {
+ var vnfdId = _.findWhere(v.nsd['constituent-vnfd'], {'member-vnf-index': vnfrObj['member-vnf-index-ref']})['vnfd-id-ref'];
vnfd['short-name'] = vnfrObj['short-name'];
+ vnfd['vnfd'] = {id: vnfrObj.id, logo: vnfdCatalog[vnfdId]['logo']}
}
})
})
}
});
});
- })
+ });
+
+ v['vnfrs'] && v['vnfrs'].map(function(vnfrObj){
+ var vnfdId = _.findWhere(v.nsd['constituent-vnfd'], {'member-vnf-index': vnfrObj['member-vnf-index-ref']})['vnfd-id-ref'];
+ vnfrObj.vnfd = vnfdCatalog[vnfdId];
+ });
});
var nsrsData = nsInstanceConfig;
nsrsData.sort(function(a, b) {
function decorateNSRWithVLR(nsr, nsrVLRObject, vlr) {
var vlrObject = _.extend(nsrVLRObject, vlr);
vlrObject['vnfr-connection-point-ref'] && vlrObject['vnfr-connection-point-ref'].map(function(vnfrCP) {
- var vnfrName = nsr['vnfrs'] && _.find(nsr['vnfrs'], {id: vnfrCP['vnfr-id']})['name'];
+ var vnfrName = nsr['vnfrs'] && nsr['vnfrs'].length && _.findWhere(nsr['vnfrs'], {id: vnfrCP['vnfr-id']})['name'];
vnfrName && (vnfrCP['vnfr-name'] = vnfrName);
});
nsr['decorated-vlrs'].splice(_.sortedIndex(nsr['decorated-vlrs'], vlrObject, 'name'), 0, vlrObject);
try {
if (nsr["monitoring-param"]) {
nsr["monitoring-param"].map(function(m) {
- var vnfr = vnfrs[m["vnfr-id"]] || {};
+ // var vnfr = vnfrs[m["vnfr-id"]] || {};
+ // m["vnfr-name"] = vnfr['name'] ? vnfr['name'] : (vnfr['short-name'] ? vnfr['short-name'] : 'VNFR');
+ var groupTag = m['group-tag'];
+ var vnfrId = m['vnfr-mon-param-ref'] && m['vnfr-mon-param-ref'][0] && m['vnfr-mon-param-ref'][0]['vnfr-id-ref'];
+ var vnfr = vnfrs[vnfrId] || {};
m["vnfr-name"] = vnfr['name'] ? vnfr['name'] : (vnfr['short-name'] ? vnfr['short-name'] : 'VNFR');
+ m['group-tag'] = (groupTag ? (groupTag + ' - ') : '') + m['vnfr-name'] + (vnfrId ? ' (' + vnfrId.substring(1,8) + '...)' : '');
+
});
}
} catch (e) {
vnfr && vnfr['vdur'] && vnfr['vdur'].map(function(vdur) {
// 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';
+ vdur['console-url'] = 'api/vnfr/' + encodeURIComponent(vnfr.id) + '/vdur/' + encodeURIComponent(vdur.id) + '/console-url';
nsr['console-urls'].push({
id: vdur.id,
name: vnfr.name,
"nsr-id": nsr['ns-instance-config-ref'],
"name": vnfr['name'],
"vdur": vnfr["vdur"],
- "cloud-account": vnfr["cloud-account"]
+ "datacenter": vnfr["datacenter"]
};
var vnfrSg = nsr['vnfr-scaling-groups'];
var vnfrName = vnfr["name"];
}
}
var vnfrNfviMetrics = buildNfviGraphs(vnfr.vdur, vnfrName);
- if (vnfr['vnf-configuration'] && vnfr['vnf-configuration']['service-primitive'] && vnfr['vnf-configuration']['service-primitive'].length > 0) {
+ if (vnfr['vnf-configuration'] && vnfr['vnf-configuration']['config-primitive'] && vnfr['vnf-configuration']['config-primitive'].length > 0) {
vnfrObj['service-primitives-present'] = true;
} else {
vnfrObj['service-primitives-present'] = false;
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,
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/' + encodeURIComponent(id)),
method: 'DELETE',
headers: requestHeaders,
forever: constants.FOREVER_ON,
}
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/' + encodeURIComponent(id) + '/admin-status/'),
method: 'PUT',
headers: requestHeaders,
json: {
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/' + encodeURIComponent(id) + '/scaling-group/' + encodeURIComponent(scaling_group_id) + '/instance'),
method: 'POST',
headers: requestHeaders,
json: jsonData,
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/' + encodeURIComponent(id) + '/scaling-group/' + encodeURIComponent(scaling_group_id) + '/instance/' + encodeURIComponent(scaling_instance_id)),
method: 'DELETE',
headers: requestHeaders,
forever: constants.FOREVER_ON,
_.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/' + encodeURIComponent(nsr_id) + '/nsd/vld' + (vld_id ? '/' + encodeURIComponent(vld_id) : '') +'?deep'),
method: 'GET',
headers: requestHeaders,
forever: constants.FOREVER_ON,
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/' + encodeURIComponent(nsr_id) + '/nsd/vld' + (vld_id ? '/' + encodeURIComponent(vld_id) : '')),
method: vld_id ? 'PUT' : 'POST',
headers: requestHeaders,
forever: constants.FOREVER_ON,
_.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/' + encodeURIComponent(nsr_id) + '/nsd/vld/' + encodeURIComponent(vld_id)),
method: 'DELETE',
headers: requestHeaders,
forever: constants.FOREVER_ON,
var api_server = req.query["api_server"];
var id = req.params.id;
var uri = utils.confdPort(api_server);
- uri += APIVersion + '/api/operational/vnfr-catalog/vnfr' + (id ? '/' + id : '') + '?deep';
+ uri += APIVersion + '/api/operational/vnfr-catalog/vnfr' + (id ? '/' + encodeURIComponent(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,
}, 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['service-primitives-present'] = (vnfr['vnf-configuration'] && vnfr['vnf-configuration']['service-primitive'] && vnfr['vnf-configuration']['service-primitive'].length > 0) ? true : false;
+ 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']['config-primitive'] && vnfr['vnf-configuration']['config-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';
+ vdur['console-url'] = 'api/vnfr/' + encodeURIComponent(vnfr.id) + '/vdur/' + encodeURIComponent(vdur.id) + '/console-url';
});
});
return resolve(returnData);
var uri = utils.confdPort(api_server);
var reqClone = _.clone(req);
delete reqClone.params.id;
- uri += APIVersion + '/api/operational/ns-instance-opdata/nsr/' + id + '?deep';
+ uri += APIVersion + '/api/operational/ns-instance-opdata/nsr/' + encodeURIComponent(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]) {
});
} else {
request({
- url: uri,
+ url: utils.projectContextUrl(req, uri),
method: 'GET',
headers: headers,
forever: constants.FOREVER_ON,
var api_server = req.query["api_server"];
var id = req.params.id;
var uri = utils.confdPort(api_server);
- uri += APIVersion + '/api/operational/vlr-catalog/vlr' + (id ? '/' + id : '') + '?deep';
+ uri += APIVersion + '/api/operational/vlr-catalog/vlr' + (id ? '/' + encodeURIComponent(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,
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,
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/' + encodeURIComponent(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,
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/' + encodeURIComponent(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,
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,
var vnfrID = req.params.vnfr_id;
var vdurID = req.params.vdur_id;
var uri = utils.confdPort(api_server);
- uri += APIVersion + '/api/operational/vnfr-catalog/vnfr/' + vnfrID + '/vdur/' + vdurID + '?deep';
+ uri += APIVersion + '/api/operational/vnfr-catalog/vnfr/' + encodeURIComponent(vnfrID) + '/vdur/' + encodeURIComponent(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,
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';
+ uri += APIVersion + '/api/operational/vnfr-console/vnfr/' + encodeURIComponent(vnfrID) + '/vdur/' + encodeURIComponent(vdurID) + '/console-url' + '?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,
var uri = utils.confdPort(api_server);
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,
});
});
}
+ResourceOrchestratorAccount.get = function(req) {
+var self = this;
+ var api_server = req.query["api_server"];
+ var accountID = req.params.id || req.params.name;
+
+ return new Promise(function(resolve, reject) {
+ var requestHeaders = {};
+ _.extend(requestHeaders,
+ constants.HTTP_HEADERS.accept.collection, {
+ 'Authorization': req.session && req.session.authorization
+ }
+ );
+ var urlOp = utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/operational/ro-account/account');
+ var urlConfig = utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/operational/ro-account-state/account');
+ if(accountID) {
+ urlOp = url + '/' + encodeURIComponent(accountID);
+ urlConfig = url + '/' + encodeURIComponent(accountID);
+ }
+ var allRequests = [];
+ var roOpData = new Promise(function(resolve, reject) {
+ request({
+ url: urlOp,
+ type: 'GET',
+ headers: requestHeaders,
+ forever: constants.FOREVER_ON,
+ rejectUnauthorized: false
+ },
+ function(error, response, body) {
+ var data;
+ if (utils.validateResponse('RoAccount.get', error, response, body, resolve, reject)) {
+ try {
+ data = JSON.parse(response.body).collection['rw-ro-account:account']
+ } catch (e) {
+ console.log('Problem with "RoAccount.get"', e);
+ var err = {};
+ err.statusCode = 500;
+ err.errorMessage = {
+ error: 'Problem with "RoAccount.get": ' + e // + e.toString()
+ }
+ return reject(err);
+ }
+ return resolve({
+ statusCode: response.statusCode,
+ data: data
+ });
+ };
+ }
+ );
+ });
+ var roConfigData = new Promise(function(resolve, reject){
+ request({
+ url: urlConfig,
+ type: 'GET',
+ headers: requestHeaders,
+ forever: constants.FOREVER_ON,
+ rejectUnauthorized: false
+ },
+ function(error, response, body) {
+ var data;
+ if (utils.validateResponse('RoAccount.get', error, response, body, resolve, reject)) {
+ try {
+ data = JSON.parse(response.body).collection['rw-ro-account:account']
+ } catch (e) {
+ console.log('Problem with "RoAccount.get"', e);
+ var err = {};
+ err.statusCode = 500;
+ err.errorMessage = {
+ error: 'Problem with "RoAccount.get": ' + e // + e.toString()
+ }
+ return reject(err);
+ }
+ return resolve({
+ statusCode: response.statusCode,
+ data: data
+ });
+ };
+ }
+ );
+ });
+
+ allRequests.push(roOpData);
+ allRequests.push(roConfigData);
+ Promise.all(allRequests).then(function(data) {
+ var state = data[1].data;
+ var op = data[0].data;
+ var result = [];
+ var dict = {"rift":{}};
+ if (!accountID) {
+ state.length && state.map(function(s){
+ dict[s.name] = s;
+ });
+ op.length && op.map(function(o) {
+ dict[o.name] = _.extend(dict[o.name], o);
+ });
+ Object.keys(dict).map(function(d) {
+ result.push(dict[d]);
+ })
+ } else {
+ result = _.extend(op, state);
+ }
+ resolve({
+ statusCode: 200,
+ data: result
+ })
+ })
+
+ })
+}
// Config-Agent Account APIs
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,
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/' + encodeURIComponent(id)),
type: 'GET',
headers: requestHeaders,
forever: constants.FOREVER_ON,
_.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,
_.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/' + encodeURIComponent(id)),
method: 'PUT',
headers: requestHeaders,
forever: constants.FOREVER_ON,
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/' + encodeURIComponent(id)),
method: 'DELETE',
headers: requestHeaders,
forever: constants.FOREVER_ON,
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?deep',
+ url: utils.projectContextUrl(req, utils.confdPort(api_server) + APIVersion + '/api/operational/datacenters?deep'),
method: 'GET',
headers: requestHeaders,
forever: constants.FOREVER_ON,
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,
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/' + encodeURIComponent(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,
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,
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,
module.exports.networkTopology = NetworkTopology;
module.exports.config = Config;
module.exports.cloud_account = CloudAccount;
+module.exports.ResourceOrchestratorAccount = ResourceOrchestratorAccount;
module.exports['config-agent-account'] = ConfigAgentAccount;
module.exports.rpc = RPC;
module.exports.data_centers = DataCenters;