From 96b5234fc14cafd973e0f0392b8b8d2485b8289b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Thu, 25 Jan 2018 16:48:48 +0100 Subject: [PATCH] Fix terminado buffer issues & terminado server OO refactor --- src/event_handlers/terminado_event_handler.py | 7 ---- src/event_handlers/terminado_server/server.py | 36 +++++++++++-------- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/event_handlers/terminado_event_handler.py b/src/event_handlers/terminado_event_handler.py index 1ba2bfb..7c6546f 100644 --- a/src/event_handlers/terminado_event_handler.py +++ b/src/event_handlers/terminado_event_handler.py @@ -1,7 +1,5 @@ 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 @@ -23,8 +21,3 @@ class TerminadoEventHandler(EventHandlerBase, SupervisorMixin): 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) diff --git a/src/event_handlers/terminado_server/server.py b/src/event_handlers/terminado_server/server.py index 6cdae84..ea0b924 100644 --- a/src/event_handlers/terminado_server/server.py +++ b/src/event_handlers/terminado_server/server.py @@ -1,25 +1,33 @@ import logging from tornado.ioloop import IOLoop from tornado.web import Application -from terminado import TermSocket, SingleTermManager +from terminado import TermSocket, UniqueTermManager from config import TERMINADO_PORT, TERMINADO_WD -class CORSTermSocket(TermSocket): - def check_origin(self, origin): - return True +class TerminadoMiniServer: + def __init__(self, url, port, workdir, shellcmd): + self.port = port + self.application = Application( + [( + url, + TerminadoMiniServer.CORSTermSocket, + {'term_manager': UniqueTermManager(shell_command=shellcmd, + term_settings={'cwd': workdir})} + )] + ) + + class CORSTermSocket(TermSocket): + def check_origin(self, origin): + return True + + def listen(self): + self.application.listen(self.port) + IOLoop.instance().start() + if __name__ == '__main__': - application = Application( - [( - r'/terminal', - CORSTermSocket, - {'term_manager': SingleTermManager(shell_command=['bash'], - term_settings={'cwd': TERMINADO_WD})} - )] - ) - application.listen(TERMINADO_PORT) logging.getLogger().setLevel(logging.DEBUG) logging.info('Terminado Mini Server listening on {}'.format(TERMINADO_PORT)) - IOLoop.instance().start() \ No newline at end of file + TerminadoMiniServer('/terminal', TERMINADO_PORT, TERMINADO_WD, ['bash']).listen()