From 2e953ea098ad3785db82bda76681cc187089d87d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Wed, 30 May 2018 15:21:36 +0200 Subject: [PATCH] Implement LogMonitorEH API --- .../log_monitoring_event_handler.py | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/lib/tfw/components/log_monitoring_event_handler.py b/lib/tfw/components/log_monitoring_event_handler.py index 8d354a8..e28a3ad 100644 --- a/lib/tfw/components/log_monitoring_event_handler.py +++ b/lib/tfw/components/log_monitoring_event_handler.py @@ -4,12 +4,34 @@ from tfw import EventHandlerBase from tfw.mixins import MonitorManagerMixin +from tfw.config.logs import logging from .log_monitor import LogMonitor +LOG = logging.getLogger(__name__) + class LogMonitoringEventHandler(EventHandlerBase, MonitorManagerMixin): - def __init__(self, process_name, log_tail=0): - MonitorManagerMixin.__init__(self, LogMonitor, process_name, log_tail) + def __init__(self, key, process_name, log_tail=0): + super().__init__(key) + self.process_name = process_name + self.log_tail = log_tail + MonitorManagerMixin.__init__(self, LogMonitor, self.process_name, self.log_tail) + + self.command_handlers = { + 'process_name': self.handle_process_name, + 'log_tail': self.handle_log_tail + } def handle_event(self, message): - pass + try: + data = message['data'] + self.command_handlers[data['command']](data) + self.reload_monitor() + except KeyError: + LOG.error('IGNORING MESSAGE: Invalid message received: %s', message) + + def handle_process_name(self, data): + self.set_monitor_args(data['process_name'], self.log_tail) + + def handle_log_tail(self, data): + self.set_monitor_args(self.process_name, data['log_tail'])