UNPKG

fog-controller

Version:

Fog Controller project @ iotracks.com

122 lines (94 loc) 4.54 kB
'use strict'; 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 };