From 6a585eac13e8cc1efce6e83a86378081455dc74a Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 8 Aug 2024 09:51:31 -0400 Subject: [PATCH] Fixes #23: Branch job runners for sync & merge should suppress AbortTransaction exceptions --- netbox_branching/jobs.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/netbox_branching/jobs.py b/netbox_branching/jobs.py index ee610f2..3032bc2 100644 --- a/netbox_branching/jobs.py +++ b/netbox_branching/jobs.py @@ -4,6 +4,7 @@ from core.signals import handle_changed_object, handle_deleted_object from netbox.jobs import JobRunner +from utilities.exceptions import AbortTransaction from .utilities import ListHandler __all__ = ( @@ -77,6 +78,8 @@ def run(self, commit=True, *args, **kwargs): try: branch = self.job.object branch.sync(user=self.job.user, commit=commit) + except AbortTransaction: + logger.info("Dry run completed; rolling back changes") except Exception as e: # TODO: Can JobRunner be extended to handle this more cleanly? # Ensure that signal handlers are reconnected @@ -101,5 +104,8 @@ def run(self, commit=True, *args, **kwargs): logger.addHandler(ListHandler(queue=get_job_log(self.job))) # Merge the Branch - branch = self.job.object - branch.merge(user=self.job.user, commit=commit) + try: + branch = self.job.object + branch.merge(user=self.job.user, commit=commit) + except AbortTransaction: + logger.info("Dry run completed; rolling back changes")