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

Allow user to override module name

This commit is contained in:
Jeremy Stretch
2019-08-13 09:09:12 -04:00
parent 44fd0ebb2d
commit 3d6a583ce4
2 changed files with 8 additions and 0 deletions

View File

@ -37,6 +37,12 @@ Defining variables is optional: You may create a script with only a `run()` meth
Returning output from your script is optional. Any raw output generated by the script will be displayed under the "output" tab in the UI. Returning output from your script is optional. Any raw output generated by the script will be displayed under the "output" tab in the UI.
## Module Attributes
### `name`
You can define `name` within a script module (the Python file which contains one or more scripts) to set the module name. If `name` is not defined, the filename will be used.
## Script Attributes ## Script Attributes
Script attributes are defined under a class named `Meta` within the script. These are optional, but encouraged. Script attributes are defined under a class named `Meta` within the script. These are optional, but encouraged.

View File

@ -233,6 +233,8 @@ def get_scripts():
# defined. # defined.
for importer, module_name, _ in pkgutil.iter_modules([settings.SCRIPTS_ROOT]): for importer, module_name, _ in pkgutil.iter_modules([settings.SCRIPTS_ROOT]):
module = importer.find_module(module_name).load_module(module_name) module = importer.find_module(module_name).load_module(module_name)
if hasattr(module, 'name'):
module_name = module.name
module_scripts = OrderedDict() module_scripts = OrderedDict()
for name, cls in inspect.getmembers(module, is_script): for name, cls in inspect.getmembers(module, is_script):
module_scripts[name] = cls module_scripts[name] = cls