mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Fixes #4300: Pass "commit" argument when executing scripts via REST API
This commit is contained in:
@ -9,11 +9,12 @@
|
|||||||
|
|
||||||
## Bug Fixes
|
## Bug Fixes
|
||||||
|
|
||||||
* [#4277](https://github.com/netbox-community/netbox/issues/4277) - Fix filtering of clusters by tenant
|
|
||||||
* [#4274](https://github.com/netbox-community/netbox/issues/4274) - Fix incorrect schema definition of `int` type choicefields
|
* [#4274](https://github.com/netbox-community/netbox/issues/4274) - Fix incorrect schema definition of `int` type choicefields
|
||||||
|
* [#4277](https://github.com/netbox-community/netbox/issues/4277) - Fix filtering of clusters by tenant
|
||||||
* [#4282](https://github.com/netbox-community/netbox/issues/4282) - Fix label on export button for device types
|
* [#4282](https://github.com/netbox-community/netbox/issues/4282) - Fix label on export button for device types
|
||||||
* [#4285](https://github.com/netbox-community/netbox/issues/4285) - Include A/Z termination sites in provider circuits table
|
* [#4285](https://github.com/netbox-community/netbox/issues/4285) - Include A/Z termination sites in provider circuits table
|
||||||
* [#4295](https://github.com/netbox-community/netbox/issues/4295) - Fix assignment of parent LAG during interface bulk edit
|
* [#4295](https://github.com/netbox-community/netbox/issues/4295) - Fix assignment of parent LAG during interface bulk edit
|
||||||
|
* [#4300](https://github.com/netbox-community/netbox/issues/4300) - Pass "commit" argument when executing scripts via REST API
|
||||||
* [#4301](https://github.com/netbox-community/netbox/issues/4301) - Fix exception when deleting device type with components
|
* [#4301](https://github.com/netbox-community/netbox/issues/4301) - Fix exception when deleting device type with components
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -14,7 +14,7 @@ from extras.models import (
|
|||||||
ConfigContext, CustomFieldChoice, ExportTemplate, Graph, ImageAttachment, ObjectChange, ReportResult, Tag,
|
ConfigContext, CustomFieldChoice, ExportTemplate, Graph, ImageAttachment, ObjectChange, ReportResult, Tag,
|
||||||
)
|
)
|
||||||
from extras.reports import get_report, get_reports
|
from extras.reports import get_report, get_reports
|
||||||
from extras.scripts import get_script, get_scripts
|
from extras.scripts import get_script, get_scripts, run_script
|
||||||
from utilities.api import FieldChoicesViewSet, IsAuthenticatedOrLoginNotRequired, ModelViewSet
|
from utilities.api import FieldChoicesViewSet, IsAuthenticatedOrLoginNotRequired, ModelViewSet
|
||||||
from . import serializers
|
from . import serializers
|
||||||
|
|
||||||
@ -265,8 +265,9 @@ class ScriptViewSet(ViewSet):
|
|||||||
input_serializer = serializers.ScriptInputSerializer(data=request.data)
|
input_serializer = serializers.ScriptInputSerializer(data=request.data)
|
||||||
|
|
||||||
if input_serializer.is_valid():
|
if input_serializer.is_valid():
|
||||||
output = script.run(input_serializer.data['data'])
|
data = input_serializer.data['data']
|
||||||
script.output = output
|
commit = input_serializer.data['commit']
|
||||||
|
script.output, execution_time = run_script(script, data, request, commit)
|
||||||
output_serializer = serializers.ScriptOutputSerializer(script)
|
output_serializer = serializers.ScriptOutputSerializer(script)
|
||||||
|
|
||||||
return Response(output_serializer.data)
|
return Response(output_serializer.data)
|
||||||
|
@ -582,7 +582,7 @@ class ScriptTest(APITestCase):
|
|||||||
var2 = IntegerVar()
|
var2 = IntegerVar()
|
||||||
var3 = BooleanVar()
|
var3 = BooleanVar()
|
||||||
|
|
||||||
def run(self, data):
|
def run(self, data, commit=True):
|
||||||
|
|
||||||
self.log_info(data['var1'])
|
self.log_info(data['var1'])
|
||||||
self.log_success(data['var2'])
|
self.log_success(data['var2'])
|
||||||
|
Reference in New Issue
Block a user