mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
55 lines
1.7 KiB
Python
55 lines
1.7 KiB
Python
from dcim.models import Site
|
|
from extras.scripts import Script, BooleanVar, IntegerVar, ObjectVar, StringVar
|
|
|
|
|
|
class NoInputScript(Script):
|
|
description = "This script does not require any input"
|
|
|
|
def run(self, data):
|
|
|
|
self.log_debug("This a debug message.")
|
|
self.log_info("This an info message.")
|
|
self.log_success("This a success message.")
|
|
self.log_warning("This a warning message.")
|
|
self.log_failure("This a failure message.")
|
|
|
|
|
|
class DemoScript(Script):
|
|
name = "Script Demo"
|
|
description = "A quick demonstration of the available field types"
|
|
|
|
my_string1 = StringVar(
|
|
description="Input a string between 3 and 10 characters",
|
|
min_length=3,
|
|
max_length=10
|
|
)
|
|
my_string2 = StringVar(
|
|
description="This field enforces a regex: three letters followed by three numbers",
|
|
regex=r'[a-z]{3}\d{3}'
|
|
)
|
|
my_number = IntegerVar(
|
|
description="Pick a number between 1 and 255 (inclusive)",
|
|
min_value=1,
|
|
max_value=255
|
|
)
|
|
my_boolean = BooleanVar(
|
|
description="Use the checkbox to toggle true/false"
|
|
)
|
|
my_object = ObjectVar(
|
|
description="Select a NetBox site",
|
|
queryset=Site.objects.all()
|
|
)
|
|
|
|
def run(self, data):
|
|
|
|
self.log_info("Your string was {}".format(data['my_string1']))
|
|
self.log_info("Your second string was {}".format(data['my_string2']))
|
|
self.log_info("Your number was {}".format(data['my_number']))
|
|
if data['my_boolean']:
|
|
self.log_info("You ticked the checkbox")
|
|
else:
|
|
self.log_info("You did not tick the checkbox")
|
|
self.log_info("You chose the sites {}".format(data['my_object']))
|
|
|
|
return "Here's some output"
|