Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9481e8f921 | ||
|
|
c8d4080ef5 | ||
|
|
269cab691e |
@@ -4,3 +4,4 @@ directory=/tmp
|
||||
command=bash tfw_init.sh
|
||||
autorestart=false
|
||||
startsecs=0
|
||||
priority=1
|
||||
|
||||
@@ -2,3 +2,4 @@
|
||||
user=root
|
||||
directory=%(ENV_TFW_SERVER_DIR)s
|
||||
command=python3 -u tfw_server.py
|
||||
priority=2
|
||||
|
||||
@@ -16,17 +16,20 @@ class ProcessLogHandler:
|
||||
self._initial_log_tail = log_tail
|
||||
|
||||
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):
|
||||
self._monitor = LogInotifyObserver(
|
||||
connector=self.connector,
|
||||
process_name=self.process_name,
|
||||
supervisor_uri=self._supervisor_uri,
|
||||
log_tail=self._initial_log_tail
|
||||
)
|
||||
self._monitor.start()
|
||||
if not self._monitor:
|
||||
self._monitor = LogInotifyObserver(
|
||||
connector=self.connector,
|
||||
process_name=self.process_name,
|
||||
supervisor_uri=self._supervisor_uri,
|
||||
log_tail=self._initial_log_tail
|
||||
)
|
||||
self._monitor.start()
|
||||
|
||||
def handle_event(self, message, _):
|
||||
try:
|
||||
@@ -40,5 +43,16 @@ class ProcessLogHandler:
|
||||
if data.get('tail'):
|
||||
self._monitor.log_tail = data['tail']
|
||||
|
||||
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 = None
|
||||
|
||||
def cleanup(self):
|
||||
self._monitor.stop()
|
||||
self._stop_monitor()
|
||||
|
||||
+6
-7
@@ -1,6 +1,7 @@
|
||||
import logging
|
||||
from collections import defaultdict
|
||||
from datetime import datetime
|
||||
from contextlib import suppress
|
||||
|
||||
from transitions import Machine, MachineError
|
||||
|
||||
@@ -62,14 +63,12 @@ class FSMBase(Machine, CallbackMixin):
|
||||
)
|
||||
|
||||
if all(predicate_results):
|
||||
try:
|
||||
with suppress(AttributeError, MachineError):
|
||||
from_state = self.state
|
||||
self.trigger(trigger)
|
||||
self.update_event_log(from_state, trigger)
|
||||
return True
|
||||
except (AttributeError, MachineError):
|
||||
LOG.debug('FSM failed to execute nonexistent trigger: "%s"', trigger)
|
||||
return False
|
||||
if self.trigger(trigger):
|
||||
self.update_event_log(from_state, trigger)
|
||||
return True
|
||||
LOG.debug('FSM failed to execute nonexistent trigger: "%s"', trigger)
|
||||
|
||||
def update_event_log(self, from_state, trigger):
|
||||
self.event_log.append({
|
||||
|
||||
Reference in New Issue
Block a user