06ee5da79960619b6637ffb55f84907e546e2463
[osm/UI.git] / skyquake / plugins / launchpad / routes.js
1 /*
2 *
3 * Copyright 2016 RIFT.IO Inc
4 *
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
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
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.
16 *
17 */
18
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');
23
24 app.get('/api/nsr', cors(), function(req, res) {
25 launchpadAPI['nsr'].get(req).then(function(data) {
26 res.send(data);
27 }, function(error) {
28 res.status(error.statusCode);
29 res.send(error.errorMessage);
30 });
31 });
32 app.get('/api/nsr/:id', cors(), function(req, res) {
33 launchpadAPI['nsr'].get(req).then(function(data) {
34 res.send(data);
35 }, function(error) {
36 res.status(error.statusCode);
37 res.send(error.errorMessage);
38 });
39 });
40 app.delete('/api/nsr/:id', cors(), function(req, res) {
41 launchpadAPI['nsr'].delete(req).then(function(response) {
42 utils.sendSuccessResponse(response, res);
43 }, function(error) {
44 utils.sendErrorResponse(error, res);
45 });
46 });
47 app.post('/api/nsr', cors(), function(req, res) {
48 launchpadAPI['nsr'].create(req).then(function(data) {
49 res.send(data);
50 }, function(error) {
51 console.log(error)
52 res.status(error.statusCode);
53 res.send(error.errorMessage);
54 });
55 });
56 app.get('/api/nsr/:nsr_id/vnfr', cors(), function(req, res) {
57 launchpadAPI['vnfr'].get(req).then(function(data) {
58 res.send(data);
59 }, function(error) {
60 res.status(error.statusCode);
61 res.send(error.errorMessage);
62 }).catch(function(error) {
63 console.log(error)
64 });
65 });
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);
69 }, function(error) {
70 utils.sendErrorResponse(error, res);
71 });
72 });
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);
76 }, function(error) {
77 utils.sendErrorResponse(error, res);
78 });
79 });
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);
83 }, function(error) {
84 utils.sendErrorResponse(error, res);
85 });
86 });
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);
90 }, function(error) {
91 utils.sendErrorResponse(error, res);
92 });
93 });
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);
97 }, function(error) {
98 utils.sendErrorResponse(error, res);
99 });
100 });
101 app.get('/api/vlr', cors(), function(req, res) {
102 launchpadAPI['vlr'].get(req).then(function(data) {
103 utils.sendSuccessResponse(data, res);
104 }, function(error) {
105 utils.sendErrorResponse(error, res);
106 });
107 });
108 app.get('/api/vlr/:id', cors(), function(req, res) {
109 launchpadAPI['vlr'].get(req).then(function(data) {
110 utils.sendSuccessResponse(data, res);
111 }, function(error) {
112 utils.sendErrorResponse(error, res);
113 });
114 });
115
116 app.put('/api/nsr/:id/admin-status', cors(), function(req, res) {
117 launchpadAPI['nsr'].setStatus(req).then(function(data) {
118 res.send(data);
119 }, function(error) {
120 res.status(error.statusCode);
121 res.send(error.errorMessage);
122 });
123 });
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);
127 }, function(error) {
128 console.log(error)
129 utils.sendErrorResponse(error, res);
130 });
131 });
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);
135 }, function(error) {
136 console.log(error)
137 utils.sendErrorResponse(error, res);
138 });
139 });
140 app.get('/api/vnfr', cors(), function(req, res) {
141 launchpadAPI['vnfr'].get(req).then(function(data) {
142 res.send(data);
143 }, function(error) {
144 res.status(error.statusCode);
145 res.send(error.errorMessage);
146 });
147 });
148 app.get('/api/vnfr/:id', cors(), function(req, res) {
149 launchpadAPI['vnfr'].get(req).then(function(data) {
150 res.send(data);
151 }, function(error) {
152 res.status(error.statusCode);
153 res.send(error.errorMessage);
154 });
155 });
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);
159 }, function(error) {
160 utils.sendErrorResponse(error, res);
161 })
162 });
163 app.get('/api/vnfr/:vnfr_id/vdur/:vdur_id/console-url', function(req, res) {
164 launchpadAPI['vdur']['consoleUrl'].get(req).then(function(data) {
165 utils.sendSuccessResponse(data, res);
166 }, function(error) {
167 utils.sendErrorResponse(error, res);
168 });
169 })
170 app.get('/api/catalog', cors(), function(req, res) {
171 launchpadAPI['catalog'].get(req).then(function(data) {
172 utils.sendSuccessResponse(data, res);
173 }, function(error) {
174 if(!error || !error.statusCode) {
175 error = {
176 statusCode: 500,
177 message: 'unknown error with Catalog.get'
178 }
179 }
180 utils.sendErrorResponse(error, res);
181 });
182 });
183 //TODO refactor this query
184 app.get('/api/decorated-catalog', cors(), function(req, res) {
185 launchpadAPI['catalog'].get(req).then(function(data) {
186 var returnData = launchpadAPI['catalog'].decorateNsdCatalogWithPlacementGroups(data)
187 utils.sendSuccessResponse(returnData, res);
188 }, function(error) {
189 if(!error || !error.statusCode) {
190 error = {
191 statusCode: 500,
192 message: 'unknown error with Catalog.get'
193 }
194 }
195 utils.sendErrorResponse(error, res);
196 });
197 });
198
199 //TODO refactor this query
200 app.post('/api/vnfd', cors(), function(req, res) {
201 launchpadAPI['catalog'].getVNFD(req).then(function(data) {
202 res.send(data);
203 }).catch(function(error) {
204 console.log(error)
205 });
206 });
207 app.get('/api/nsd/:nsd_id/input-param', cors(), function(req, res) {
208 launchpadAPI['nsd'].getInputParams(req).then(function(data) {
209 utils.sendSuccessResponse(data, res);
210 }, function(error) {
211 utils.sendErrorResponse(error, res);
212 });
213 });
214 app.post('/api/exec-ns-service-primitive', cors(), function(req, res) {
215 launchpadAPI['rpc'].executeNSServicePrimitive(req).then(function(data) {
216 utils.sendSuccessResponse(data, res);
217 }, function(error) {
218 utils.sendErrorResponse(error, res);
219 });
220 });
221 app.get('/api/get-ns-service-primitives', cors(), function(req, res) {
222 launchpadAPI['rpc'].getNSServicePrimitiveValues(req).then(function(data) {
223 utils.sendSuccessResponse(data, res);
224 }, function(error) {
225 utils.sendErrorResponse(error, res);
226 });
227 });
228 app.delete('/api/catalog/:catalogType/:id', cors(), function(req, res) {
229 launchpadAPI['catalog'].delete(req).then(function(response) {
230 res.status(response.statusCode);
231 res.send({});
232 }, function(error) {
233 res.status(error.statusCode);
234 res.send(error.errorMessage);
235 });
236 });
237 app.post('/api/catalog/:catalogType', cors(), function(req, res) {
238 launchpadAPI['catalog'].create(req).then(function(data) {
239 res.send(data);
240 }, function(error) {
241 res.status(error.statusCode);
242 res.send(error.errorMessage);
243 });
244 });
245 app.put('/api/catalog/:catalogType/:id', cors(), function(req, res) {
246 launchpadAPI['catalog'].update(req).then(function(data) {
247 res.send(data);
248 }, function(error) {
249 res.status(error.statusCode);
250 res.send(error.errorMessage);
251 });
252 });
253 app.get('/api/nsr/:id/compute-topology', cors(), function(req, res) {
254 launchpadAPI['computeTopology'].get(req).then(function(data) {
255 utils.sendSuccessResponse(data, res);
256 }, function(error) {
257 utils.sendErrorResponse(error, res);
258 })
259 });
260 app.get('/api/network-topology', cors(), function(req, res) {
261 launchpadAPI['networkTopology'].get(req).then(function(data) {
262 utils.sendSuccessResponse(data, res);
263 }, function(error) {
264 utils.sendErrorResponse(error, res);
265 })
266 });
267 app.get('/api/cloud-account', cors(), function(req, res) {
268 launchpadAPI['cloud_account'].get(req).then(function(data) {
269 utils.sendSuccessResponse(data, res);
270 }, function(error) {
271 utils.sendErrorResponse(error, res);
272 })
273 });
274 app.get('/api/config', cors(), function(req, res) {
275 launchpadAPI['config'].get(req).then(function(data) {
276 utils.sendSuccessResponse(data, res);
277 }, function(error) {
278 utils.sendErrorResponse(error, res);
279 })
280 });
281 app.get('/api/config-agent-account', cors(), function(req, res) {
282 launchpadAPI['config-agent-account'].get(req).then(function(data) {
283 utils.sendSuccessResponse(data, res);
284 }, function(error) {
285 utils.sendErrorResponse(error, res);
286 });
287 });
288 app.get('/api/config-agent-account/:id', cors(), function(req, res) {
289 launchpadAPI['config-agent-account'].get(req).then(function(data) {
290 utils.sendSuccessResponse(data, res);
291 }, function(error) {
292 utils.sendErrorResponse(error, res);
293 });
294 });
295 app.post('/api/config-agent-account', cors(), function(req, res) {
296 launchpadAPI['config-agent-account'].create(req).then(function(data) {
297 utils.sendSuccessResponse(data, res);
298 }, function(error) {
299 utils.sendErrorResponse(error, res);
300 });
301 });
302 app.put('/api/config-agent-account/:id', cors(), function(req, res) {
303 launchpadAPI['config-agent-account'].update(req).then(function(data) {
304 utils.sendSuccessResponse(data, res);
305 }, function(error) {
306 utils.sendErrorResponse(error, res);
307 });
308 });
309 app.delete('/api/config-agent-account/:id', cors(), function(req, res) {
310 launchpadAPI['config-agent-account'].delete(req).then(function(data) {
311 utils.sendSuccessResponse(data, res);
312 }, function(error) {
313 utils.sendErrorResponse(error, res);
314 });
315 });
316 //DataCenters
317 app.get('/api/data-centers', cors(), function(req, res) {
318 launchpadAPI['data_centers'].get(req).then(function(data) {
319 utils.sendSuccessResponse(data, res);
320 }, function(error) {
321 utils.sendErrorResponse(error, res);
322 });
323 });//DataCenters
324 app.get('/api/ssh-key', cors(), function(req, res) {
325 launchpadAPI['SSHkey'].get(req).then(function(data) {
326 utils.sendSuccessResponse(data, res);
327 }, function(error) {
328 utils.sendErrorResponse(error, res);
329 });
330 });
331 app.put('/api/ssh-key', cors(), function(req, res) {
332 launchpadAPI['SSHkey'].put(req).then(function(data) {
333 utils.sendSuccessResponse(data, res);
334 }, function(error) {
335 utils.sendErrorResponse(error, res);
336 });
337 });
338 app.post('/api/ssh-key', cors(), function(req, res) {
339 launchpadAPI['SSHkey'].post(req).then(function(data) {
340 utils.sendSuccessResponse(data, res);
341 }, function(error) {
342 utils.sendErrorResponse(error, res);
343 });
344 });
345 app.delete('/api/ssh-key/:name', cors(), function(req, res) {
346 launchpadAPI['SSHkey'].delete(req).then(function(data) {
347 utils.sendSuccessResponse(data, res);
348 }, function(error) {
349 utils.sendErrorResponse(error, res);
350 });
351 });
352
353 utils.passThroughConstructor(app);
354
355 module.exports = app;