فهرست منبع

#13334: Capture exception class when recording job error

Jeremy Stretch 2 سال پیش
والد
کامیت
0c9919a5e8
4فایلهای تغییر یافته به همراه5 افزوده شده و 5 حذف شده
  1. 1 1
      netbox/core/jobs.py
  2. 1 1
      netbox/extras/management/commands/runscript.py
  3. 2 2
      netbox/extras/reports.py
  4. 1 1
      netbox/extras/scripts.py

+ 1 - 1
netbox/core/jobs.py

@@ -25,7 +25,7 @@ def sync_datasource(job, *args, **kwargs):
         job.terminate()
 
     except Exception as e:
-        job.terminate(status=JobStatusChoices.STATUS_ERRORED, error=str(e))
+        job.terminate(status=JobStatusChoices.STATUS_ERRORED, error=repr(e))
         DataSource.objects.filter(pk=datasource.pk).update(status=DataSourceStatusChoices.FAILED)
         if type(e) in (SyncError, JobTimeoutException):
             logging.error(e)

+ 1 - 1
netbox/extras/management/commands/runscript.py

@@ -59,7 +59,7 @@ class Command(BaseCommand):
                 logger.error(f"Exception raised during script execution: {e}")
                 clear_events.send(request)
                 job.data = ScriptOutputSerializer(script).data
-                job.terminate(status=JobStatusChoices.STATUS_ERRORED, error=str(e))
+                job.terminate(status=JobStatusChoices.STATUS_ERRORED, error=repr(e))
 
             logger.info(f"Script completed in {job.duration}")
 

+ 2 - 2
netbox/extras/reports.py

@@ -41,7 +41,7 @@ def run_report(job, *args, **kwargs):
     try:
         report.run(job)
     except Exception as e:
-        job.terminate(status=JobStatusChoices.STATUS_ERRORED, error=str(e))
+        job.terminate(status=JobStatusChoices.STATUS_ERRORED, error=repr(e))
         logging.error(f"Error during execution of report {job.name}")
     finally:
         # Schedule the next job if an interval has been set
@@ -230,7 +230,7 @@ class Report(object):
             stacktrace = traceback.format_exc()
             self.log_failure(None, f"An exception occurred: {type(e).__name__}: {e} <pre>{stacktrace}</pre>")
             logger.error(f"Exception raised during report execution: {e}")
-            job.terminate(status=JobStatusChoices.STATUS_ERRORED, error=str(e))
+            job.terminate(status=JobStatusChoices.STATUS_ERRORED, error=repr(e))
 
         # Perform any post-run tasks
         self.post_run()

+ 1 - 1
netbox/extras/scripts.py

@@ -527,7 +527,7 @@ def run_script(data, job, request=None, commit=True, **kwargs):
                 logger.error(f"Exception raised during script execution: {e}")
             script.log_info("Database changes have been reverted due to error.")
             job.data = ScriptOutputSerializer(script).data
-            job.terminate(status=JobStatusChoices.STATUS_ERRORED, error=str(e))
+            job.terminate(status=JobStatusChoices.STATUS_ERRORED, error=repr(e))
             if request:
                 clear_events.send(request)