Actions¶
add_config¶
- main(attributes)[source]¶
Appends config section to startup-config.
This action is dual-supervisor compatible.
- url¶
path to source config/template
- substitution_mode¶
loose|strict (default: loose)
- variables¶
list of value substitutions
- Special_attributes:
- NODE: API object - see documentation for details
Example
- action: add_config attributes: url: files/templates/ma1.template variables: ipaddress: allocate('mgmt_subnet') name: "configure ma1" onstart: "Starting to configure ma1" onsuccess: "SUCCESS: ma1 configure" onfailure: "FAIL: IM provisioning@example.com for help"
copy_file¶
- main(attributes)[source]¶
Copies file to the switch.
Copies file based on the values of ‘src_url’ and ‘dst_url’ attributes (‘dst_url’ should point to the destination folder).
This action is NOT dual-supervisor compatible.
- src_url¶
path to source file
- dst_url¶
path to destination
- mode¶
octal mode for destination path
- overwrite¶
replace|if-missing|backup (default: replace)
- ‘overwrite’ values:
- ‘replace’: the file is copied to the switch regardless of whether there is already a file with the same name at the destination;
- ‘if-missing’: the file is copied to the switch only if there is not already a file with the same name at the destination; if there is, then the action is a no-op;
- ‘backup’: the file is copied to the switch; if there is already another file at the destination, that file is renamed by appending the ‘.backup’ suffix
- Special_attributes:
- NODE: API object - see documentation for details
Example
- action: copy_file always_execute: true attributes: dst_url: /mnt/flash/ mode: 777 overwrite: if-missing src_url: files/automate/bgpautoinf.py name: "automate BGP peer interface config"
install_cli_plugin¶
- main(attributes)[source]¶
Installs CliPlugin.
This action is NOT dual-supervisor compatible.
- url¶
path to the CliPlugin
- Special_attributes:
- NODE: API object - see documentation for details
Example
- action: install_image always_execute: true attributes: url: files/my_cli_plugin name: "install cli plugin"
install_extension¶
- main(attributes)[source]¶
Installs extension.
If ‘force’ is set, then the dependency checks are overridden.
This action is NOT dual-supervisor compatible.
- url¶
path to source extension file
- force¶
ignore validation errors (default: false)
- Special_attributes:
- NODE: API object - see documentation for details
Example
- action: install_image always_execute: true attributes: url: files/telemetry-1.0-1.rpm name: "Install Telemetry"
install_image¶
- main(attributes)[source]¶
Installs new software image.
If the current software image is the same as the ‘version’ attribute value, then this action is a no-op. Otherwise, the action will replace the existing software image.
For dual supervisor systems, the image on the active supervisor is used as reference.
This action is dual-supervisor compatible.
- url¶
path to source image file
- version¶
EOS version of new image file
- Special_attributes:
- NODE: API object - see documentation for details
Example
- action: install_image always_execute: true attributes: url: files/images/vEOS.swi version: 4.13.5F name: "validate image" onstart: "Starting to install image" onsuccess: "SUCCESS: 4.13.5F installed" onfailure: "FAIL: IM nick@example.com for help"
replace_config¶
- main(attributes)[source]¶
Replaces /mnt/flash/startup-config with new file.
This action is dual-supervisor compatible.
- url¶
path to source config/template
- Special_attributes:
- NODE: API object - see documentation for details
Example
- action: replace_config attributes: url: files/configs/tor-startup-config name: "tor config"
send_email¶
- main(attributes)[source]¶
Sends an email using an SMTP relay host
Generates an email from the bootstrap process and routes it through a smarthost. The parameters value expects a dictionary with the following values in order for this function to work properly.
{ 'smarthost': <hostname of smarthost>, 'sender': <from email address> 'receivers': [ <array of recipients to send email to> ], 'subject': <subject line of the message>, 'body': <the message body>, 'attachments': [ <array of files to attach> ], 'commands': [ <array of commands to run and attach> ] }
The required fields for this function are smarthost, sender, and receivers. All other fields are optional.
This action is dual-supervisor compatible.
Parameters: - attributes (list) – list of attributes; use attributes.get(<ATTRIBUTE_NAME>) to read attribute values
- node (internal) – attributes.get(‘NODE’) API: see documentation
- smarthost – hostname of smarthos>,
- sender – from email addres>
- receivers – [ <array of recipients to send email to> ]
- subject – subject line of the message
- body – the message body
- attachments – [ <array of files to attach> ]
- commands – [ <array of commands to run and attach> ]
Example
- action: send_mail attributes: smarthost: smtp.example.com from: noreply@example.com subject: This is a test message from a switch in ZTP receivers: bob@exmple.com helen@example.com body: Please see the attached 'show version' commands: show version
run_bash_script¶
- main(attributes)[source]¶
Runs a script in EOS from bash.
This action is dual-supervisor compatible.
- url¶
path to source script/template
- variables¶
optional
list of value substitutions (for a script template)
- Special_attributes:
- NODE: API object - see documentation for details
Example
- action: run_bash_script attributes: url: files/scripts/install_script variables: version: 1.2.3 name: 'install temp package'
run_cli_commands¶
- main(attributes)[source]¶
Runs a set of EOS commands, starting from enable mode.
This action is dual-supervisor compatible.
- url¶
path to source command list/template
- variables¶
optional
list of value substitutions (for a template)
- Special_attributes:
- NODE: API object - see documentation for details
Example
- action: run_cli_commands attributes: url: files/templates/ma1.template variables: ipaddress: allocate('mgmt_subnet') name: 'configure ma1'