Use prefix matching in ZMQConnector

This commit is contained in:
Kristóf Tóth
2019-08-08 15:05:37 +02:00
parent 35e5b595d1
commit b5e53cb946
Notes: R. Richard 2019-09-04 21:27:26 +02:00
- Control/Signed/FSMAwareEventHandler unit tesztek
- command_handler dict automatikus generálása
- frontend keyup ne hallgasson már a nyilakra meg ilyenekre
- CommandEventHandler humble object + tesztek
- terminalba írás ideiglenes letiltása
- ha nem kell egy komponens ki lehessen venni
- pipe, ami aláírja az üzenetet, amit beleküldünk
- legyen pötyögtetés a message queue elején
- a queue thread-jét lehessen join-olni várakozás közben is
- PipeConnector nyissa meg a már előtte is létező pipe-okat
9 changed files with 62 additions and 65 deletions

View File

@ -6,8 +6,6 @@ from datetime import datetime
from dateutil import parser as dateparser
from tfw.internals.networking import Scope
from .snapshot_provider import SnapshotProvider
LOG = logging.getLogger(__name__)
@ -23,9 +21,9 @@ class SnapshotHandler:
self.init_snapshot_providers(directories)
self.command_handlers = {
'take_snapshot': self.handle_take_snapshot,
'restore_snapshot': self.handle_restore_snapshot,
'exclude': self.handle_exclude
'snapshot.take': self.handle_take_snapshot,
'snapshot.restore': self.handle_restore_snapshot,
'snapshot.exclude': self.handle_exclude
}
def init_snapshot_providers(self, directories):
@ -45,23 +43,20 @@ class SnapshotHandler:
makedirs(git_dir, exist_ok=True)
return git_dir
def handle_event(self, message, connector):
def handle_event(self, message, _):
try:
data = message['data']
message['data'] = self.command_handlers[data['command']](data)
connector.send_message(message, scope=Scope.WEBSOCKET)
self.command_handlers[message['key']](message)
except KeyError:
LOG.error('IGNORING MESSAGE: Invalid message received: %s', message)
def handle_take_snapshot(self, data):
def handle_take_snapshot(self, _):
LOG.debug('Taking snapshots of directories %s', self.snapshot_providers.keys())
for provider in self.snapshot_providers.values():
provider.take_snapshot()
return data
def handle_restore_snapshot(self, data):
def handle_restore_snapshot(self, message):
date = dateparser.parse(
data.get(
message.get(
'value',
datetime.now().isoformat()
)
@ -73,13 +68,11 @@ class SnapshotHandler:
)
for provider in self.snapshot_providers.values():
provider.restore_snapshot(date)
return data
def handle_exclude(self, data):
exclude_unix_patterns = data['value']
def handle_exclude(self, message):
exclude_unix_patterns = message['value']
if not isinstance(exclude_unix_patterns, list):
raise KeyError
for provider in self.snapshot_providers.values():
provider.exclude = exclude_unix_patterns
return data