added virtual commands model

This commit is contained in:
Tobias Kurze
2019-08-05 13:41:12 +02:00
parent 51536766bf
commit 186614bc4a
7 changed files with 306 additions and 178 deletions

View File

@@ -5,6 +5,7 @@ For example: listing of available auth providers or registration of users.
Login through API does not start a new session, but instead returns JWT.
"""
import inspect
import pkgutil
from flask_jwt_extended import jwt_required
@@ -125,9 +126,6 @@ class RecorderList(Resource):
return recorder
# ==
recorder_model_model = api_recorder.model('Recorder Model', {
'id': fields.String(required=False, description='The recorder model\'s identifier'),
'name': fields.String(required=True, description='The recorder model\'s name'),
@@ -159,17 +157,6 @@ class RecorderModelResource(Resource):
return recorder_model
api_recorder.abort(404)
@jwt_required
@api_recorder.doc('delete_recorder_model')
@api_recorder.response(204, 'Recorder model deleted')
def delete(self, id):
"""Delete a recorder model given its identifier"""
recorder_model = RecorderModel.query.get(id)
if recorder_model is not None:
db.session.delete(recorder_model)
db.session.commit()
return '', 204
api_recorder.abort(404)
@jwt_required
@api_recorder.doc('update_recorder_model')
@@ -186,21 +173,11 @@ class RecorderModelResource(Resource):
@api_recorder.route('/model')
class RecorderModelList(Resource):
@jwt_required
#@jwt_required
@api_recorder.doc('recorders')
@api_recorder.marshal_list_with(recorder_model_model)
def get(self):
models = []
found_packages = list(pkgutil.iter_modules(r_a.__path__))
importer = found_packages[0][0]
for f_p in found_packages:
importer = f_p[0]
rec_model_module = importer.find_module(f_p[1]).load_module(f_p[1])
rec_model = {'id': f_p[1], 'name': f_p[1]}
if 'RECORDER_MODEL_NAME' in rec_model_module:
rec_model['name'] = rec_model_module.RECORDER_MODEL_NAME
models.append(rec_model)
print(models)
models = r_a.get_defined_recorder_adapters()
return models
"""
List all recorder models
@@ -208,25 +185,6 @@ class RecorderModelList(Resource):
"""
return Recorder.get_all()
@jwt_required
@api_recorder.doc('create_recorder')
@api_recorder.expect(recorder_model_model)
@api_recorder.marshal_with(recorder_model_model, code=201)
def post(self):
if "recorders" in api_recorder.payload:
if api_recorder.payload["recorders"] is None or len(api_recorder.payload["recorders"]) < 1 :
api_recorder.payload["recorders"] = []
else:
rec_model = RecorderModel.query.get(api_recorder.payload["recorder_model_id"])
if rec_model is not None:
api_recorder.payload["recorder_model"] = rec_model
else:
return "specified recorder model (id: {}) does not exist!".format(api_recorder.payload["recorder_model_id"]), 404
recorder = Recorder(**api_recorder.payload)
db.session.add(recorder)
db.session.commit()
return recorder
# ==