3 * Copyright 2016 RIFT.IO Inc
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
18 // DescriptorModelMeta API (NSD + VNFD)
21 var ProjectManagement
= {};
22 var Promise
= require('bluebird');
23 var rp
= require('request-promise');
24 var Promise
= require('promise');
25 var constants
= require('../../api_utils/constants');
26 var utils
= require('../../api_utils/utils');
27 var _
= require('lodash');
29 ProjectManagement
.get = function(req
) {
31 var api_server
= req
.query
['api_server'];
33 return new Promise(function(resolve
, reject
) {
36 uri
: utils
.confdPort(api_server
) + '/api/operational/project',
38 headers
: _
.extend({}, constants
.HTTP_HEADERS
.accept
.data
, {
39 'Authorization': req
.session
&& req
.session
.authorization
41 forever
: constants
.FOREVER_ON
,
42 rejectUnauthorized
: false,
43 resolveWithFullResponse
: true
45 ]).then(function(result
) {
47 response
['data'] = {};
49 response
['data']['project'] = JSON
.parse(result
[0].body
)['rw-project:project'];
51 response
.statusCode
= constants
.HTTP_RESPONSE_CODES
.SUCCESS
.OK
54 }).catch(function(error
) {
56 console
.log('Problem with ProjectManagement.get', error
);
57 response
.statusCode
= error
.statusCode
|| 500;
58 response
.errorMessage
= {
59 error
: 'Failed to get ProjectManagement' + error
66 ProjectManagement
.create = function(req
) {
68 var api_server
= req
.query
['api_server'];
73 return new Promise(function(resolve
, reject
) {
76 uri
: utils
.confdPort(api_server
) + '/api/config/project',
78 headers
: _
.extend({}, constants
.HTTP_HEADERS
.accept
.data
, {
79 'Authorization': req
.session
&& req
.session
.authorization
81 forever
: constants
.FOREVER_ON
,
83 rejectUnauthorized
: false,
84 resolveWithFullResponse
: true
86 ]).then(function(result
) {
88 response
['data'] = {};
90 response
['data'] = result
[0].body
;
92 response
.statusCode
= constants
.HTTP_RESPONSE_CODES
.SUCCESS
.OK
95 }).catch(function(error
) {
97 console
.log('Problem with ProjectManagement.create', error
);
98 response
.statusCode
= error
.statusCode
|| 500;
99 response
.errorMessage
= {
100 error
: 'Failed to create user' + error
106 ProjectManagement
.update = function(req
) {
107 //"rw-project:project"
109 var api_server
= req
.query
['api_server'];
110 var bodyData
= req
.body
;
112 "rw-project:project" : {
113 "name": bodyData
.name
,
114 "description": bodyData
.description
,
115 "project-config": bodyData
['project-config']
118 var updateTasks
= [];
120 var updateProject
= rp({
121 uri
: utils
.confdPort(api_server
) + '/api/config/project/',
123 headers
: _
.extend({}, constants
.HTTP_HEADERS
.accept
.data
, {
124 'Authorization': req
.session
&& req
.session
.authorization
126 forever
: constants
.FOREVER_ON
,
128 rejectUnauthorized
: false,
129 resolveWithFullResponse
: true
131 updateTasks
.push(updateProject
)
132 return new Promise(function(resolve
, reject
) {
135 ]).then(function(result
) {
137 response
['data'] = {};
138 if (result
[0].body
) {
139 response
['data'] = result
[0].body
;
141 response
.statusCode
= constants
.HTTP_RESPONSE_CODES
.SUCCESS
.OK
144 }).catch(function(error
) {
146 console
.log('Problem with ProjectManagement.update', error
);
147 response
.statusCode
= error
.statusCode
|| 500;
148 response
.errorMessage
= {
149 error
: 'Failed to passwordChange user' + error
156 ProjectManagement
.delete = function(req
) {
158 var projectname
= req
.params
.projectname
;
159 var api_server
= req
.query
["api_server"];
160 var requestHeaders
= {};
161 var url
= `${utils.confdPort(api_server)}/api/config/project/${projectname}`
162 return new Promise(function(resolve
, reject
) {
163 _
.extend(requestHeaders
,
164 constants
.HTTP_HEADERS
.accept
.data
,
165 constants
.HTTP_HEADERS
.content_type
.data
, {
166 'Authorization': req
.session
&& req
.session
.authorization
171 headers
: requestHeaders
,
172 forever
: constants
.FOREVER_ON
,
173 rejectUnauthorized
: false,
174 }, function(error
, response
, body
) {
175 if (utils
.validateResponse('ProjectManagement.DELETE', error
, response
, body
, resolve
, reject
)) {
177 statusCode
: response
.statusCode
,
178 data
: JSON
.stringify(response
.body
)
186 ProjectManagement
.getPlatform = function(req
, userId
) {
188 var api_server
= req
.query
['api_server'];
189 var user
= req
.params
['userId'] || userId
;
190 return new Promise(function(resolve
, reject
) {
191 var url
= utils
.confdPort(api_server
) + '/api/operational/rbac-platform-config';
193 url
= url
+ '/user/' + user
;
199 headers
: _
.extend({}, constants
.HTTP_HEADERS
.accept
.data
, {
200 'Authorization': req
.session
&& req
.session
.authorization
202 forever
: constants
.FOREVER_ON
,
203 rejectUnauthorized
: false,
204 resolveWithFullResponse
: true
206 ]).then(function(result
) {
208 response
['data'] = {};
209 if (result
[0].body
) {
211 response
['data']['platform'] = JSON
.parse(result
[0].body
)['rw-rbac-platform:user'];
213 response
['data']['platform'] = JSON
.parse(result
[0].body
)['rw-rbac-platform:rbac-platform-config'];
216 response
.statusCode
= constants
.HTTP_RESPONSE_CODES
.SUCCESS
.OK
219 }).catch(function(error
) {
221 console
.log('Problem with ProjectManagement.getPlatform', error
);
222 response
.statusCode
= error
.statusCode
|| 500;
223 response
.errorMessage
= {
224 error
: 'Failed to get ProjectManagement.getPlatform' + error
231 ProjectManagement
.updatePlatform = function(req
) {
233 var api_server
= req
.query
['api_server'];
234 var bodyData
= req
.body
;
236 data
.user
= JSON
.parse(data
.user
)
237 var updateTasks
= [];
239 var updatePlatform
= rp({
240 uri
: utils
.confdPort(api_server
) + '/api/config/rbac-platform-config',
242 headers
: _
.extend({}, constants
.HTTP_HEADERS
.accept
.data
, {
243 'Authorization': req
.session
&& req
.session
.authorization
245 forever
: constants
.FOREVER_ON
,
247 rejectUnauthorized
: false,
248 resolveWithFullResponse
: true
250 updateTasks
.push(updatePlatform
)
251 return new Promise(function(resolve
, reject
) {
254 ]).then(function(result
) {
256 response
['data'] = {};
257 if (result
[0].body
) {
258 response
['data'] = result
[0].body
;
260 response
.statusCode
= constants
.HTTP_RESPONSE_CODES
.SUCCESS
.OK
263 }).catch(function(error
) {
265 console
.log('Problem with ProjectManagement.updatePlatform', error
);
266 response
.statusCode
= error
.statusCode
|| 500;
267 response
.errorMessage
= {
268 error
: 'Failed to passwordChange user' + error
276 module
.exports
= ProjectManagement
;