state api now working
This commit is contained in:
@@ -103,5 +103,15 @@ recorder_model_model = api_recorder.model('Recorder Model', {
|
||||
'commands': fields.List(fields.Nested(recorder_command_model), attribute="recorder_commands")
|
||||
})
|
||||
|
||||
state_model = api_state.model('Recorder', {
|
||||
state_model = api_state.model('Recorder State', {
|
||||
'id': fields.String(required=False, description='The recorder model\'s identifier'),
|
||||
'name': fields.String(description='The recorder model\'s name'),
|
||||
'msg': fields.String(),
|
||||
'state_ok': fields.Boolean(),
|
||||
'time_stamp': fields.String(required=False),
|
||||
'previous': fields.Nested(api_state.model('Previous Recorder State', {
|
||||
'msg': fields.String(),
|
||||
'state_ok': fields.Boolean(),
|
||||
'time_stamp': fields.String()}, required=False)
|
||||
)
|
||||
})
|
||||
|
||||
@@ -11,13 +11,12 @@ from flask_restx import fields, Resource, inputs
|
||||
from backend import db, app
|
||||
from backend.api import api_state
|
||||
from backend.api.models import recorder_model, recorder_model_model, recorder_command_model, state_model
|
||||
from backend.cron import async_cron_recorder_checker
|
||||
from backend.cron import async_cron_recorder_checker, async_permanent_cron_recorder_checker
|
||||
from backend.cron.cron_state_checker import StateChecker
|
||||
from backend.models.recorder_model import Recorder, RecorderModel, RecorderCommand
|
||||
from backend.models.room_model import Room
|
||||
import backend.recorder_adapters as r_a
|
||||
|
||||
|
||||
# ==
|
||||
from backend.tools.recorder_state_checker import get_recorder_adapter, check_capture_agent_state, check_stream_sanity
|
||||
|
||||
@@ -35,33 +34,29 @@ class RecorderStateResource(Resource):
|
||||
if recorder is None:
|
||||
api_state.abort(404)
|
||||
|
||||
current_states_by_checker = async_cron_recorder_checker.get_current_state()
|
||||
state = async_cron_recorder_checker.get_current_state_for_recorder_id(recorder.id)
|
||||
# current_states_by_checker = async_cron_recorder_checker.get_current_state()
|
||||
state = async_permanent_cron_recorder_checker.get_current_state_for_recorder_id(recorder.id)
|
||||
if state is None:
|
||||
state_checker = StateChecker([check_capture_agent_state], Recorder)
|
||||
state_checker.add_object_to_state_check(recorder)
|
||||
state_checker.check_object_state()
|
||||
state = state_checker.get_current_state_for_recorder_id(recorder.id)
|
||||
if not state.get('state_ok', False): # if state is not OK, return state -> no more checks!
|
||||
return state
|
||||
|
||||
# do additional checks, such as: check for single color, sound check, etc.
|
||||
stream_state = check_stream_sanity(recorder)
|
||||
print(stream_state)
|
||||
|
||||
return stream_state
|
||||
|
||||
|
||||
print("lalala")
|
||||
print(state)
|
||||
return state
|
||||
|
||||
|
||||
@api_state.route('/recorder')
|
||||
class RecorderStateList(Resource):
|
||||
@jwt_required
|
||||
@api_state.doc('get_recorders_states')
|
||||
@api_state.marshal_list_with(state_model, skip_none=False)
|
||||
@api_state.marshal_list_with(state_model, skip_none=True)
|
||||
def get(self):
|
||||
"""
|
||||
Get state of all recorders
|
||||
:return: state
|
||||
"""
|
||||
return Recorder.get_all()
|
||||
rec_states = async_permanent_cron_recorder_checker.get_current_state()
|
||||
print(rec_states)
|
||||
res = [{**{'name': rec_state_name}, **rec_states[rec_state_name]} for rec_state_name in rec_states]
|
||||
return res
|
||||
|
||||
Reference in New Issue
Block a user