fog-controller
Version:
Fog Controller project @ iotracks.com
347 lines (258 loc) • 19.4 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _elementInstanceManager = require('../managers/elementInstanceManager');
var _elementInstanceManager2 = _interopRequireDefault(_elementInstanceManager);
var _elementInstanceToCleanUpManager = require('../managers/elementInstanceToCleanUpManager');
var _elementInstanceToCleanUpManager2 = _interopRequireDefault(_elementInstanceToCleanUpManager);
var _dataTracksManager = require('../managers/dataTracksManager');
var _dataTracksManager2 = _interopRequireDefault(_dataTracksManager);
var _appUtils = require('../utils/appUtils');
var _appUtils2 = _interopRequireDefault(_appUtils);
var _underscore = require('underscore');
var _underscore2 = _interopRequireDefault(_underscore);
var _elementImageService = require('./elementImageService');
var _elementImageService2 = _interopRequireDefault(_elementImageService);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var getDataTrackDetails = function getDataTrackDetails(props, params, callback) {
var elementInstanceData = _appUtils2.default.getProperty(params, props.elementInstanceData);
_elementInstanceManager2.default.getDataTrackDetails(_underscore2.default.uniq(_underscore2.default.pluck(elementInstanceData, props.field))).then(_appUtils2.default.onFind.bind(null, params, props.setProperty, 'extraTracks not found.', callback));
};
var updateElementInstanceRebuild = function updateElementInstanceRebuild(props, params, callback) {
var elementId = _appUtils2.default.getProperty(params, props.elementId),
name = _appUtils2.default.getProperty(params, props.name);
_elementInstanceManager2.default.updateByUUIDAndName(elementId, name, props.updatedData).then(_appUtils2.default.onUpdate.bind(null, params, 'Unable to update Element Instance', callback));
};
var getElementInstanceProperties = function getElementInstanceProperties(props, params, callback) {
var elementInstanceId = _appUtils2.default.getProperty(params, props.elementInstanceId);
var imageProps = {
elementId: 'ID',
setProperty: 'elementImages'
};
_elementInstanceManager2.default.getElementInstanceProperties(elementInstanceId).then(_elementImageService2.default.populateImagesForElements.bind(null, imageProps)).then(_appUtils2.default.onFind.bind(null, params, props.setProperty, 'Cannot find Element Instance', callback));
};
var getDetailedElementInstances = function getDetailedElementInstances(props, params, callback) {
var trackId = _appUtils2.default.getProperty(params, props.trackId);
var imageProps = {
elementId: 'elementKey',
setProperty: 'elementImages'
};
_elementInstanceManager2.default.getElementInstanceDetails(trackId).then(_elementImageService2.default.populateImagesForElements.bind(null, imageProps)).then(_appUtils2.default.onFind.bind(null, params, props.setProperty, 'Cannot find Element Instance', callback));
};
var getElementInstance = function getElementInstance(props, params, callback) {
var elementInstanceId = _appUtils2.default.getProperty(params, props.elementInstanceId);
_elementInstanceManager2.default.findByUuId(elementInstanceId).then(_appUtils2.default.onFind.bind(null, params, props.setProperty, 'Cannot find Element Instance', callback));
};
var getElementInstanceWithImages = function getElementInstanceWithImages(props, params, callback) {
var elementInstanceId = _appUtils2.default.getProperty(params, props.elementInstanceId);
var imageProps = {
elementId: 'element_key',
setProperty: 'elementImages'
};
_elementInstanceManager2.default.findByUuId(elementInstanceId).then(_elementImageService2.default.populateImagesForElement.bind(null, imageProps)).then(_appUtils2.default.onFind.bind(null, params, props.setProperty, 'Cannot find Element Instance', callback));
};
var getElementInstanceOptional = function getElementInstanceOptional(props, params, callback) {
var elementInstanceId = _appUtils2.default.getProperty(params, props.elementInstanceId);
_elementInstanceManager2.default.findByUuId(elementInstanceId).then(_appUtils2.default.onFindOptional.bind(null, params, props.setProperty, callback));
};
var getElementInstancesByTrackId = function getElementInstancesByTrackId(props, params, callback) {
var trackId = _appUtils2.default.getProperty(params, props.trackId);
_elementInstanceManager2.default.findByTrackId(trackId).then(_appUtils2.default.onFind.bind(null, params, props.setProperty, 'Cannot find Element Instances related to track ' + params.bodyParams.trackId, callback));
};
var getElementInstancesByFogId = function getElementInstancesByFogId(props, params, callback) {
var fogId = _appUtils2.default.getProperty(params, props.fogId);
_elementInstanceManager2.default.getByFogId(fogId).then(_appUtils2.default.onFind.bind(null, params, props.setProperty, 'Cannot find Element Instance', callback));
};
var getElementInstancesByFogIdOptional = function getElementInstancesByFogIdOptional(props, params, callback) {
var instanceId = _appUtils2.default.getProperty(params, props.instanceId);
_elementInstanceManager2.default.getByFogId(instanceId).then(_appUtils2.default.onFindOptional.bind(null, params, props.setProperty, callback));
};
var findElementInstancesByTrackId = function findElementInstancesByTrackId(props, params, callback) {
var trackId = _appUtils2.default.getProperty(params, props.trackId);
_elementInstanceManager2.default.findByTrackId(trackId).then(_appUtils2.default.onFindOptional.bind(null, params, props.setProperty, callback));
};
// const findByInstanceId = function(props, params, callback) {
// let instanceId = AppUtils.getProperty(params, props.instanceId);
// ElementInstanceManager
// .getByFogId(instanceId)
// .then(AppUtils.onFind.bind(null, params, props.setProperty, 'Cannot find Element Instance', callback));
// }
var findElementInstancesByElementKey = function findElementInstancesByElementKey(props, params, callback) {
var elementKey = _appUtils2.default.getProperty(params, props.elementKey);
_elementInstanceManager2.default.findByElementKey(elementKey).then(_appUtils2.default.onFindOptional.bind(null, params, props.setProperty, callback));
};
var findRealElementInstanceByTrackId = function findRealElementInstanceByTrackId(props, params, callback) {
var trackId = _appUtils2.default.getProperty(params, props.trackId);
_elementInstanceManager2.default.findRealElementInstanceByTrackId(trackId).then(_appUtils2.default.onFind.bind(null, params, props.setProperty, 'ElementInstance not found.', callback));
};
var findIntraTrackByUuids = function findIntraTrackByUuids(props, params, callback) {
var intraTrackData = _appUtils2.default.getProperty(params, props.intraTrackData);
_elementInstanceManager2.default.findIntraTrackByUuids(_underscore2.default.uniq(_underscore2.default.pluck(intraTrackData, props.field))).then(_appUtils2.default.onFind.bind(null, params, props.setProperty, 'intraTracks not found.', callback));
};
var findExtraTrackByUuids = function findExtraTrackByUuids(props, params, callback) {
var extraTrackData = _appUtils2.default.getProperty(params, props.extraTrackData);
_elementInstanceManager2.default.findExtraTrackByUuids(_underscore2.default.uniq(_underscore2.default.pluck(extraTrackData, props.field))).then(_appUtils2.default.onFind.bind(null, params, props.setProperty, 'extraTracks not found.', callback));
};
var findOtherTrackDetailByUuids = function findOtherTrackDetailByUuids(props, params, callback) {
var otherTrackData = _appUtils2.default.getProperty(params, props.otherTrackData);
_elementInstanceManager2.default.findOtherTrackDetailByUuids(_underscore2.default.uniq(_underscore2.default.pluck(otherTrackData, props.field))).then(_appUtils2.default.onFind.bind(null, params, props.setProperty, 'otherTracksDetail not found', callback));
};
var createElementInstance = function createElementInstance(props, params, callback) {
var userId = _appUtils2.default.getProperty(params, props.userId),
trackId = _appUtils2.default.getProperty(params, props.trackId),
name = _appUtils2.default.getProperty(params, props.name),
logSize = _appUtils2.default.getProperty(params, props.logSize),
config = _appUtils2.default.getProperty(params, props.config),
fogInstanceId = _appUtils2.default.getProperty(params, props.fogInstanceId);
if (!config) {
config = "{}";
}
_elementInstanceManager2.default.createElementInstance(params.element, userId, trackId, config, name, logSize, fogInstanceId).then(_appUtils2.default.onCreate.bind(null, params, props.setProperty, 'Unable to create Element Instance', callback));
};
var createElementInstanceObj = function createElementInstanceObj(props, params, callback) {
_elementInstanceManager2.default.createElementInstanceObj(props.elementInstance).then(_appUtils2.default.onCreate.bind(null, params, props.setProperty, 'Unable to create Element Instance', callback));
};
var createStreamViewerElement = function createStreamViewerElement(props, params, callback) {
var elementKey = _appUtils2.default.getProperty(params, props.elementKey),
userId = _appUtils2.default.getProperty(params, props.userId),
fogInstanceId = _appUtils2.default.getProperty(params, props.fogInstanceId),
registryId = _appUtils2.default.getProperty(params, props.registryId);
_elementInstanceManager2.default.createStreamViewerInstance(elementKey, userId, fogInstanceId, registryId).then(_appUtils2.default.onCreate.bind(null, params, props.setProperty, 'Unable to create Stream Viewer', callback));
};
var createNetworkElementInstance = function createNetworkElementInstance(props, params, callback) {
var networkElement = _appUtils2.default.getProperty(params, props.networkElement),
fogInstanceId = _appUtils2.default.getProperty(params, props.fogInstanceId),
satellitePort = _appUtils2.default.getProperty(params, props.satellitePort),
trackId = _appUtils2.default.getProperty(params, props.trackId) || 0,
satelliteDomain = _appUtils2.default.getProperty(params, props.satelliteDomain),
satelliteCertificate = _appUtils2.default.getProperty(params, props.satelliteCertificate),
passcode = _appUtils2.default.getProperty(params, props.passcode),
userId = _appUtils2.default.getProperty(params, props.userId),
networkPort = parseInt(_appUtils2.default.getProperty(params, props.networkPort) || 0);
if (!props.networkName) {
props.networkName = 'Network for Element ' + networkElement.id;
}
_elementInstanceManager2.default.createNetworkInstance(networkElement, userId, fogInstanceId, satelliteDomain, satellitePort, satelliteCertificate, passcode, props.networkName, networkPort, props.isPublic, trackId).then(_appUtils2.default.onCreate.bind(null, params, props.setProperty, 'Unable to create Network Element Instance', callback));
};
var createDebugConsole = function createDebugConsole(props, params, callback) {
var elementKey = _appUtils2.default.getProperty(params, props.elementKey),
userId = _appUtils2.default.getProperty(params, props.userId),
fogInstanceId = _appUtils2.default.getProperty(params, props.fogInstanceId),
registryId = _appUtils2.default.getProperty(params, props.registryId);
_elementInstanceManager2.default.createDebugConsoleInstance(elementKey, userId, fogInstanceId, registryId).then(_appUtils2.default.onCreate.bind(null, params, props.setProperty, 'Unable to createDebug console object', callback));
};
var updateElemInstance = function updateElemInstance(props, params, callback) {
var elementId = _appUtils2.default.getProperty(params, props.elementId);
_elementInstanceManager2.default.updateByUUID(elementId, props.updatedData).then(_appUtils2.default.onUpdate.bind(null, params, 'Unable to update Element Instance', callback));
};
var updateElemInstanceByFogUuId = function updateElemInstanceByFogUuId(props, params, callback) {
var updateChange = {},
fogInstanceId = _appUtils2.default.getProperty(params, props.fogInstanceId);
if (params.bodyParams.instanceId) {
updateChange.iofog_uuid = props.updatedFogId;
}
_elementInstanceManager2.default.updateByFogUuId(fogInstanceId, updateChange).then(_appUtils2.default.onUpdate.bind(null, params, "Unable to update 'iofog_uuid' field for Element Instance", callback));
};
var deleteNetworkElementInstance = function deleteNetworkElementInstance(props, params, callback) {
var elementId = _appUtils2.default.getProperty(params, props.elementId);
_elementInstanceManager2.default.deleteNetworkElement(elementId).then(_appUtils2.default.onDelete.bind(null, params, 'No Network Element Instance found', callback));
};
var deleteNetworkElementInstances = function deleteNetworkElementInstances(props, params, callback) {
var elementInstanceData = _appUtils2.default.getProperty(params, props.elementInstanceData);
_elementInstanceManager2.default.deleteNetworkElements(_underscore2.default.pluck(elementInstanceData, props.field1), _underscore2.default.pluck(elementInstanceData, props.field2)).then(_appUtils2.default.onDeleteOptional.bind(null, params, callback));
};
var deleteElementInstance = function deleteElementInstance(props, params, callback) {
var elementId = _appUtils2.default.getProperty(params, props.elementId);
_elementInstanceManager2.default.deleteByElementUUID(elementId).then(_appUtils2.default.onDelete.bind(null, params, 'Was unable to delete Element Instance', callback));
};
var deleteElementInstanceWithCleanUp = function deleteElementInstanceWithCleanUp(props, params, callback) {
var withCleanUp = _appUtils2.default.getProperty(params, props.withCleanUp);
if (withCleanUp && params.elementInstance.iofog_uuid != null) {
createElementInstanceToCleanUp(props, params, callback);
} else {
deleteElementInstance(props, params, callback);
}
};
var createElementInstanceToCleanUp = function createElementInstanceToCleanUp(props, params, callback) {
var elementId = _appUtils2.default.getProperty(params, props.elementId),
withCleanUp = _appUtils2.default.getProperty(params, props.withCleanUp),
iofogUUID = _appUtils2.default.getProperty(params, props.iofogUUID);
if (withCleanUp && iofogUUID != null) {
var objToClean = {
elementInstanceUUID: elementId,
iofogUUID: iofogUUID
};
_elementInstanceToCleanUpManager2.default.create(objToClean).then(_appUtils2.default.onCreate.bind(null, params, null, 'Unable to create Element Instance To Clean Up', callback));
}
};
var deleteElementInstanceOptional = function deleteElementInstanceOptional(props, params, callback) {
var elementId = _appUtils2.default.getProperty(params, props.elementId);
_elementInstanceManager2.default.deleteByElementUUID(elementId).then(_appUtils2.default.onDeleteOptional.bind(null, params, callback));
};
var deleteElementInstances = function deleteElementInstances(props, params, callback) {
var elementInstanceData = _appUtils2.default.getProperty(params, props.elementInstanceData);
_elementInstanceManager2.default.deleteByElementUUID(_underscore2.default.pluck(elementInstanceData, props.field)).then(_appUtils2.default.onDeleteOptional.bind(null, params, callback));
};
var deleteElementInstancesByUUIDs = function deleteElementInstancesByUUIDs(props, params, elementIds, callback) {
if (elementIds.length > 0) {
_elementInstanceManager2.default.deleteByElementUUIDs(elementIds).then(_appUtils2.default.onDelete.bind(null, params, 'Unable to delete Element Instances With Clean Up', callback));
} else {
callback(null, params);
}
};
var deleteElementInstancesByInstanceIdAndElementKey = function deleteElementInstancesByInstanceIdAndElementKey(props, params, callback) {
var instanceId = _appUtils2.default.getProperty(params, props.instanceId),
elementKey = _appUtils2.default.getProperty(params, props.elementKey);
_elementInstanceManager2.default.deleteElementInstancesByInstanceIdAndElementKey(instanceId, elementKey).then(_appUtils2.default.onDeleteOptional.bind(null, params, callback));
};
var deleteDebugConsoleInstances = function deleteDebugConsoleInstances(props, params, callback) {
var instanceId = _appUtils2.default.getProperty(params, props.instanceId);
_elementInstanceManager2.default.deleteDebugConsoleInstances(instanceId).then(_appUtils2.default.onDeleteOptional.bind(null, params, callback));
};
var deleteStreamViewerInstances = function deleteStreamViewerInstances(props, params, callback) {
var instanceId = _appUtils2.default.getProperty(params, props.instanceId);
_elementInstanceManager2.default.deleteStreamViewerInstances(instanceId).then(_appUtils2.default.onDeleteOptional.bind(null, params, callback));
};
var getElementInstanceRouteDetails = function getElementInstanceRouteDetails(props, params, callback) {
var elementInstanceId = _appUtils2.default.getProperty(params, props.elementInstanceId);
_elementInstanceManager2.default.getElementInstanceRoute(elementInstanceId).then(_appUtils2.default.onFind.bind(null, params, props.setProperty, 'Cannot find element Instance route.', callback));
};
exports.default = {
createDebugConsole: createDebugConsole,
createElementInstance: createElementInstance,
createElementInstanceObj: createElementInstanceObj,
createNetworkElementInstance: createNetworkElementInstance,
createStreamViewerElement: createStreamViewerElement,
// findByInstanceId: findByInstanceId,
findElementInstancesByElementKey: findElementInstancesByElementKey,
findRealElementInstanceByTrackId: findRealElementInstanceByTrackId,
findIntraTrackByUuids: findIntraTrackByUuids,
findExtraTrackByUuids: findExtraTrackByUuids,
findOtherTrackDetailByUuids: findOtherTrackDetailByUuids,
findElementInstancesByTrackId: findElementInstancesByTrackId,
deleteDebugConsoleInstances: deleteDebugConsoleInstances,
deleteStreamViewerInstances: deleteStreamViewerInstances,
deleteElementInstance: deleteElementInstance,
deleteElementInstanceWithCleanUp: deleteElementInstanceWithCleanUp,
createElementInstanceToCleanUp: createElementInstanceToCleanUp,
deleteElementInstanceOptional: deleteElementInstanceOptional,
deleteElementInstances: deleteElementInstances,
deleteElementInstancesByUUID: deleteElementInstancesByUUIDs,
deleteNetworkElementInstance: deleteNetworkElementInstance,
deleteNetworkElementInstances: deleteNetworkElementInstances,
deleteElementInstancesByInstanceIdAndElementKey: deleteElementInstancesByInstanceIdAndElementKey,
getDataTrackDetails: getDataTrackDetails,
getElementInstance: getElementInstance,
getElementInstanceOptional: getElementInstanceOptional,
getElementInstancesByTrackId: getElementInstancesByTrackId,
getElementInstanceProperties: getElementInstanceProperties,
updateElemInstance: updateElemInstance,
updateElemInstanceByFogUuId: updateElemInstanceByFogUuId,
updateElementInstanceRebuild: updateElementInstanceRebuild,
getDetailedElementInstances: getDetailedElementInstances,
getElementInstanceRouteDetails: getElementInstanceRouteDetails,
getElementInstancesByFogId: getElementInstancesByFogId,
getElementInstancesByFogIdOptional: getElementInstancesByFogIdOptional,
getElementInstanceWithImages: getElementInstanceWithImages
};