fog-controller
Version:
Fog Controller project @ iotracks.com
73 lines (58 loc) • 2.52 kB
JavaScript
;
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;