from tfw.event_handler_base import EventHandlerBase from tfw.components.mixins import SupervisorMixin 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, anchor, supervisor_process_name): super().__init__(anchor) self.processmanager = ProcessManager(supervisor_process_name) def handle_event(self, anchor, data_json): self.processmanager(data_json['data']['command'])