diff --git a/netbox/extras/migrations/0109_script_model.py b/netbox/extras/migrations/0109_script_model.py index 89b343a82..0fd928812 100644 --- a/netbox/extras/migrations/0109_script_model.py +++ b/netbox/extras/migrations/0109_script_model.py @@ -99,7 +99,7 @@ def update_scripts(apps, schema_editor): object_type=scriptmodule_ct, object_id=module.pk, name=script_name - ).update(object_type=script_ct, object_id=script.pk) + ).update(object_type_id=script_ct.id, object_id=script.pk) def update_event_rules(apps, schema_editor): diff --git a/netbox/extras/views.py b/netbox/extras/views.py index 56840f7a9..0c7a6a48b 100644 --- a/netbox/extras/views.py +++ b/netbox/extras/views.py @@ -1149,6 +1149,34 @@ class ScriptResultView(generic.ObjectView): def get_required_permission(self): return 'extras.view_script' + def job_to_result_array(self, job): + results = [] + if job.data: + if 'log' in job.data: + for log in job.data['log']: + result = { + 'method': None, + 'time': log.get('time', None), + 'level': log.get('level', None), + 'object': log.get('object', None), + 'message': log.get('message', None), + } + results.append(result) + else: + for test in job.data: + if 'log' in test: + for time, level, obj, url, message in test['log']: + result = { + 'method': test, + 'time': time, + 'level': level, + 'object': obj, + 'url': url, + 'message': message, + } + + return data + def get(self, request, **kwargs): job = get_object_or_404(Job.objects.all(), pk=kwargs.get('job_pk'))