UNPKG

fog-controller

Version:

Fog Controller project @ iotracks.com

73 lines (58 loc) 2.52 kB
'use strict'; var _constants = require('../server/constants'); var _constants2 = _interopRequireDefault(_constants); var _configUtil = require('../server/utils/configUtil'); var _configUtil2 = _interopRequireDefault(_configUtil); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var defaultConfig = require('../config.json'); var Start = function Start() { _classCallCheck(this, Start); }; Start.run = function (daemon) { _configUtil2.default.getAllConfigs().then(function () { var configuration = { dbPort: _configUtil2.default.getConfigParam(_constants2.default.CONFIG.port) || defaultConfig.port, sslKey: _configUtil2.default.getConfigParam(_constants2.default.CONFIG.ssl_key), sslCert: _configUtil2.default.getConfigParam(_constants2.default.CONFIG.ssl_cert), intermedKey: _configUtil2.default.getConfigParam(_constants2.default.CONFIG.intermediate_cert) }; startDaemon(daemon, configuration); }); }; function startDaemon(daemon, configuration) { var pid = daemon.status(); if (pid == 0) { daemon.start(); checkDaemon(daemon, configuration); } else { console.log('fog-controller already running. PID: ' + pid); } } function checkDaemon(daemon, configuration) { var iterationsCount = 0; var intervalId = setInterval(function () { iterationsCount++; var pid = daemon.status(); if (pid === 0) { console.log('Error: ssl_key or ssl_cert or intermediate_cert is either missing or invalid. Provide valid SSL configurations.'); clearInterval(intervalId); } else if (iterationsCount == 5) { checkServerProptocol(configuration); console.log('Fog-Controller has started at pid: ' + pid); clearInterval(intervalId); } }, 1000); } function checkServerProptocol(configuration) { var dbPort = configuration.dbPort, sslKey = configuration.sslKey, sslCert = configuration.sslCert, intermedKey = configuration.intermedKey; if (sslKey && sslCert && intermedKey) { console.log('==> \uD83C\uDF0E HTTPS server listening on port ' + dbPort + '. Open up https://localhost:' + dbPort + '/ in your browser.'); } else { console.log('==> \uD83C\uDF0E Listening on port ' + dbPort + '. Open up http://localhost:' + dbPort + '/ in your browser.'); } } exports.Start = Start;