Project-wide refactor of things named Component* to EventHandler*

This commit is contained in:
Bálint Bokros 2017-12-02 15:19:05 +01:00
parent acaf8899cc
commit 62a12c605c
14 changed files with 32 additions and 34 deletions

View File

@ -27,8 +27,8 @@ ENV PATH="$PYENV_ROOT/bin:$PATH"
ENV TFW_APP_DIR="/srv/app"
COPY src/app ${TFW_APP_DIR}
ENV TFW_COMPONENTS_DIR="/opt/components"
COPY src/components ${TFW_COMPONENTS_DIR}
ENV TFW_EVENT_HANDLERS_DIR="/opt/event_handlers"
COPY src/event_handlers ${TFW_EVENT_HANDLERS_DIR}
# Copy config
ENV TFW_CONFIG_DIR="/usr/local/lib/"

View File

@ -31,6 +31,6 @@ PYTHONPATH="../../lib/" python app.py
in one, and
```
cd src/components/
PYTHONPATH="../../lib/" python component_example.py
PYTHONPATH="../../lib/" python event_handler_example.py
```
in the other.

View File

@ -1,6 +1,6 @@
from transitions import Machine
import component_connector
import event_handler_connector
class Buttons:
@ -22,7 +22,7 @@ class Buttons:
def forward_message(self, event_data):
message = event_data.kwargs.get('message')
component_connector.send_message(message)
event_handler_connector.send_message(message)
fsm = Buttons()

View File

@ -5,7 +5,7 @@ from util import parse_anchor_from_message
# from buttons import fsm
from sql_injection_fsm import fsm
import component_connector
import event_handler_connector
class ZMQWebSocketHandler(WebSocketHandler):
@ -18,14 +18,14 @@ class ZMQWebSocketHandler(WebSocketHandler):
logging.debug('Received on pull socket: {}'.format(data.decode()))
self.write_message(data.decode())
component_connector.register_callback(zmq_callback)
event_handler_connector.register_callback(zmq_callback)
def on_message(self, message):
logging.debug('Received on WebSocket: {}'.format(message))
fsm.trigger(parse_anchor_from_message(message), message=message)
def send_message(self, message: str, anchor: str = None):
component_connector.send_message(message, anchor)
event_handler_connector.send_message(message, anchor)
def on_close(self):
pass

View File

@ -1,6 +1,6 @@
from transitions import Machine
import component_connector
import event_handler_connector
class SQLInjectionFSM:
@ -26,7 +26,7 @@ class SQLInjectionFSM:
def forward_message(self, event_data):
message = event_data.kwargs.get('message')
component_connector.send_message(message)
event_handler_connector.send_message(message)
fsm = SQLInjectionFSM()

View File

@ -1,12 +1,12 @@
import json
from functools import partial
from component_base import ComponentBase
from event_handler_base import EventHandlerBase
class Component(ComponentBase):
def __init__(self, anchor, event_handler, zmq_context=None):
super().__init__(anchor, event_handler, zmq_context)
class EventHandler(EventHandlerBase):
def __init__(self, anchor, event_handler_function, zmq_context=None):
super().__init__(anchor, event_handler_function, zmq_context)
def wrapper(msg_parts, handler):
anchor, message = msg_parts
@ -15,6 +15,4 @@ class Component(ComponentBase):
encoded_response = json.dumps(response).encode('utf-8')
self.zmq_push_socket.send_multipart([anchor, encoded_response])
self.zmq_sub_stream.on_recv(partial(wrapper, handler=event_handler))
self.zmq_sub_stream.on_recv(partial(wrapper, handler=event_handler_function))

View File

@ -8,10 +8,10 @@ from config import PUBLISHER_PORT, RECEIVER_PORT
ioloop.install()
class ComponentBase:
def __init__(self, anchor, event_handler, zmq_context=None):
class EventHandlerBase:
def __init__(self, anchor, event_handler_function, zmq_context=None):
self.anchor = anchor
self.event_handler = event_handler
self.event_handler_function = event_handler_function
self.zmq_context = zmq_context or zmq.Context.instance()
self.zmq_sub_socket = self.zmq_context.socket(zmq.SUB)
self.subscriptions = {self.anchor}

View File

@ -2,8 +2,8 @@ import codecs
import sqlite3
import source_code
from component import Component
from stateful_component import StatefulComponent
from event_handler import EventHandler
from stateful_event_handler import StatefulEventHandler
from tornado.ioloop import IOLoop
from login_component import authorize_login
@ -70,17 +70,17 @@ def login_handler(data, component):
yield ('anchor_login', '# Login page\n' + response)
def source_code_handler(data, component):
component.unsubscribe(data['anchor'])
def source_code_handler(data, event_handler):
event_handler.unsubscribe(data['anchor'])
yield (data['anchor'],
source_code.get_source_code(authorize_login, strip_comments=True))
if __name__ == '__main__':
anchor_a = Component('anchor_a', change_case_handler)
anchor_b = Component('anchor_b', rot13_handler)
anchor_c = Component('anchor_c', reverse_handler)
anchor_login = StatefulComponent('anchor_login', login_handler)
anchor_webide = StatefulComponent('anchor_webide', source_code_handler)
anchor_a = EventHandler('anchor_a', change_case_handler)
anchor_b = EventHandler('anchor_b', rot13_handler)
anchor_c = EventHandler('anchor_c', reverse_handler)
anchor_login = StatefulEventHandler('anchor_login', login_handler)
anchor_webide = StatefulEventHandler('anchor_webide', source_code_handler)
IOLoop.instance().start()

View File

@ -3,10 +3,10 @@ from functools import partial
import zmq
from component_base import ComponentBase
from event_handler_base import EventHandlerBase
class StatefulComponent(ComponentBase):
class StatefulEventHandler(EventHandlerBase):
def __init__(self, anchor, event_handler, zmq_context=None):
super().__init__(anchor, event_handler, zmq_context)
self.generator = None

View File

@ -17,7 +17,7 @@ serverurl=unix:///tmp/supervisor.sock
directory=%(ENV_TFW_APP_DIR)s
command=env python app.py
[program:component_example]
directory=%(ENV_TFW_COMPONENTS_DIR)s
command=env python component_example.py
[program:event_handler_example]
directory=%(ENV_TFW_EVENT_HANDLERS_DIR)s
command=env python event_handler_example.py
autorestart=true