UNPKG

fog-controller

Version:

Fog Controller project @ iotracks.com

302 lines (282 loc) 7.47 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _sequelize = require('sequelize'); var _sequelize2 = _interopRequireDefault(_sequelize); var _sequelize3 = require('./../utils/sequelize'); var _sequelize4 = _interopRequireDefault(_sequelize3); var _registry = require('./../models/registry'); var _registry2 = _interopRequireDefault(_registry); var _fogProvisionKey = require('./fogProvisionKey'); var _fogProvisionKey2 = _interopRequireDefault(_fogProvisionKey); var _changeTracking = require('./changeTracking'); var _changeTracking2 = _interopRequireDefault(_changeTracking); var _fogType = require('./fogType'); var _fogType2 = _interopRequireDefault(_fogType); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * @file fog.js * @author Zishan Iqbal * @description This file includes a iofogs model used by sequalize for ORM; */ var Fog = _sequelize4.default.define('iofogs', { uuid: { type: _sequelize2.default.TEXT, primaryKey: true, field: 'UUID' }, name: { type: _sequelize2.default.TEXT, defaultValue: "Unnamed ioFog 1", field: 'Name' }, location: { type: _sequelize2.default.TEXT, field: 'Location' }, gpsmode: { type: _sequelize2.default.TEXT, field: 'GpsMode' }, latitude: { type: _sequelize2.default.TEXT, field: 'Latitude' }, longitude: { type: _sequelize2.default.TEXT, field: 'Longitude' }, description: { type: _sequelize2.default.TEXT, field: 'Description' }, lastactive: { type: _sequelize2.default.BIGINT, field: 'LastActive' }, token: { type: _sequelize2.default.TEXT, field: 'Token' }, daemonstatus: { type: _sequelize2.default.TEXT, defaultValue: "UNKNOWN", field: 'DaemonStatus' }, daemonoperatingduration: { type: _sequelize2.default.BIGINT, defaultValue: 0, field: 'DaemonOperatingDuration' }, daemonlaststart: { type: _sequelize2.default.BIGINT, field: 'DaemonLastStart' }, memoryusage: { type: _sequelize2.default.FLOAT, defaultValue: 0.000, field: 'MemoryUsage' }, diskusage: { type: _sequelize2.default.FLOAT, defaultValue: 0.000, field: 'DiskUsage' }, cpuusage: { type: _sequelize2.default.FLOAT, defaultValue: 0.00, field: 'CPUUsage' }, memoryviolation: { type: _sequelize2.default.TEXT, field: 'MemoryViolation' }, diskviolation: { type: _sequelize2.default.TEXT, field: 'DiskViolation' }, cpuviolation: { type: _sequelize2.default.TEXT, field: 'CPUViolation' }, elementstatus: { type: _sequelize2.default.TEXT, field: 'ElementStatus' }, repositorycount: { type: _sequelize2.default.BIGINT, field: 'RepositoryCount' }, repositorystatus: { type: _sequelize2.default.TEXT, field: 'RepositoryStatus' }, systemtime: { type: _sequelize2.default.BIGINT, field: 'SystemTime' }, laststatustime: { type: _sequelize2.default.BIGINT, field: 'LastStatusTime' }, ipaddress: { type: _sequelize2.default.TEXT, defaultValue: "0.0.0.0", field: 'IPAddress' }, processedmessages: { type: _sequelize2.default.BIGINT, defaultValue: 0, field: 'ProcessedMessages' }, elementmessagecounts: { type: _sequelize2.default.TEXT, field: 'ElementMessageCounts' }, messagespeed: { type: _sequelize2.default.BIGINT, field: 'MessageSpeed' }, lastcommandtime: { type: _sequelize2.default.BIGINT, field: 'LastCommandTime' }, networkinterface: { type: _sequelize2.default.TEXT, defaultValue: "eth0", field: 'NetworkInterface' }, dockerurl: { type: _sequelize2.default.TEXT, defaultValue: "unix:///var/run/docker.sock", field: 'DockerURL' }, disklimit: { type: _sequelize2.default.FLOAT, defaultValue: 50, field: 'DiskLimit' }, diskdirectory: { type: _sequelize2.default.TEXT, defaultValue: '/var/lib/iofog/', field: 'DiskDirectory' }, memorylimit: { type: _sequelize2.default.FLOAT, defaultValue: 4096, field: 'MemoryLimit' }, cpulimit: { type: _sequelize2.default.FLOAT, defaultValue: 80, field: 'CPULimit' }, loglimit: { type: _sequelize2.default.FLOAT, defaultValue: 10, field: 'LogLimit' }, logdirectory: { type: _sequelize2.default.TEXT, defaultValue: "/var/log/iofog/", field: 'LogDirectory' }, debug: { type: _sequelize2.default.INTEGER, defaultValue: 0, field: 'Debug' }, viewer: { type: _sequelize2.default.INTEGER, defaultValue: 0, field: 'Viewer' }, bluetooth: { type: _sequelize2.default.INTEGER, defaultValue: 0, field: 'Bluetooth' }, hal: { type: _sequelize2.default.INTEGER, defaultValue: 0, field: 'hal' }, mongo: { type: _sequelize2.default.INTEGER, defaultValue: 0, field: 'mongo' }, influx: { type: _sequelize2.default.INTEGER, defaultValue: 0, field: 'influx' }, grafana: { type: _sequelize2.default.INTEGER, defaultValue: 0, field: 'grafana' }, logfilecount: { type: _sequelize2.default.BIGINT, defaultValue: 10, field: 'LogFileCount' }, version: { type: _sequelize2.default.TEXT, field: 'Version' }, isReadyToUpgrade: { type: _sequelize2.default.INTEGER, defaultValue: 1, field: "isReadyToUpgrade" }, isReadyToRollback: { type: _sequelize2.default.INTEGER, defaultValue: 0, field: "isReadyToRollback" }, statusfrequency: { type: _sequelize2.default.INTEGER, defaultValue: 10, field: 'StatusFrequency' }, changefrequency: { type: _sequelize2.default.INTEGER, defaultValue: 20, field: 'ChangeFrequency' }, scanfrequency: { type: _sequelize2.default.INTEGER, defaultValue: 20, field: 'ScanFrequency' }, proxy: { type: _sequelize2.default.TEXT, defaultValue: "", field: 'Proxy' }, isolateddockercontainer: { type: _sequelize2.default.INTEGER, defaultValue: 1, field: 'IsolatedDockerContainer' } }, { // don't add the timestamp attributes (updatedAt, createdAt) timestamps: true, // disable the modification of table names freezeTableName: true, // don't use camelcase for automatically added attributes but underscore style // so updatedAt will be updated_at underscored: true }); _registry2.default.belongsTo(Fog, { foreignKey: 'iofog_uuid' }); _fogProvisionKey2.default.belongsTo(Fog, { foreignKey: 'iofog_uuid' }); Fog.belongsTo(_fogType2.default, { foreignKey: 'typeKey' }); exports.default = Fog;