1
0
mirror of https://github.com/avatao-content/test-tutorial-framework synced 2024-12-05 02:01:33 +00:00

Introduce intent for TFW messages

This commit is contained in:
R. Richard 2019-08-23 15:56:03 +02:00 committed by therealkrispet
parent c972026385
commit 88e1818c86

View File

@ -4,7 +4,7 @@ from functools import partial
from tornado.ioloop import IOLoop from tornado.ioloop import IOLoop
from tfw.fsm import YamlFSM from tfw.fsm import YamlFSM
from tfw.event_handlers import FSMAwareEventHandler from tfw.event_handlers import FSMAwareEventHandler, ControlEventHandler
from tfw.components.ide import IdeHandler from tfw.components.ide import IdeHandler
from tfw.components.terminal import TerminalHandler from tfw.components.terminal import TerminalHandler
from tfw.components.frontend import FrontendProxyHandler, ConsoleLogsHandler from tfw.components.frontend import FrontendProxyHandler, ConsoleLogsHandler
@ -12,6 +12,7 @@ from tfw.components.process_management import ProcessHandler, ProcessLogHandler
from tfw.components.fsm import FSMHandler from tfw.components.fsm import FSMHandler
from tfw.main import EventHandlerFactory, setup_logger, setup_signal_handlers from tfw.main import EventHandlerFactory, setup_logger, setup_signal_handlers
from tfw.config import TFWENV, TAOENV from tfw.config import TFWENV, TAOENV
from tfw.internals.networking import Intent
from custom_handlers import CenatorHandler, TestCommandsHandler, messageFSMStepsHandler from custom_handlers import CenatorHandler, TestCommandsHandler, messageFSMStepsHandler
@ -32,36 +33,36 @@ def main():
{} # jinja2 variables, empty dict enables jinja2 without any variables {} # jinja2 variables, empty dict enables jinja2 without any variables
), ),
initial_trigger='step_1' initial_trigger='step_1'
)) ), event_handler_type=ControlEventHandler)
# Web IDE backend # Web IDE backend
ide_eh = eh_factory.build(IdeHandler( ide_eh = eh_factory.build(IdeHandler(
patterns=['/home/user/workdir/*', '/srv/webservice/user_ops.py'] patterns=['/home/user/workdir/*', '/srv/webservice/user_ops.py']
)) ), event_handler_type=ControlEventHandler)
# Web shell backend # Web shell backend
terminal_eh = eh_factory.build(TerminalHandler( terminal_eh = eh_factory.build(TerminalHandler(
port=TFWENV.TERMINADO_PORT, port=TFWENV.TERMINADO_PORT,
user=TAOENV.USER, user=TAOENV.USER,
working_directory=TFWENV.TERMINADO_WD, working_directory=TFWENV.TERMINADO_WD,
histfile=TFWENV.HISTFILE histfile=TFWENV.HISTFILE
)) ), event_handler_type=ControlEventHandler)
# Handles 'deploy' button clicks # Handles 'deploy' button clicks
processmanager_eh = eh_factory.build(ProcessHandler( processmanager_eh = eh_factory.build(ProcessHandler(
supervisor_uri=TFWENV.SUPERVISOR_HTTP_URI supervisor_uri=TFWENV.SUPERVISOR_HTTP_URI
)) ), event_handler_type=ControlEventHandler)
# Sends live logs of webservice process to frontend # Sends live logs of webservice process to frontend
logmonitor_eh = eh_factory.build(ProcessLogHandler( logmonitor_eh = eh_factory.build(ProcessLogHandler(
process_name='webservice', process_name='webservice',
supervisor_uri=TFWENV.SUPERVISOR_HTTP_URI, supervisor_uri=TFWENV.SUPERVISOR_HTTP_URI,
log_tail=2000 log_tail=2000
)) ), event_handler_type=ControlEventHandler)
# Proxies frontend API calls to frontend # Proxies frontend API calls to frontend
frontend_eh = eh_factory.build(FrontendProxyHandler()) frontend_eh = eh_factory.build(FrontendProxyHandler(), event_handler_type=ControlEventHandler)
# Writes live logs to console on frontend # Writes live logs to console on frontend
console_logs_eh = eh_factory.build(ConsoleLogsHandler(stream='stdout')) console_logs_eh = eh_factory.build(ConsoleLogsHandler(stream='stdout'), event_handler_type=ControlEventHandler)
# Replace these with your custom event handlers # Replace these with your custom event handlers
# Echoes executed commands to messages # Echoes executed commands to messages
cenator_eh = eh_factory.build(CenatorHandler()) cenator_eh = eh_factory.build(CenatorHandler(), event_handler_type=ControlEventHandler)
# Echoes FSM steps # Echoes FSM steps
message_fsm_steps_eh = eh_factory.build( message_fsm_steps_eh = eh_factory.build(
messageFSMStepsHandler, messageFSMStepsHandler,
@ -70,7 +71,7 @@ def main():
# Catches special commands # Catches special commands
commands_eh = eh_factory.build(TestCommandsHandler( commands_eh = eh_factory.build(TestCommandsHandler(
bashrc=f'/home/{TAOENV.USER}/.bashrc' bashrc=f'/home/{TAOENV.USER}/.bashrc'
)) ), event_handler_type=ControlEventHandler)
setup_signal_handlers() setup_signal_handlers()
IOLoop.current().start() IOLoop.current().start()