1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Fixes #5316: Dry running scripts should not trigger webhooks

This commit is contained in:
Jeremy Stretch
2020-11-09 16:22:45 -05:00
parent ab33b3aa84
commit dc7da4f0f6
2 changed files with 14 additions and 2 deletions

View File

@ -441,8 +441,11 @@ def run_script(data, request, commit=True, *args, **kwargs):
f"with NetBox v2.10."
)
with change_logging(request):
def _run_script():
"""
Core script execution task. We capture this within a subfunction to allow for conditionally wrapping it with
the change_logging context manager (which is bypassed if commit == False).
"""
try:
with transaction.atomic():
script.output = script.run(**kwargs)
@ -469,6 +472,14 @@ def run_script(data, request, commit=True, *args, **kwargs):
logger.info(f"Script completed in {job_result.duration}")
# Execute the script. If commit is True, wrap it with the change_logging context manager to ensure we process
# change logging, webhooks, etc.
if commit:
with change_logging(request):
_run_script()
else:
_run_script()
# Delete any previous terminal state results
JobResult.objects.filter(
obj_type=job_result.obj_type,