2021-10-27 16:39:25 -04:00
|
|
|
from crc import session
|
2022-01-10 13:16:54 -05:00
|
|
|
from crc.models.task_log import TaskLogModel, TaskLogModelSchema, TaskLogQuery
|
2021-10-27 16:39:25 -04:00
|
|
|
from crc.scripts.script import Script
|
2022-01-10 13:16:54 -05:00
|
|
|
from crc.services.task_logging_service import TaskLoggingService
|
2021-10-27 16:39:25 -04:00
|
|
|
|
|
|
|
|
|
|
|
class GetLogsByWorkflow(Script):
|
|
|
|
|
|
|
|
def get_description(self):
|
|
|
|
return """Script to retrieve logs for the current study.
|
|
|
|
Accepts an optional `code` argument that is used to filter the DB query.
|
2022-01-10 13:16:54 -05:00
|
|
|
Accepts an optional 'size' otherwise will return the most recent 10 records.
|
2021-10-27 16:39:25 -04:00
|
|
|
"""
|
|
|
|
|
|
|
|
def do_task_validate_only(self, task, study_id, workflow_id, *args, **kwargs):
|
2022-03-11 14:03:09 -05:00
|
|
|
log_model = TaskLogModel(level='metrics',
|
2021-10-27 17:03:27 -04:00
|
|
|
code='mocked_code',
|
|
|
|
message='This is my logging message',
|
|
|
|
study_id=study_id,
|
|
|
|
workflow_id=workflow_id,
|
|
|
|
task=task.get_name())
|
|
|
|
return TaskLogModelSchema(many=True).dump([log_model])
|
2021-10-27 16:39:25 -04:00
|
|
|
|
|
|
|
def do_task(self, task, study_id, workflow_id, *args, **kwargs):
|
2022-03-11 14:03:09 -05:00
|
|
|
level = None
|
2021-10-27 16:39:25 -04:00
|
|
|
code = None
|
2022-03-11 14:03:09 -05:00
|
|
|
size = None
|
|
|
|
if 'level' in kwargs:
|
|
|
|
level = kwargs['level']
|
|
|
|
elif len(args) > 0:
|
|
|
|
level = args[0]
|
2021-10-27 16:39:25 -04:00
|
|
|
if 'code' in kwargs:
|
|
|
|
code = kwargs['code']
|
2022-03-11 14:03:09 -05:00
|
|
|
elif len(args) > 1:
|
|
|
|
code = args[1]
|
2022-01-10 13:16:54 -05:00
|
|
|
if 'size' in kwargs:
|
|
|
|
size = kwargs['size']
|
2022-03-11 14:03:09 -05:00
|
|
|
elif len(args) > 2:
|
|
|
|
size = args[2]
|
2021-10-27 16:39:25 -04:00
|
|
|
|
2022-03-11 14:03:09 -05:00
|
|
|
log_models = TaskLoggingService().get_logs_for_study(study_id, level, code, size)
|
2021-10-27 16:39:25 -04:00
|
|
|
return TaskLogModelSchema(many=True).dump(log_models)
|