2
0
Эх сурвалжийг харах

Save JobResult even for a script run with commit=False

Glenn Matthews 5 жил өмнө
parent
commit
d8b0a11a49

+ 4 - 2
netbox/extras/scripts.py

@@ -415,8 +415,6 @@ def run_script(data, request, commit=True, *args, **kwargs):
     try:
     try:
         with transaction.atomic():
         with transaction.atomic():
             script.output = script.run(**kwargs)
             script.output = script.run(**kwargs)
-            job_result.data = ScriptOutputSerializer(script).data
-            job_result.set_status(JobResultStatusChoices.STATUS_COMPLETED)
 
 
             if not commit:
             if not commit:
                 raise AbortTransaction()
                 raise AbortTransaction()
@@ -434,6 +432,10 @@ def run_script(data, request, commit=True, *args, **kwargs):
         job_result.set_status(JobResultStatusChoices.STATUS_ERRORED)
         job_result.set_status(JobResultStatusChoices.STATUS_ERRORED)
 
 
     finally:
     finally:
+        if job_result.status != JobResultStatusChoices.STATUS_ERRORED:
+            job_result.data = ScriptOutputSerializer(script).data
+            job_result.set_status(JobResultStatusChoices.STATUS_COMPLETED)
+
         if not commit:
         if not commit:
             # Delete all pending changelog entries
             # Delete all pending changelog entries
             purge_changelog.send(Script)
             purge_changelog.send(Script)