fog-controller
Version:
Fog Controller project @ iotracks.com
122 lines (94 loc) • 4.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _async = require('async');
var _async2 = _interopRequireDefault(_async);
var _baseApiController = require('./baseApiController');
var _baseApiController2 = _interopRequireDefault(_baseApiController);
var _fogService = require('../../services/fogService');
var _fogService2 = _interopRequireDefault(_fogService);
var _appUtils = require('../../utils/appUtils');
var _appUtils2 = _interopRequireDefault(_appUtils);
var _winstonLogs = require('../../utils/winstonLogs');
var _winstonLogs2 = _interopRequireDefault(_winstonLogs);
var _elementInstanceStatusService = require('../../services/elementInstanceStatusService');
var _elementInstanceStatusService2 = _interopRequireDefault(_elementInstanceStatusService);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/********************************************* EndPoints ******************************************************/
/*************** Instance Status EndPoint (Post: /api/v2/instance/status/id/:ID/token/:Token) *****************/
/**
* @file instanceStatusController.js
* @author Zishan Iqbal
* @description This file includes the implementation of the instance-status end-point
*/
var instanceStatusEndPoint = function instanceStatusEndPoint(req, res) {
_winstonLogs2.default.info("Endpoint hit: " + req.originalUrl);
var params = {},
fogInstanceProps = {
fogId: 'bodyParams.instanceId',
setProperty: 'fogInstance'
};
params.bodyParams = req.body;
params.bodyParams.instanceId = req.params.ID;
_winstonLogs2.default.info("Parameters:" + JSON.stringify(params.bodyParams));
_async2.default.waterfall([_async2.default.apply(_baseApiController2.default.checkUserExistance, req, res), _async2.default.apply(_fogService2.default.getFogInstance, fogInstanceProps, params), upsertStatus, updateFogInstance], function (err, result) {
_appUtils2.default.sendResponse(res, err, '', '', result);
});
};
/*********************************** Extra Functions ***************************************************/
var upsertStatus = function upsertStatus(params, callback) {
var statusObjArr = JSON.parse(params.bodyParams.elementstatus);
_async2.default.each(statusObjArr, function (statusObj, callback) {
_elementInstanceStatusService2.default.upsertStatus(statusObj, params, callback);
}, function (err, result) {
callback(null, params);
});
};
var updateFogInstance = function updateFogInstance(params, callback) {
var proxyStatus = getProxyStatus(params);
var fogInstanceProps = {
instanceId: 'bodyParams.instanceId',
updatedFog: {
daemonstatus: params.bodyParams.daemonstatus,
daemonoperatingduration: params.bodyParams.daemonoperatingduration,
daemonlaststart: params.bodyParams.daemonlaststart,
memoryusage: params.bodyParams.memoryusage,
diskusage: params.bodyParams.diskusage,
cpuusage: params.bodyParams.cpuusage,
memoryviolation: params.bodyParams.memoryviolation,
diskviolation: params.bodyParams.diskviolation,
cpuviolation: params.bodyParams.cpuviolation,
elementstatus: params.bodyParams.elementstatus,
repositorycount: params.bodyParams.repositorycount,
repositorystatus: params.bodyParams.repositorystatus,
systemtime: params.bodyParams.systemtime,
laststatustime: params.bodyParams.laststatustime,
ipaddress: params.bodyParams.ipaddress,
processedmessages: params.bodyParams.processedmessages,
elementmessagecounts: params.bodyParams.elementmessagecounts,
messagespeed: params.bodyParams.messagespeed,
lastcommandtime: params.bodyParams.lastcommandtime,
proxy: proxyStatus,
version: params.bodyParams.version || '1.0',
isReadyToUpgrade: params.bodyParams.isreadytoupgrade,
isReadyToRollback: params.bodyParams.isreadytorollback
}
};
_fogService2.default.updateFogInstance(fogInstanceProps, params, callback);
};
var getProxyStatus = function getProxyStatus(params) {
var result = void 0;
var newProxyStr = params.bodyParams.proxystatus;
var oldProxyStr = params.fogInstance.proxy;
if (oldProxyStr) {
var oldProxyObj = JSON.parse(oldProxyStr);
result = oldProxyObj.status === 'PENDING_OPEN' || oldProxyObj.status === 'PENDING_CLOSE' ? oldProxyStr : newProxyStr;
} else {
result = newProxyStr;
}
return result;
};
exports.default = {
instanceStatusEndPoint: instanceStatusEndPoint
};