state api now working

This commit is contained in:
Tobias Kurze
2020-07-20 17:51:57 +02:00
parent f181e4a785
commit bd8e60bf5d
8 changed files with 388 additions and 283 deletions

View File

@@ -9,7 +9,7 @@ from threading import Lock
from typing import Union, Callable, TypeVar, Generic, Set, List
from backend.models import Recorder
from backend.tools.recorder_state_checker import check_capture_agent_state, ping_capture_agent
from backend.tools.recorder_state_checker import check_capture_agent_state, ping_capture_agent, check_stream_sanity
logger = logging.getLogger("lrc.cron.recorder_state")
@@ -97,10 +97,14 @@ class StateChecker(Generic[T]):
object_states[r[2]] = {
'id': object_states[r[2]].get('id', None),
'msg': ", ".join([s for s in [object_states[r[2]].get('msg', None), r[1]] if s]),
'time_stamp': datetime.datetime.now(datetime.timezone.utc).strftime(
"%d.%m.%Y - %H:%M:%S %Z"),
'state_ok': ok}
else:
object_states[r[2]] = {'id': object_states[r[2]].get('id', None),
'msg': r[1],
'time_stamp': datetime.datetime.now(datetime.timezone.utc).strftime(
"%d.%m.%Y - %H:%M:%S %Z"),
'state_ok': False}
except TimeoutError as e:
logger.error("Timeout while performing state check func! {}".format(e))
@@ -163,3 +167,9 @@ class StateChecker(Generic[T]):
async_cron_recorder_checker = StateChecker([check_capture_agent_state, ping_capture_agent], Recorder)
async_permanent_cron_recorder_checker = StateChecker(
[check_capture_agent_state, ping_capture_agent, check_stream_sanity], Recorder)
for r in Recorder.get_all():
async_permanent_cron_recorder_checker.add_object_to_state_check(r.id)
async_permanent_cron_recorder_checker.check_object_state() # initial check of all recorders