mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Log a warning for scripts whose run() method does not accept a commit argument
This commit is contained in:
@ -37,7 +37,7 @@ The `run()` method should accept two arguments:
|
|||||||
* `commit` - A boolean indicating whether database changes will be committed.
|
* `commit` - A boolean indicating whether database changes will be committed.
|
||||||
|
|
||||||
!!! note
|
!!! note
|
||||||
The `commit` argument was introduced in NetBox v2.7.8. Backward compatibility is maintained for scripts which accept only the `data` argument, however moving forward scripts should accept both arguments.
|
The `commit` argument was introduced in NetBox v2.7.8. Backward compatibility is maintained for scripts which accept only the `data` argument, however beginning with v2.10 NetBox will require the `run()` method of every script to accept both arguments. (Either argument may still be ignored within the method.)
|
||||||
|
|
||||||
Defining variables is optional: You may create a script with only a `run()` method if no user input is needed.
|
Defining variables is optional: You may create a script with only a `run()` method if no user input is needed.
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import logging
|
|||||||
import os
|
import os
|
||||||
import pkgutil
|
import pkgutil
|
||||||
import traceback
|
import traceback
|
||||||
|
import warnings
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
@ -405,12 +406,16 @@ def run_script(data, request, commit=True, *args, **kwargs):
|
|||||||
# Add the current request as a property of the script
|
# Add the current request as a property of the script
|
||||||
script.request = request
|
script.request = request
|
||||||
|
|
||||||
|
# TODO: Drop backward-compatibility for absent 'commit' argument in v2.10
|
||||||
# Determine whether the script accepts a 'commit' argument (this was introduced in v2.7.8)
|
# Determine whether the script accepts a 'commit' argument (this was introduced in v2.7.8)
|
||||||
kwargs = {
|
kwargs = {
|
||||||
'data': data
|
'data': data
|
||||||
}
|
}
|
||||||
if 'commit' in inspect.signature(script.run).parameters:
|
if 'commit' in inspect.signature(script.run).parameters:
|
||||||
kwargs['commit'] = commit
|
kwargs['commit'] = commit
|
||||||
|
else:
|
||||||
|
warnings.warn(f"The run() method of script {script} should support a 'commit' argument. This will be required "
|
||||||
|
f"beginning with NetBox v2.10.")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
|
Reference in New Issue
Block a user