further advanced state api and stream checks
This commit is contained in:
@@ -27,6 +27,7 @@ class StateChecker(Generic[T]):
|
||||
The determined state is stored "locally" in the state checker object and NOT reflected back to the checked objects!
|
||||
It can be retrieved by calling get_current_state.
|
||||
"""
|
||||
|
||||
def __init__(self, state_checker_func: Union[Callable, List[Callable]], type_to_check: T, type_name=None,
|
||||
threads=NUM_THREADS):
|
||||
self.num_threads = threads
|
||||
@@ -149,5 +150,16 @@ class StateChecker(Generic[T]):
|
||||
with self.update_state_lock:
|
||||
return copy.deepcopy(self.state_results)
|
||||
|
||||
def get_current_state_for_recorder_name(self, recorder_name: str):
|
||||
return self.get_current_state().get(recorder_name, None)
|
||||
|
||||
recorder_checker = StateChecker([check_capture_agent_state, ping_capture_agent], Recorder)
|
||||
def get_current_state_for_recorder_id(self, recorder_id: int):
|
||||
states = self.get_current_state()
|
||||
for key in states:
|
||||
state = states[key]
|
||||
if state.get('id', None) == recorder_id: # found!
|
||||
return state
|
||||
return None
|
||||
|
||||
|
||||
async_cron_recorder_checker = StateChecker([check_capture_agent_state, ping_capture_agent], Recorder)
|
||||
|
||||
Reference in New Issue
Block a user