from tfw.event_handler_base import EventHandlerBase from tfw.components.mixins import SupervisorMixin from tfw.config.logs import logging log = logging.getLogger(__name__) class ProcessManager(SupervisorMixin): def __init__(self, supervisor_process_name): self.process_name = supervisor_process_name self.commands = {'start': self.start_process, 'stop': self.stop_process, 'restart': self.restart_process} def __call__(self, command): self.commands[command]() class ProcessManagingEventHandler(EventHandlerBase): def __init__(self, key, supervisor_process_name): super().__init__(key) self.processmanager = ProcessManager(supervisor_process_name) def handle_event(self, key, data_json): self.processmanager(data_json['data']['command'])