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.
19 var app
= require('express').Router();
20 var cors
= require('cors');
21 var utils
= require('../../framework/core/api_utils/utils.js');
22 var launchpadAPI
= require('./api/launchpad.js');
24 app
.get('/api/nsr', cors(), function(req
, res
) {
25 launchpadAPI
['nsr'].get(req
).then(function(data
) {
28 res
.status(error
.statusCode
);
29 res
.send(error
.errorMessage
);
32 app
.get('/api/nsr/:id', cors(), function(req
, res
) {
33 launchpadAPI
['nsr'].get(req
).then(function(data
) {
36 res
.status(error
.statusCode
);
37 res
.send(error
.errorMessage
);
40 app
.delete('/api/nsr/:id', cors(), function(req
, res
) {
41 launchpadAPI
['nsr'].delete(req
).then(function(response
) {
42 utils
.sendSuccessResponse(response
, res
);
44 sendErrorResponse(error
, res
);
47 app
.post('/api/nsr', cors(), function(req
, res
) {
48 launchpadAPI
['nsr'].create(req
).then(function(data
) {
52 res
.status(error
.statusCode
);
53 res
.send(error
.errorMessage
);
56 app
.get('/api/nsr/:nsr_id/vnfr', cors(), function(req
, res
) {
57 launchpadAPI
['vnfr'].get(req
).then(function(data
) {
60 res
.status(error
.statusCode
);
61 res
.send(error
.errorMessage
);
62 }).catch(function(error
) {
66 app
.get('/api/nsr/:nsr_id/vld', cors(), function(req
, res
) {
67 launchpadAPI
['nsr'].nsd
.vld
.get(req
).then(function(data
) {
68 utils
.sendSuccessResponse(data
, res
);
70 utils
.sendErrorResponse(error
, res
);
73 app
.get('/api/nsr/:nsr_id/vld/:vld_id', cors(), function(req
, res
) {
74 launchpadAPI
['nsr'].nsd
.vld
.get(req
).then(function(data
) {
75 utils
.sendSuccessResponse(data
, res
);
77 utils
.sendErrorResponse(error
, res
);
80 app
.delete('/api/nsr/:nsr_id/vld/:vld_id', function(req
, res
) {
81 launchpadAPI
['nsr'].nsd
.vld
.delete(req
).then(function(data
) {
82 utils
.sendSuccessResponse(data
, res
);
84 utils
.sendErrorResponse(error
, res
);
87 app
.post('/api/nsr/:nsr_id/vld', cors(), function(req
, res
) {
88 launchpadAPI
['nsr'].nsd
.vld
.create(req
).then(function(data
) {
89 utils
.sendSuccessResponse(data
, res
);
91 utils
.sendErrorResponse(error
, res
);
94 app
.put('/api/nsr/:nsr_id/vld/:vld_id', cors(), function(req
, res
) {
95 launchpadAPI
['nsr'].nsd
.vld
.update(req
).then(function(data
) {
96 utils
.sendSuccessResponse(data
, res
);
98 utils
.sendErrorResponse(error
, res
);
101 app
.get('/api/vlr', cors(), function(req
, res
) {
102 launchpadAPI
['vlr'].get(req
).then(function(data
) {
103 utils
.sendSuccessResponse(data
, res
);
105 utils
.sendErrorResponse(error
, res
);
108 app
.get('/api/vlr/:id', cors(), function(req
, res
) {
109 launchpadAPI
['vlr'].get(req
).then(function(data
) {
110 utils
.sendSuccessResponse(data
, res
);
112 utils
.sendErrorResponse(error
, res
);
116 app
.put('/api/nsr/:id/admin-status', cors(), function(req
, res
) {
117 launchpadAPI
['nsr'].setStatus(req
).then(function(data
) {
120 res
.status(error
.statusCode
);
121 res
.send(error
.errorMessage
);
124 app
.post('/api/nsr/:id/:scaling_group_id/instance', cors(), function(req
, res
) {
125 launchpadAPI
['nsr'].createScalingGroupInstance(req
).then(function(data
) {
126 utils
.sendSuccessResponse(data
, res
);
129 utils
.sendErrorResponse(error
, res
);
132 app
.delete('/api/nsr/:id/:scaling_group_id/instance/:scaling_instance_id', cors(), function(req
, res
) {
133 launchpadAPI
['nsr'].deleteScalingGroupInstance(req
).then(function(data
) {
134 utils
.sendSuccessResponse(data
, res
);
137 utils
.sendErrorResponse(error
, res
);
140 app
.get('/api/vnfr', cors(), function(req
, res
) {
141 launchpadAPI
['vnfr'].get(req
).then(function(data
) {
144 res
.status(error
.statusCode
);
145 res
.send(error
.errorMessage
);
148 app
.get('/api/vnfr/:id', cors(), function(req
, res
) {
149 launchpadAPI
['vnfr'].get(req
).then(function(data
) {
152 res
.status(error
.statusCode
);
153 res
.send(error
.errorMessage
);
156 app
.get('/api/vnfr/:vnfr_id/:vdur_id', cors(), function(req
, res
) {
157 launchpadAPI
['vdur'].get(req
).then(function(data
) {
158 utils
.sendSuccessResponse(data
, res
);
160 utils
.sendErrorResponse(error
, res
);
163 app
.get('/api/catalog', cors(), function(req
, res
) {
164 launchpadAPI
['catalog'].get(req
).then(function(data
) {
165 utils
.sendSuccessResponse(data
, res
);
167 if(!error
|| !error
.statusCode
) {
170 message
: 'unknown error with Catalog.get'
173 utils
.sendErrorResponse(error
, res
);
176 //TODO refactor this query
177 app
.get('/api/decorated-catalog', cors(), function(req
, res
) {
178 launchpadAPI
['catalog'].get(req
).then(function(data
) {
179 var returnData
= launchpadAPI
['catalog'].decorateNsdCatalogWithPlacementGroups(data
)
180 utils
.sendSuccessResponse(returnData
, res
);
182 if(!error
|| !error
.statusCode
) {
185 message
: 'unknown error with Catalog.get'
188 utils
.sendErrorResponse(error
, res
);
192 //TODO refactor this query
193 app
.post('/api/vnfd', cors(), function(req
, res
) {
194 launchpadAPI
['catalog'].getVNFD(req
).then(function(data
) {
196 }).catch(function(error
) {
200 app
.get('/api/nsd/:nsd_id/input-param', cors(), function(req
, res
) {
201 launchpadAPI
['nsd'].getInputParams(req
).then(function(data
) {
202 utils
.sendSuccessResponse(data
, res
);
204 utils
.sendErrorResponse(error
, res
);
207 app
.post('/api/exec-ns-service-primitive', cors(), function(req
, res
) {
208 launchpadAPI
['rpc'].executeNSServicePrimitive(req
).then(function(data
) {
209 utils
.sendSuccessResponse(data
, res
);
211 utils
.sendErrorResponse(error
, res
);
214 app
.get('/api/get-ns-service-primitives', cors(), function(req
, res
) {
215 launchpadAPI
['rpc'].getNSServicePrimitiveValues(req
).then(function(data
) {
216 utils
.sendSuccessResponse(data
, res
);
218 utils
.sendErrorResponse(error
, res
);
221 app
.delete('/api/catalog/:catalogType/:id', cors(), function(req
, res
) {
222 launchpadAPI
['catalog'].delete(req
).then(function(response
) {
223 res
.status(response
.statusCode
);
226 res
.status(error
.statusCode
);
227 res
.send(error
.errorMessage
);
230 app
.post('/api/catalog/:catalogType', cors(), function(req
, res
) {
231 launchpadAPI
['catalog'].create(req
).then(function(data
) {
234 res
.status(error
.statusCode
);
235 res
.send(error
.errorMessage
);
238 app
.put('/api/catalog/:catalogType/:id', cors(), function(req
, res
) {
239 launchpadAPI
['catalog'].update(req
).then(function(data
) {
242 res
.status(error
.statusCode
);
243 res
.send(error
.errorMessage
);
246 app
.get('/api/nsr/:id/compute-topology', cors(), function(req
, res
) {
247 launchpadAPI
['computeTopology'].get(req
).then(function(data
) {
248 utils
.sendSuccessResponse(data
, res
);
250 utils
.sendErrorResponse(error
, res
);
253 app
.get('/api/network-topology', cors(), function(req
, res
) {
254 launchpadAPI
['networkTopology'].get(req
).then(function(data
) {
255 utils
.sendSuccessResponse(data
, res
);
257 utils
.sendErrorResponse(error
, res
);
260 app
.get('/api/cloud-account', cors(), function(req
, res
) {
261 launchpadAPI
['cloud_account'].get(req
).then(function(data
) {
262 utils
.sendSuccessResponse(data
, res
);
264 utils
.sendErrorResponse(error
, res
);
267 app
.get('/api/config', cors(), function(req
, res
) {
268 launchpadAPI
['config'].get(req
).then(function(data
) {
269 utils
.sendSuccessResponse(data
, res
);
271 utils
.sendErrorResponse(error
, res
);
274 app
.get('/api/config-agent-account', cors(), function(req
, res
) {
275 launchpadAPI
['config-agent-account'].get(req
).then(function(data
) {
276 utils
.sendSuccessResponse(data
, res
);
278 utils
.sendErrorResponse(error
, res
);
281 app
.get('/api/config-agent-account/:id', cors(), function(req
, res
) {
282 launchpadAPI
['config-agent-account'].get(req
).then(function(data
) {
283 utils
.sendSuccessResponse(data
, res
);
285 utils
.sendErrorResponse(error
, res
);
288 app
.post('/api/config-agent-account', cors(), function(req
, res
) {
289 launchpadAPI
['config-agent-account'].create(req
).then(function(data
) {
290 utils
.sendSuccessResponse(data
, res
);
292 utils
.sendErrorResponse(error
, res
);
295 app
.put('/api/config-agent-account/:id', cors(), function(req
, res
) {
296 launchpadAPI
['config-agent-account'].update(req
).then(function(data
) {
297 utils
.sendSuccessResponse(data
, res
);
299 utils
.sendErrorResponse(error
, res
);
302 app
.delete('/api/config-agent-account/:id', cors(), function(req
, res
) {
303 launchpadAPI
['config-agent-account'].delete(req
).then(function(data
) {
304 utils
.sendSuccessResponse(data
, res
);
306 utils
.sendErrorResponse(error
, res
);
310 app
.get('/api/data-centers', cors(), function(req
, res
) {
311 launchpadAPI
['data_centers'].get(req
).then(function(data
) {
312 utils
.sendSuccessResponse(data
, res
);
314 utils
.sendErrorResponse(error
, res
);
317 app
.get('/api/ssh-key', cors(), function(req
, res
) {
318 launchpadAPI
['SSHkey'].get(req
).then(function(data
) {
319 utils
.sendSuccessResponse(data
, res
);
321 utils
.sendErrorResponse(error
, res
);
324 app
.put('/api/ssh-key', cors(), function(req
, res
) {
325 launchpadAPI
['SSHkey'].put(req
).then(function(data
) {
326 utils
.sendSuccessResponse(data
, res
);
328 utils
.sendErrorResponse(error
, res
);
331 app
.post('/api/ssh-key', cors(), function(req
, res
) {
332 launchpadAPI
['SSHkey'].post(req
).then(function(data
) {
333 utils
.sendSuccessResponse(data
, res
);
335 utils
.sendErrorResponse(error
, res
);
338 app
.delete('/api/ssh-key/:name', cors(), function(req
, res
) {
339 launchpadAPI
['SSHkey'].delete(req
).then(function(data
) {
340 utils
.sendSuccessResponse(data
, res
);
342 utils
.sendErrorResponse(error
, res
);
346 utils
.passThroughConstructor(app
);
348 module
.exports
= app
;