baseimage-tutorial-framework/src/event_handlers/terminado_event_handler.py

31 lines
1.1 KiB
Python
Raw Normal View History

import logging
from shutil import rmtree, copytree
from xmlrpc.client import Fault as SupervisorFault
from contextlib import suppress
from event_handler_base import EventHandlerBase
from util import SupervisorMixin
from config import TERMINADO_DIR
class TerminadoEventHandler(EventHandlerBase, SupervisorMixin):
def __init__(self, messaging, anchor, process_name):
super().__init__(messaging, anchor)
self.working_directory = TERMINADO_DIR
self.process_name = process_name
self.setup_terminado_server()
def setup_terminado_server(self):
rmtree(self.working_directory, ignore_errors=True)
copytree('terminado_server/', self.working_directory)
self.supervisor.startProcess(self.process_name)
def handle_event(self, anchor, data_json):
logging.debug('TerminadoEventHandler received event for anchor {}'.format(anchor))
# TODO: wat do?
def handle_reset(self, data_json):
with suppress(SupervisorFault):
self.supervisor.stopProcess(self.process_name)
self.supervisor.startProcess(self.process_name)