scrapli_send_commands

This plugin uses nornir-scrapli send_command task to send multiple commands to devices pre-processing commands accordingly.

Pre-processing includes:

  • Check and if any - retrieve per-host commands from host’s inventory data task.host.data["__task__"]["commands"] or from task.host.data["__task__"]["filename"]

  • If command is a multi-line string, split it to individual lines or form a list with single command

  • Iterate over commands list and remove empty strings

  • Iterate over commands and replace new_line_char with \n new line

Next, commands send one by one to device using send_command task plugin, each task named after the command being sent. Sleep for given interval between sending commands.

Dependencies:

Sample Usage

Code to invoke scrapli_send_commands task:

from nornir import InitNornir
from nornir_salt import scrapli_send_commands

nr = InitNornir(config_file="config.yaml")

output = nr.run(
    task=scrapli_send_commands,
    commands=["show run", "show clock"]
)

Task scrapli_send_commands returns Nornir results object with individual tasks names set equal to commands sent to device.

API Reference

nornir_salt.plugins.tasks.scrapli_send_commands.scrapli_send_commands(task: nornir.core.task.Task, commands=None, interval=0.01, new_line_char='_br_', **kwargs)

Nornir Task function to send show commands to devices using nornir_scrapli.tasks.send_command plugin

Per-host commands can be provided using host’s object data attribute with __task__ key with value set to dictionary with commands key containing a list of or a multiline string of commands to send to device, e.g.:

print(host.data["__task__"]["commands"])

["ping 1.1.1.1 source 1.1.1.2", "show clock"]
Parameters
  • commands – (list or str) list or multiline string of commands to send to device

  • interval – (int) interval between sending commands, default 0.01s

  • new_line_char – (str) characters to replace in commands with new line \n before sending command to device, default is _br_, useful to simulate enter key

  • kwargs – (dict) any additional arguments to pass to scrapli send_command

Return result

Nornir result object with task execution results