UNPKG

omelop

Version:

[![Build Status](https://travis-ci.org/node-omelop/omelop.svg?branch=master)](https://travis-ci.org/node-omelop/omelop)

124 lines 10.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MonitorWatcherModule = void 0; const omelop_logger_1 = require("omelop-logger"); const utils = require("../util/utils"); const events_1 = require("../util/events"); const Constants = require("../util/constants"); const path = require("path"); let logger = (0, omelop_logger_1.getLogger)('omelop', path.basename(__filename)); class MonitorWatcherModule { constructor(opts, consoleService) { this.app = opts.app; this.service = consoleService; this.id = this.app.getServerId(); this.app.event.on(events_1.default.START_SERVER, finishStart.bind(null, this)); } start(cb) { subscribeRequest(this, this.service.agent, this.id, cb); } monitorHandler(agent, msg, cb) { if (!msg || !msg.action) { return; } let func = monitorMethods[msg.action]; if (!func) { logger.info('monitorwatcher unknown action: %j', msg.action); return; } func(this, agent, msg, cb); } } exports.MonitorWatcherModule = MonitorWatcherModule; MonitorWatcherModule.moduleId = Constants.KEYWORDS.MONITOR_WATCHER; // ----------------- monitor start method ------------------------- let subscribeRequest = function (self, agent, id, cb) { let msg = { action: 'subscribe', id: id }; agent.request(Constants.KEYWORDS.MASTER_WATCHER, msg, function (err, servers) { if (err) { logger.error('subscribeRequest request to master with error: %j', err.stack); utils.invokeCallback(cb, err); } let res = []; for (let id in servers) { res.push(servers[id]); } addServers(self, res); utils.invokeCallback(cb); }); }; // ----------------- monitor request methods ------------------------- let addServer = function (self, agent, msg, cb) { logger.debug('[%s] receive addServer signal: %j', self.app.serverId, msg); if (!msg || !msg.server) { logger.warn('monitorwatcher addServer receive empty message: %j', msg); utils.invokeCallback(cb, Constants.SIGNAL.FAIL); return; } addServers(self, [msg.server]); utils.invokeCallback(cb, Constants.SIGNAL.OK); }; let removeServer = function (self, agent, msg, cb) { logger.debug('%s receive removeServer signal: %j', self.app.serverId, msg); if (!msg || !msg.id) { logger.warn('monitorwatcher removeServer receive empty message: %j', msg); utils.invokeCallback(cb, Constants.SIGNAL.FAIL); return; } removeServers(self, [msg.id]); utils.invokeCallback(cb, Constants.SIGNAL.OK); }; let replaceServer = function (self, agent, msg, cb) { logger.debug('%s receive replaceServer signal: %j', self.app.serverId, msg); if (!msg || !msg.servers) { logger.warn('monitorwatcher replaceServer receive empty message: %j', msg); utils.invokeCallback(cb, Constants.SIGNAL.FAIL); return; } replaceServers(self, msg.servers); utils.invokeCallback(cb, Constants.SIGNAL.OK); }; let startOver = function (self, agent, msg, cb) { for (let component of self.app.loaded) { let fun = component[Constants.RESERVED.AFTER_STARTALL]; if (!!fun) { fun.call(component); } } for (let lifecycle of self.app.usedPlugins) { let fun = lifecycle[Constants.LIFECYCLE.AFTER_STARTALL]; if (!!fun) { fun.call(lifecycle, self.app); } } self.app.event.emit(events_1.default.START_ALL); utils.invokeCallback(cb, Constants.SIGNAL.OK); }; // ----------------- common methods ------------------------- let addServers = function (self, servers) { if (!servers || !servers.length) { return; } self.app.addServers(servers); }; let removeServers = function (self, ids) { if (!ids || !ids.length) { return; } self.app.removeServers(ids); }; let replaceServers = function (self, servers) { self.app.replaceServers(servers); }; // ----------------- bind methods ------------------------- let finishStart = function (self, id) { let msg = { action: 'record', id: id }; self.service.agent.notify(Constants.KEYWORDS.MASTER_WATCHER, msg); }; let monitorMethods = { 'addServer': addServer, 'removeServer': removeServer, 'replaceServer': replaceServer, 'startOver': startOver }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uaXRvcndhdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvbW9kdWxlcy9tb25pdG9yd2F0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBMEM7QUFDMUMsdUNBQXVDO0FBQ3ZDLDJDQUFtRDtBQUNuRCwrQ0FBK0M7QUFLL0MsNkJBQTZCO0FBQzdCLElBQUksTUFBTSxHQUFHLElBQUEseUJBQVMsRUFBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBSTVELE1BQWEsb0JBQW9CO0lBTzdCLFlBQVksSUFBMEIsRUFBRSxjQUE4QjtRQUNsRSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUM7UUFDOUIsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWpDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxnQkFBTSxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxLQUFLLENBQUMsRUFBYztRQUNoQixnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQW1CLEVBQUUsR0FBUSxFQUFFLEVBQW1CO1FBQzdELElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFO1lBQ3JCLE9BQU87U0FDVjtRQUNELElBQUksSUFBSSxHQUFJLGNBQXNCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElB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