Compare commits

...
5 changed files with 33 additions and 18 deletions
+2 -2
View File
@@ -1,6 +1,6 @@
from os.path import dirname, realpath, join from os.path import dirname, realpath, join
from setuptools import setup from setuptools import setup, find_packages
here = dirname(realpath(__file__)) here = dirname(realpath(__file__))
@@ -17,7 +17,7 @@ setup(
author='Avatao.com Innovative Learning Kft.', author='Avatao.com Innovative Learning Kft.',
author_email='support@avatao.com', author_email='support@avatao.com',
license='custom', license='custom',
packages=['tfw'], packages=find_packages(),
package_dir={'tfw': 'tfw'}, package_dir={'tfw': 'tfw'},
install_requires=requirements, install_requires=requirements,
extras_require={ extras_require={
+1
View File
@@ -4,3 +4,4 @@ directory=/tmp
command=bash tfw_init.sh command=bash tfw_init.sh
autorestart=false autorestart=false
startsecs=0 startsecs=0
priority=1
+1
View File
@@ -2,3 +2,4 @@
user=root user=root
directory=%(ENV_TFW_SERVER_DIR)s directory=%(ENV_TFW_SERVER_DIR)s
command=python3 -u tfw_server.py command=python3 -u tfw_server.py
priority=2
@@ -16,10 +16,13 @@ class ProcessLogHandler:
self._initial_log_tail = log_tail self._initial_log_tail = log_tail
self.command_handlers = { self.command_handlers = {
'process.log.set': self.handle_set 'process.log.set': self.handle_set,
'process.log.start': self.handle_start,
'process.log.stop': self.handle_stop
} }
def start(self): def start(self):
if not self._monitor:
self._monitor = LogInotifyObserver( self._monitor = LogInotifyObserver(
connector=self.connector, connector=self.connector,
process_name=self.process_name, process_name=self.process_name,
@@ -40,5 +43,16 @@ class ProcessLogHandler:
if data.get('tail'): if data.get('tail'):
self._monitor.log_tail = data['tail'] self._monitor.log_tail = data['tail']
def cleanup(self): def handle_start(self, _):
self.start()
def handle_stop(self, _):
self._stop_monitor()
def _stop_monitor(self):
if self._monitor:
self._monitor.stop() self._monitor.stop()
self._monitor = None
def cleanup(self):
self._stop_monitor()
+3 -4
View File
@@ -1,6 +1,7 @@
import logging import logging
from collections import defaultdict from collections import defaultdict
from datetime import datetime from datetime import datetime
from contextlib import suppress
from transitions import Machine, MachineError from transitions import Machine, MachineError
@@ -62,14 +63,12 @@ class FSMBase(Machine, CallbackMixin):
) )
if all(predicate_results): if all(predicate_results):
try: with suppress(AttributeError, MachineError):
from_state = self.state from_state = self.state
self.trigger(trigger) if self.trigger(trigger):
self.update_event_log(from_state, trigger) self.update_event_log(from_state, trigger)
return True return True
except (AttributeError, MachineError):
LOG.debug('FSM failed to execute nonexistent trigger: "%s"', trigger) LOG.debug('FSM failed to execute nonexistent trigger: "%s"', trigger)
return False
def update_event_log(self, from_state, trigger): def update_event_log(self, from_state, trigger):
self.event_log.append({ self.event_log.append({