# salt.modules.napalm_mod

## NAPALM helpers

Helpers for the NAPALM modules.

Added in version 2017.7.0.

salt.modules.napalm_mod.alive(**kwargs)

  Returns the alive status of the connection layer. The output is a dictionary under the usual dictionary output of the NAPALM modules.

  CLI Example:

      salt '*' napalm.alive

  Output Example:

      result: True
      out:
          is_alive: False
      comment: ''

salt.modules.napalm_mod.call(method, *args, **kwargs)

  Execute arbitrary methods from the NAPALM library. To see the expected output, please consult the NAPALM documentation.

  Note

  This feature is not recommended to be used in production. It should be used for testing only!

  CLI Example:

      salt '*' napalm.call get_lldp_neighbors
      salt '*' napalm.call get_firewall_policies
      salt '*' napalm.call get_bgp_config group='my-group'

salt.modules.napalm_mod.compliance_report(filepath=None, string=None, renderer='jinja|yaml', **kwargs)

  Return the compliance report.

  filepath

    The absolute path to the validation file.

    Changed in version 2019.2.0.

    Beginning with release codename `2019.2.0`, this function has been enhanced, to be able to leverage the multi-engine template rendering of Salt, besides the possibility to retrieve the file source from remote systems, the URL schemes supported being:

    - `salt://`

    - `http://` and `https://`

    - `ftp://`

    - `s3://`

    - `swift:/`

    Or on the local file system (on the Minion).

    Note

    The rendering result does not necessarily need to be YAML, instead it can be any format interpreted by Salt's rendering pipeline (including pure Python).

  string

    Added in version 2019.2.0.

    The compliance report send as inline string, to be used as the file to send through the renderer system. Note, not all renderer modules can work with strings; the 'py' renderer requires a file, for example.

  renderer: `jinja|yaml`

    Added in version 2019.2.0.

    The renderer pipe to send the file through; this is overridden by a "she-bang" at the top of the file.

  kwargs

    Changed in version 2019.2.0.

    Keyword args to pass to Salt's compile_template() function.

  CLI Example:

      salt '*' napalm.compliance_report ~/validate.yml
      salt '*' napalm.compliance_report salt://path/to/validator.sls

  Validation File Example (pure YAML):

      - get_facts:
          os_version: 4.17

      - get_interfaces_ip:
          Management1:
            ipv4:
              10.0.2.14:
                prefix_length: 24
              _mode: strict

  Validation File Example (as Jinja + YAML):

      - get_facts:
          os_version: {{ grains.version }}
      - get_interfaces_ip:
          Loopback0:
            ipv4:
              {{ grains.lo0.ipv4 }}:
                prefix_length: 24
              _mode: strict
      - get_bgp_neighbors: {{ pillar.bgp.neighbors }}

  Output Example:

      device1:
          ----------
          comment:
          out:
              ----------
              complies:
                  False
              get_facts:
                  ----------
                  complies:
                      False
                  extra:
                  missing:
                  present:
                      ----------
                      os_version:
                          ----------
                          actual_value:
                              15.1F6-S1.4
                          complies:
                              False
                          nested:
                              False
              get_interfaces_ip:
                  ----------
                  complies:
                      False
                  extra:
                  missing:
                      - Management1
                  present:
                      ----------
              skipped:
          result:
              True

salt.modules.napalm_mod.config_diff_text(source1='candidate', candidate_path=None, source2='running', running_path=None)

  Added in version 2019.2.0.

  Return the diff, as text, between the two different configuration sources. The sources can be either specified using the `source1` and `source2` arguments when retrieving from the managed network device.

  source1: `candidate`

    The source from where to retrieve the configuration to be compared with. Available options: `candidate`, `running`, `startup`. Default: `candidate`.

  candidate_path

    Absolute or remote path from where to load the candidate configuration text. This argument allows any URI supported by `cp.get_url`), e.g., `salt://`, `https://`, `s3://`, `ftp:/`, etc.

  source2: `running`

    The source from where to retrieve the configuration to compare with. Available options: `candidate`, `running`, `startup`. Default: `running`.

  running_path

    Absolute or remote path from where to load the running configuration text. This argument allows any URI supported by `cp.get_url`), e.g., `salt://`, `https://`, `s3://`, `ftp:/`, etc.

  saltenv: `base`

    Salt fileserver environment from which to retrieve the file. Ignored if `candidate_path` or `running_path` is not a `salt://` URL.

  CLI Example:

      salt '*' napalm.config_diff_text
      salt '*' napalm.config_diff_text candidate_path=https://bit.ly/2mAdq7z
      # Would compare the running config with the configuration available at
      # https://bit.ly/2mAdq7z

salt.modules.napalm_mod.config_diff_tree(source1='candidate', candidate_path=None, source2='running', running_path=None)

  Added in version 2019.2.0.

  Return the diff, as Python dictionary, between two different sources. The sources can be either specified using the `source1` and `source2` arguments when retrieving from the managed network device.

  source1: `candidate`

    The source from where to retrieve the configuration to be compared with. Available options: `candidate`, `running`, `startup`. Default: `candidate`.

  candidate_path

    Absolute or remote path from where to load the candidate configuration text. This argument allows any URI supported by `cp.get_url`), e.g., `salt://`, `https://`, `s3://`, `ftp:/`, etc.

  source2: `running`

    The source from where to retrieve the configuration to compare with. Available options: `candidate`, `running`, `startup`. Default: `running`.

  running_path

    Absolute or remote path from where to load the running configuration text. This argument allows any URI supported by `cp.get_url`), e.g., `salt://`, `https://`, `s3://`, `ftp:/`, etc.

  saltenv: `base`

    Salt fileserver environment from which to retrieve the file. Ignored if `candidate_path` or `running_path` is not a `salt://` URL.

  CLI Example:

      salt '*' napalm.config_diff_text
      salt '*' napalm.config_diff_text candidate_path=https://bit.ly/2mAdq7z
      # Would compare the running config with the configuration available at
      # https://bit.ly/2mAdq7z

  CLI Example:

      salt '*' napalm.config_diff_tree
      salt '*' napalm.config_diff_tree running startup

salt.modules.napalm_mod.config_filter_lines(parent_regex, child_regex, source='running')

  Added in version 2019.2.0.

  Return a list of detailed matches, for the configuration blocks (parent-child relationship) whose parent respects the regular expressions configured via the `parent_regex` argument, and the child matches the `child_regex` regular expression. The result is a list of dictionaries with the following keys:

  - `match`: a boolean value that tells whether `child_regex` matched any children lines.

  - `parent`: the parent line (as text).

  - `child`: the child line (as text). If no child line matched, this field will be `None`.

  Note

  This function is only available only when the underlying library ciscoconfparse is installed. See `ciscoconfparse module` for more details.

  parent_regex

    The regular expression to match the parent configuration lines against.

  child_regex

    The regular expression to match the child configuration lines against.

  source: `running`

    The configuration type to retrieve from the network device. Default: `running`. Available options: `running`, `startup`, `candidate`.

  CLI Example:

      salt '*' napalm.config_filter_lines '^interface' 'ip address'
      salt '*' napalm.config_filter_lines '^interface' 'shutdown' source=candidate

salt.modules.napalm_mod.config_find_lines(regex, source='running')

  Added in version 2019.2.0.

  Return the configuration lines that match the regular expressions from the `regex` argument. The configuration is read from the network device interrogated.

  regex

    The regular expression to match the configuration lines against.

  source: `running`

    The configuration type to retrieve from the network device. Default: `running`. Available options: `running`, `startup`, `candidate`.

  CLI Example:

      salt '*' napalm.config_find_lines '^interface Ethernet1\d'

salt.modules.napalm_mod.config_lines_w_child(parent_regex, child_regex, source='running')

  > Added in version 2019.2.0.

  Return the configuration lines that match the regular expressions from the `parent_regex` argument, having child lines matching `child_regex`. The configuration is read from the network device interrogated.

  Note

  This function is only available only when the underlying library ciscoconfparse is installed. See `ciscoconfparse module` for more details.

  parent_regex

    The regular expression to match the parent configuration lines against.

  child_regex

    The regular expression to match the child configuration lines against.

  source: `running`

    The configuration type to retrieve from the network device. Default: `running`. Available options: `running`, `startup`, `candidate`.

  CLI Example:

      salt '*' napalm.config_lines_w_child '^interface' 'ip address'
      salt '*' napalm.config_lines_w_child '^interface' 'shutdown' source=candidate

salt.modules.napalm_mod.config_lines_wo_child(parent_regex, child_regex, source='running')

  > Added in version 2019.2.0.

  Return the configuration lines that match the regular expressions from the `parent_regex` argument, having the child lines not matching `child_regex`. The configuration is read from the network device interrogated.

  Note

  This function is only available only when the underlying library ciscoconfparse is installed. See `ciscoconfparse module` for more details.

  parent_regex

    The regular expression to match the parent configuration lines against.

  child_regex

    The regular expression to match the child configuration lines against.

  source: `running`

    The configuration type to retrieve from the network device. Default: `running`. Available options: `running`, `startup`, `candidate`.

  CLI Example:

      salt '*' napalm.config_lines_wo_child '^interface' 'ip address'
      salt '*' napalm.config_lines_wo_child '^interface' 'shutdown' source=candidate

salt.modules.napalm_mod.config_merge_diff(source='running', merge_config=None, merge_path=None, saltenv='base')

  Added in version 2019.2.0.

  Return the merge diff, as text, after merging the merge config into the configuration source requested (without loading the config on the device).

  source: `running`

    The configuration type to retrieve from the network device. Default: `running`. Available options: `running`, `startup`, `candidate`.

  merge_config

    The config to be merged into the initial config, sent as text. This argument is ignored when `merge_path` is set.

  merge_path

    Absolute or remote path from where to load the merge configuration text. This argument allows any URI supported by `cp.get_url`), e.g., `salt://`, `https://`, `s3://`, `ftp:/`, etc.

  saltenv: `base`

    Salt fileserver environment from which to retrieve the file. Ignored if `merge_path` is not a `salt://` URL.

  CLI Example:

      salt '*' napalm.config_merge_diff merge_path=salt://path/to/merge.cfg

salt.modules.napalm_mod.config_merge_text(source='running', merge_config=None, merge_path=None, saltenv='base')

  Added in version 2019.2.0.

  Return the merge result of the configuration from `source` with the merge configuration, as plain text (without loading the config on the device).

  source: `running`

    The configuration type to retrieve from the network device. Default: `running`. Available options: `running`, `startup`, `candidate`.

  merge_config

    The config to be merged into the initial config, sent as text. This argument is ignored when `merge_path` is set.

  merge_path

    Absolute or remote path from where to load the merge configuration text. This argument allows any URI supported by `cp.get_url`), e.g., `salt://`, `https://`, `s3://`, `ftp:/`, etc.

  saltenv: `base`

    Salt fileserver environment from which to retrieve the file. Ignored if `merge_path` is not a `salt://` URL.

  CLI Example:

      salt '*' napalm.config_merge_text merge_path=salt://path/to/merge.cfg

salt.modules.napalm_mod.config_merge_tree(source='running', merge_config=None, merge_path=None, saltenv='base')

  Added in version 2019.2.0.

  Return the merge tree of the `initial_config` with the `merge_config`, as a Python dictionary.

  source: `running`

    The configuration type to retrieve from the network device. Default: `running`. Available options: `running`, `startup`, `candidate`.

  merge_config

    The config to be merged into the initial config, sent as text. This argument is ignored when `merge_path` is set.

  merge_path

    Absolute or remote path from where to load the merge configuration text. This argument allows any URI supported by `cp.get_url`), e.g., `salt://`, `https://`, `s3://`, `ftp:/`, etc.

  saltenv: `base`

    Salt fileserver environment from which to retrieve the file. Ignored if `merge_path` is not a `salt://` URL.

  CLI Example:

      salt '*' napalm.config_merge_tree merge_path=salt://path/to/merge.cfg

salt.modules.napalm_mod.config_tree(source='running', with_tags=False)

  Added in version 2019.2.0.

  Transform Cisco IOS style configuration to structured Python dictionary. Depending on the value of the `with_tags` argument, this function may provide different views, valuable in different situations.

  source: `running`

    The configuration type to retrieve from the network device. Default: `running`. Available options: `running`, `startup`, `candidate`.

  with_tags: `False`

    Whether this function should return a detailed view, with tags.

  CLI Example:

      salt '*' napalm.config_tree

salt.modules.napalm_mod.junos_call(fun, *args, **kwargs)

  Added in version 2019.2.0.

  Execute an arbitrary function from the `junos execution module`. To check what `args` and `kwargs` you must send to the function, please consult the appropriate documentation.

  fun

    The name of the function. E.g., `set_hostname`.

  args

    List of arguments to send to the `junos` function invoked.

  kwargs

    Dictionary of key-value arguments to send to the `juno` function invoked.

  CLI Example:

      salt '*' napalm.junos_fun cli 'show system commit'

salt.modules.napalm_mod.junos_cli(command, format=None, dev_timeout=None, dest=None, **kwargs)

  Added in version 2019.2.0.

  Execute a CLI command and return the output in the specified format.

  command

    The command to execute on the Junos CLI.

  format: `text`

    Format in which to get the CLI output (either `text` or `xml`).

  dev_timeout: `30`

    The NETCONF RPC timeout (in seconds).

  dest

    Destination file where the RPC output is stored. Note that the file will be stored on the Proxy Minion. To push the files to the Master, use `cp.push`.

  CLI Example:

      salt '*' napalm.junos_cli 'show lldp neighbors'

salt.modules.napalm_mod.junos_commit(**kwargs)

  Added in version 2019.2.0.

  Commit the changes loaded in the candidate configuration.

  dev_timeout: `30`

    The NETCONF RPC timeout (in seconds).

  comment

    Provide a comment for the commit.

  confirm

    Provide time in minutes for commit confirmation. If this option is specified, the commit will be rolled back in the specified amount of time unless the commit is confirmed.

  sync: `False`

    When `True`, on dual control plane systems, requests that the candidate configuration on one control plane be copied to the other control plane, checked for correct syntax, and committed on both Routing Engines.

  force_sync: `False`

    When `True`, on dual control plane systems, force the candidate configuration on one control plane to be copied to the other control plane.

  full

    When `True`, requires all the daemons to check and evaluate the new configuration.

  detail

    When `True`, return commit detail.

  CLI Examples:

      salt '*' napalm.junos_commit comment='Commitiing via Salt' detail=True
      salt '*' napalm.junos_commit dev_timeout=60 confirm=10
      salt '*' napalm.junos_commit sync=True dev_timeout=90

salt.modules.napalm_mod.junos_copy_file(src, dst, **kwargs)

  Added in version 2019.2.0.

  Copies the file on the remote Junos device.

  src

    The source file path. This argument accepts the usual Salt URIs (e.g., `salt://`, `http://`, `https://`, `s3://`, `ftp://`, etc.).

  dst

    The destination path on the device where to copy the file.

  CLI Example:

      salt '*' napalm.junos_copy_file https://example.com/junos.cfg /var/tmp/myjunos.cfg

salt.modules.napalm_mod.junos_facts(**kwargs)

  Added in version 2019.2.0.

  The complete list of Junos facts collected by `junos-eznc`.

  CLI Example:

      salt '*' napalm.junos_facts

salt.modules.napalm_mod.junos_install_os(path=None, **kwargs)

  Added in version 2019.2.0.

  Installs the given image on the device.

  path

    The image file source. This argument supports the following URIs:

    - Absolute path on the Minion.

    - `salt://` to fetch from the Salt fileserver.

    - `http://` and `https://`

    - `ftp://`

    - `swift:/`

    - `s3://`

  dev_timeout: `30`

    The NETCONF RPC timeout (in seconds)

  reboot: `False`

    Whether to reboot the device after the installation is complete.

  no_copy: `False`

    If `True` the software package will not be copied to the remote device.

  CLI Example:

      salt '*' napalm.junos_install_os salt://images/junos_16_1.tgz reboot=True

salt.modules.napalm_mod.junos_rpc(cmd=None, dest=None, format=None, **kwargs)

  Added in version 2019.2.0.

  Execute an RPC request on the remote Junos device.

  cmd

    The RPC request to the executed. To determine the RPC request, you can check the from the command line of the device, by executing the usual command followed by `| display xml rpc`, e.g., `show lldp neighbors | display xml rpc`.

  dest

    Destination file where the RPC output is stored. Note that the file will be stored on the Proxy Minion. To push the files to the Master, use `cp.push` Execution function.

  format: `xml`

    The format in which the RPC reply is received from the device.

  dev_timeout: `30`

    The NETCONF RPC timeout.

  filter

    Used with the `get-config` RPC request to filter out the config tree.

  terse: `False`

    Whether to return terse output.

    Note

    Some RPC requests may not support this argument.

  interface_name

    Name of the interface to query.

  CLI Example:

      salt '*' napalm.junos_rpc get-lldp-neighbors-information
      salt '*' napalm.junos_rpc get-config <configuration><system><ntp/></system></configuration>

salt.modules.napalm_mod.netmiko_args(**kwargs)

  Added in version 2019.2.0.

  Return the key-value arguments used for the authentication arguments for the netmiko module.

  When running in a non-native NAPALM driver (e.g., `panos`, f5`, `mos` - either from https://github.com/napalm-automation-community or defined in user's own environment, one can specify the Netmiko device type (the `device_type` argument) via the `netmiko_device_type_map` configuration option / Pillar key, e.g.,

      netmiko_device_type_map:
        f5: f5_ltm
        dellos10: dell_os10

  The configuration above defines the mapping between the NAPALM `os` Grain and the Netmiko `device_type`, e.g., when the NAPALM Grain is `f5`, it would use the `f5_ltm` SSH Netmiko driver to execute commands over SSH on the remote network device.

  CLI Example:

      salt '*' napalm.netmiko_args

salt.modules.napalm_mod.netmiko_call(method, *args, **kwargs)

  Added in version 2019.2.0.

  Execute an arbitrary Netmiko method, passing the authentication details from the existing NAPALM connection.

  method

    The name of the Netmiko method to execute.

  args

    List of arguments to send to the Netmiko method specified in `method`.

  kwargs

    Key-value arguments to send to the execution function specified in `method`.

  CLI Example:

      salt '*' napalm.netmiko_call send_command 'show version'

salt.modules.napalm_mod.netmiko_commands(*commands, **kwargs)

  Added in version 2019.2.0.

  Invoke one or more commands to be executed on the remote device, via Netmiko. Returns a list of strings, with the output from each command.

  commands

    A list of commands to be executed.

  expect_string

    Regular expression pattern to use for determining end of output. If left blank will default to being based on router prompt.

  delay_factor: `1`

    Multiplying factor used to adjust delays (default: `1`).

  max_loops: `500`

    Controls wait time in conjunction with delay_factor. Will default to be based upon self.timeout.

  auto_find_prompt: `True`

    Whether it should try to auto-detect the prompt (default: `True`).

  strip_prompt: `True`

    Remove the trailing router prompt from the output (default: `True`).

  strip_command: `True`

    Remove the echo of the command from the output (default: `True`).

  normalize: `True`

    Ensure the proper enter is sent at end of command (default: `True`).

  use_textfsm: `False`

    Process command output through TextFSM template (default: `False`).

  CLI Example:

      salt '*' napalm.netmiko_commands 'show version' 'show interfaces'

salt.modules.napalm_mod.netmiko_config(*config_commands, **kwargs)

  Added in version 2019.2.0.

  Load a list of configuration commands on the remote device, via Netmiko.

  Warning

  Please remember that `netmiko` does not have any rollback safeguards and any configuration change will be directly loaded into the running config if the platform doesn't have the concept of `candidate` config.

  On Junos, or other platforms that have this capability, the changes will not be loaded into the running config, and the user must set the `commit` argument to `True` to transfer the changes from the candidate into the running config before exiting.

  config_commands

    A list of configuration commands to be loaded on the remote device.

  config_file

    Read the configuration commands from a file. The file can equally be a template that can be rendered using the engine of choice (see `template_engine`).

    This can be specified using the absolute path to the file, or using one of the following URL schemes:

    - `salt://`, to fetch the file from the Salt fileserver.

    - `http://` or `https://`

    - `ftp://`

    - `s3://`

    - `swift://`

  exit_config_mode: `True`

    Determines whether or not to exit config mode after complete.

  delay_factor: `1`

    Factor to adjust delays.

  max_loops: `150`

    Controls wait time in conjunction with delay_factor (default: `150`).

  strip_prompt: `False`

    Determines whether or not to strip the prompt (default: `False`).

  strip_command: `False`

    Determines whether or not to strip the command (default: `False`).

  config_mode_command

    The command to enter into config mode.

  commit: `False`

    Commit the configuration changes before exiting the config mode. This option is by default disabled, as many platforms don't have this capability natively.

  CLI Example:

      salt '*' napalm.netmiko_config 'set system ntp peer 1.2.3.4' commit=True
      salt '*' napalm.netmiko_config https://bit.ly/2sgljCB

salt.modules.napalm_mod.netmiko_fun(fun, *args, **kwargs)

  Added in version 2019.2.0.

  Call an arbitrary function from the `Netmiko` module, passing the authentication details from the existing NAPALM connection.

  fun

    The name of the function from the `Netmiko` to invoke.

  args

    List of arguments to send to the execution function specified in `fun`.

  kwargs

    Key-value arguments to send to the execution function specified in `fun`.

  CLI Example:

      salt '*' napalm.netmiko_fun send_command 'show version'

salt.modules.napalm_mod.netmiko_multi_call(*methods, **kwargs)

  Added in version 2019.2.0.

  Execute a list of arbitrary Netmiko methods, passing the authentication details from the existing NAPALM connection.

  methods

    List of dictionaries with the following keys:

    - `name`: the name of the Netmiko function to invoke.

    - `args`: list of arguments to send to the `name` method.

    - `kwargs`: key-value arguments to send to the `name` method.

  CLI Example:

      salt '*' napalm.netmiko_multi_call "{'name': 'send_command', 'args': ['show version']}" "{'name': 'send_command', 'args': ['show interfaces']}"

salt.modules.napalm_mod.nxos_api_config(commands=None, config_file=None, template_engine='jinja', context=None, defaults=None, saltenv='base', **kwargs)

  > Added in version 2019.2.0.

  Configures the Nexus switch with the specified commands, via the NX-API.

  commands

    The list of configuration commands to load on the Nexus switch.

    Note

    This argument is ignored when `config_file` is specified.

  config_file

    The source file with the configuration commands to be sent to the device.

    The file can also be a template that can be rendered using the template engine of choice. This can be specified using the absolute path to the file, or using one of the following URL schemes:

    - `salt://`

    - `https://`

    - `ftp:/`

    - `s3:/`

    - `swift://`

  template_engine: `jinja`

    The template engine to use when rendering the source file. Default: `jinja`. To simply fetch the file without attempting to render, set this argument to `None`.

  context: `None`

    Variables to add to the template context.

  defaults: `None`

    Default values of the `context` dict.

  saltenv: `base`

    Salt fileserver environment from which to retrieve the file. Ignored if `config_file` is not a `salt://` URL.

  CLI Example:

      salt '*' napalm.nxos_api_config 'spanning-tree mode mstp'
      salt '*' napalm.nxos_api_config config_file=https://bit.ly/2LGLcDy context="{'servers': ['1.2.3.4']}"

salt.modules.napalm_mod.nxos_api_rpc(commands, method='cli', **kwargs)

  Added in version 2019.2.0.

  Execute an arbitrary RPC request via the Nexus API.

  commands

    The RPC commands to be executed.

  method: `cli`

    The type of the response, i.e., raw text (`cli_ascii`) or structured document (`cli`). Defaults to `cli` (structured data).

  CLI Example:

      salt '*' napalm.nxos_api_rpc 'show version'

salt.modules.napalm_mod.nxos_api_show(commands, raw_text=True, **kwargs)

  Added in version 2019.2.0.

  Execute one or more show (non-configuration) commands.

  commands

    The commands to be executed.

  raw_text: `True`

    Whether to return raw text or structured data.

  CLI Example:

      salt '*' napalm.nxos_api_show 'show version'
      salt '*' napalm.nxos_api_show 'show bgp sessions' 'show processes' raw_text=False

salt.modules.napalm_mod.pyeapi_call(method, *args, **kwargs)

  Added in version 2019.2.0.

  Invoke an arbitrary method from the `pyeapi` library. This function forwards the existing connection details to the `pyeapi.run_commands` execution function.

  method

    The name of the `pyeapi` method to invoke.

  kwargs

    Key-value arguments to send to the `pyeapi` method.

  CLI Example:

      salt '*' napalm.pyeapi_call run_commands 'show version' encoding=text
      salt '*' napalm.pyeapi_call get_config as_string=True

salt.modules.napalm_mod.pyeapi_config(commands=None, config_file=None, template_engine='jinja', context=None, defaults=None, saltenv='base', **kwargs)

  Added in version 2019.2.0.

  Configures the Arista switch with the specified commands, via the `pyeapi` library. This function forwards the existing connection details to the `pyeapi.run_commands` execution function.

  commands

    The list of configuration commands to load on the Arista switch.

    Note

    This argument is ignored when `config_file` is specified.

  config_file

    The source file with the configuration commands to be sent to the device.

    The file can also be a template that can be rendered using the template engine of choice. This can be specified using the absolute path to the file, or using one of the following URL schemes:

    - `salt://`

    - `https://`

    - `ftp:/`

    - `s3:/`

    - `swift://`

  template_engine: `jinja`

    The template engine to use when rendering the source file. Default: `jinja`. To simply fetch the file without attempting to render, set this argument to `None`.

  context: `None`

    Variables to add to the template context.

  defaults: `None`

    Default values of the `context` dict.

  saltenv: `base`

    Salt fileserver environment from which to retrieve the file. Ignored if `config_file` is not a `salt://` URL.

  CLI Example:

      salt '*' napalm.pyeapi_config 'ntp server 1.2.3.4'

salt.modules.napalm_mod.pyeapi_nxos_api_args(**prev_kwargs)

  Added in version 2019.2.0.

  Return the key-value arguments used for the authentication arguments for the `pyeapi execution module`.

  CLI Example:

      salt '*' napalm.pyeapi_nxos_api_args

salt.modules.napalm_mod.pyeapi_run_commands(*commands, **kwargs)

  Execute a list of commands on the Arista switch, via the `pyeapi` library. This function forwards the existing connection details to the `pyeapi.run_commands` execution function.

  commands

    A list of commands to execute.

  encoding: `json`

    The requested encoding of the command output. Valid values for encoding are `json` (default) or `text`.

  CLI Example:

      salt '*' napalm.pyeapi_run_commands 'show version' encoding=text
      salt '*' napalm.pyeapi_run_commands 'show ip bgp neighbors'

salt.modules.napalm_mod.reconnect(force=False, **kwargs)

  Reconnect the NAPALM proxy when the connection is dropped by the network device. The connection can be forced to be restarted using the `force` argument.

  Note

  This function can be used only when running proxy minions.

  CLI Example:

      salt '*' napalm.reconnect
      salt '*' napalm.reconnect force=True

salt.modules.napalm_mod.rpc(command, **kwargs)

  Added in version 2019.2.0.

  This is a wrapper to execute RPC requests on various network operating systems supported by NAPALM, invoking the following functions for the NAPALM native drivers:

  - `napalm.junos_rpc` for `junos`

  - `napalm.pyeapi_run_commands` for `eos`

  - `napalm.nxos_api_rpc` for `nxos`

  - `napalm.netmiko_commands` for `ios`, `iosxr`, and `nxos_ssh`

  command

    The RPC command to execute. This depends on the nature of the operating system.

  kwargs

    Key-value arguments to be sent to the underlying Execution function.

  The function capabilities are extensible in the user environment via the `napalm_rpc_map` configuration option / Pillar, e.g.,

      napalm_rpc_map:
        f5: napalm.netmiko_commands
        panos: panos.call

  The mapping above reads: when the NAPALM `os` Grain is `f5`, then call `napalm.netmiko_commands` for RPC requests.

  By default, if the user does not specify any map, non-native NAPALM drivers will invoke the `napalm.netmiko_commands` Execution function.

  CLI Example:

      salt '*' napalm.rpc 'show version'
      salt '*' napalm.rpc get-interfaces

salt.modules.napalm_mod.scp_get(remote_path, local_path='', recursive=False, preserve_times=False, **kwargs)

  Added in version 2019.2.0.

  Transfer files and directories from remote network device to the localhost of the Minion.

  Note

  This function is only available only when the underlying library scp is installed. See `scp module` for more details.

  remote_path

    Path to retrieve from remote host. Since this is evaluated by scp on the remote host, shell wildcards and environment variables may be used.

  recursive: `False`

    Transfer files and directories recursively.

  preserve_times: `False`

    Preserve `mtime` and `atime` of transferred files and directories.

  passphrase

    Used for decrypting private keys.

  pkey

    An optional private key to use for authentication.

  key_filename

    The filename, or list of filenames, of optional private key(s) and/or certificates to try for authentication.

  timeout

    An optional timeout (in seconds) for the TCP connect.

  socket_timeout: `10`

    The channel socket timeout in seconds.

  buff_size: `16384`

    The size of the SCP send buffer.

  allow_agent: `True`

    Set to `False` to disable connecting to the SSH agent.

  look_for_keys: `True`

    Set to `False` to disable searching for discoverable private key files in `~/.ssh/`

  banner_timeout

    An optional timeout (in seconds) to wait for the SSH banner to be presented.

  auth_timeout

    An optional timeout (in seconds) to wait for an authentication response.

  auto_add_policy: `False`

    Automatically add the host to the `known_hosts`.

  CLI Example:

      salt '*' napalm.scp_get /var/tmp/file /tmp/file auto_add_policy=True

salt.modules.napalm_mod.scp_put(files, remote_path=None, recursive=False, preserve_times=False, saltenv='base', **kwargs)

  Added in version 2019.2.0.

  Transfer files and directories to remote network device.

  Note

  This function is only available only when the underlying library scp is installed. See `scp module` for more details.

  files

    A single path or a list of paths to be transferred.

  remote_path

    The path on the remote device where to store the files.

  recursive: `True`

    Transfer files and directories recursively.

  preserve_times: `False`

    Preserve `mtime` and `atime` of transferred files and directories.

  saltenv: `base`

    The name of the Salt environment. Ignored when `files` is not a `salt://` URL.

  hostname

    The hostname of the remote device.

  port: `22`

    The port of the remote device.

  username

    The username required for SSH authentication on the device.

  password

    Used for password authentication. It is also used for private key decryption if `passphrase` is not given.

  passphrase

    Used for decrypting private keys.

  pkey

    An optional private key to use for authentication.

  key_filename

    The filename, or list of filenames, of optional private key(s) and/or certificates to try for authentication.

  timeout

    An optional timeout (in seconds) for the TCP connect.

  socket_timeout: `10`

    The channel socket timeout in seconds.

  buff_size: `16384`

    The size of the SCP send buffer.

  allow_agent: `True`

    Set to `False` to disable connecting to the SSH agent.

  look_for_keys: `True`

    Set to `False` to disable searching for discoverable private key files in `~/.ssh/`

  banner_timeout

    An optional timeout (in seconds) to wait for the SSH banner to be presented.

  auth_timeout

    An optional timeout (in seconds) to wait for an authentication response.

  auto_add_policy: `False`

    Automatically add the host to the `known_hosts`.

  CLI Example:

      salt '*' napalm.scp_put /path/to/file /var/tmp/file auto_add_policy=True