+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
+ })
+ })
+
+ })
+}