RIFT-14134, RIFT-14548: RO CRU and Instantiate Data Centers
[osm/UI.git] / skyquake / plugins / config / api / ro.js
1 /*
2 * STANDARD_RIFT_IO_COPYRIGHT
3 */
4
5 var request = require('request');
6 var Promise = require('bluebird');
7 var rp = require('request-promise');
8 var utils = require('../../../framework/core/api_utils/utils.js');
9 var constants = require('../../../framework/core/api_utils/constants.js');
10 var _ = require('underscore');
11 var RO = {}
12 RO.get = function(req) {
13 return new Promise(function(resolve, reject) {
14 var self = this;
15 var api_server = req.query["api_server"];
16 var requestHeaders = {};
17 var url = utils.confdPort(api_server) + '/api/running/resource-orchestrator';
18 _.extend(
19 requestHeaders,
20 id ? constants.HTTP_HEADERS.accept.data : constants.HTTP_HEADERS.accept.collection, {
21 'Authorization': req.get('Authorization')
22 }
23 );
24
25 request({
26 url: url + '?deep',
27 type: 'GET',
28 headers: requestHeaders,
29 forever: constants.FOREVER_ON,
30 rejectUnauthorized: false
31 },
32 function(error, response, body) {
33 var data;
34 if (utils.validateResponse('RO.get', error, response, body, resolve, reject)) {
35 try {
36 data = JSON.parse(response.body);
37 if (!id) {
38 data = data.collection;
39 }
40
41 data = data[objKey]
42 } catch (e) {
43 console.log('Problem with "' + type.toUpperCase() + '.get"', e);
44 var err = {};
45 err.statusCode = 500;
46 err.errorMessage = {
47 error: 'Problem with "' + type.toUpperCase() + '.get": ' + e
48 }
49 return reject(err);
50 }
51 return resolve({
52 statusCode: response.statusCode,
53 data: data
54 });
55 };
56 });
57 });
58 }
59
60 RO.update = updateAccount;
61
62 function updateAccount(req) {
63 var self = this;
64 var api_server = req.query["api_server"];
65 var data = req.body;
66 var requestHeaders = {};
67 var url = utils.confdPort(api_server) + '/api/config/resource-orchestrator';
68 var method = 'PUT'
69
70 return new Promise(function(resolve, reject) {
71 _.extend(requestHeaders,
72 constants.HTTP_HEADERS.accept.data,
73 constants.HTTP_HEADERS.content_type.data, {
74 'Authorization': req.get('Authorization')
75 });
76 request({
77 url: url,
78 method: method,
79 headers: requestHeaders,
80 forever: constants.FOREVER_ON,
81 rejectUnauthorized: false,
82 json: data,
83 }, function(error, response, body) {
84 if (utils.validateResponse('RO.update', error, response, body, resolve, reject)) {
85 return resolve({
86 statusCode: response.statusCode,
87 data: JSON.stringify(response.body)
88 });
89 };
90 });
91 })
92 }
93
94 module.exports = RO;