# salt.modules.iosconfig

Cisco IOS configuration manipulation helpers

Added in version 2019.2.0.

This module provides a collection of helper functions for Cisco IOS style configuration manipulation. This module does not have external dependencies and can be used from any Proxy or regular Minion.

salt.modules.iosconfig.clean(config=None, path=None, saltenv='base')

  Return a clean version of the config, without any special signs (such as `!` as an individual line) or empty lines, but just lines with significant value in the configuration of the network device.

  config

    The configuration sent as text. This argument is ignored when `path` is configured.

  path

    Absolute or remote path from where to load the 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 `path` is not a `salt://` URL.

  CLI Example:

      salt '*' iosconfig.clean path=salt://path/to/my/config.txt
      salt '*' iosconfig.clean path=https://bit.ly/2mAdq7z

salt.modules.iosconfig.diff_text(candidate_config=None, candidate_path=None, running_config=None, running_path=None, saltenv='base')

  Return the diff, as text, between the candidate and the running config.

  candidate_config

    The candidate configuration sent as text. This argument is ignored when `candidate_path` is set.

  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.

  running_config

    The running configuration sent as text. This argument is ignored when `running_path` is set.

  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 '*' iosconfig.diff_text candidate_path=salt://path/to/candidate.cfg running_path=salt://path/to/running.cfg

salt.modules.iosconfig.diff_tree(candidate_config=None, candidate_path=None, running_config=None, running_path=None, saltenv='base')

  Return the diff, as Python dictionary, between the candidate and the running configuration.

  candidate_config

    The candidate configuration sent as text. This argument is ignored when `candidate_path` is set.

  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.

  running_config

    The running configuration sent as text. This argument is ignored when `running_path` is set.

  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 '*' iosconfig.diff_tree candidate_path=salt://path/to/candidate.cfg running_path=salt://path/to/running.cfg

salt.modules.iosconfig.merge_diff(initial_config=None, initial_path=None, merge_config=None, merge_path=None, saltenv='base')

  Return the merge diff, as text, after merging the merge config into the initial config.

  initial_config

    The initial configuration sent as text. This argument is ignored when `initial_path` is set.

  initial_path

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

  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 `initial_path` or `merge_path` is not a `salt://` URL.

  CLI Example:

      salt '*' iosconfig.merge_diff initial_path=salt://path/to/running.cfg merge_path=salt://path/to/merge.cfg

salt.modules.iosconfig.merge_text(initial_config=None, initial_path=None, merge_config=None, merge_path=None, saltenv='base')

  Return the merge result of the `initial_config` with the `merge_config`, as plain text.

  initial_config

    The initial configuration sent as text. This argument is ignored when `initial_path` is set.

  initial_path

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

  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 `initial_path` or `merge_path` is not a `salt://` URL.

  CLI Example:

      salt '*' iosconfig.merge_text initial_path=salt://path/to/running.cfg merge_path=salt://path/to/merge.cfg

salt.modules.iosconfig.merge_tree(initial_config=None, initial_path=None, merge_config=None, merge_path=None, saltenv='base')

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

  initial_config

    The initial configuration sent as text. This argument is ignored when `initial_path` is set.

  initial_path

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

  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 `initial_path` or `merge_path` is not a `salt://` URL.

  CLI Example:

      salt '*' iosconfig.merge_tree initial_path=salt://path/to/running.cfg merge_path=salt://path/to/merge.cfg

salt.modules.iosconfig.tree(config=None, path=None, with_tags=False, saltenv='base')

  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.

  config

    The configuration sent as text. This argument is ignored when `path` is configured.

  path

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

  with_tags: `False`

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

  saltenv: `base`

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

  CLI Example:

      salt '*' iosconfig.tree path=salt://path/to/my/config.txt
      salt '*' iosconfig.tree path=https://bit.ly/2mAdq7z