salt.modules.ciscoconfparse_mod
Execution module for ciscoconfparse
New in version 2019.2.0.
This module can be used for basic configuration parsing, audit or validation for a variety of network platforms having Cisco IOS style configuration (one space indentation), including: Cisco IOS, Cisco Nexus, Cisco IOS-XR, Cisco IOS-XR, Cisco ASA, Arista EOS, Brocade, HP Switches, Dell PowerConnect Switches, or Extreme Networks devices. In newer versions, ciscoconfparse
provides support for brace-delimited configuration style as well, for platforms such as: Juniper Junos, Palo Alto, or F5 Networks.
See http://www.pennington.net/py/ciscoconfparse/index.html for further details.
- depends
-
ciscoconfparse
This module depends on the Python library with the same name, ciscoconfparse
- to install execute: pip install ciscoconfparse
.
-
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 thechild_regex
regular expression. The result is a list of dictionaries with the following keys:match
: a boolean value that tells whetherchild_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 beNone
.
Note that the return list contains the elements that matched the parent condition, the
parent_regex
regular expression. Therefore, theparent
field will always have a valid value, whilematch
andchild
may default toFalse
andNone
respectively when there is not child match.CLI Example:
salt '*' ciscoconfparse.filter_lines config_path=https://bit.ly/2mAdq7z parent_regex='Gigabit' child_regex='shutdown'
Example output (for the example above):
[ { 'parent': 'interface GigabitEthernet1', 'match': False, 'child': None }, { 'parent': 'interface GigabitEthernet2', 'match': True, 'child': ' shutdown' }, { 'parent': 'interface GigabitEthernet3', 'match': True, 'child': ' shutdown' } ]
salt.modules.ciscoconfparse_mod.filter_lines(config=None, config_path=None, parent_regex=None, child_regex=None, saltenv='base')
-
Return all the lines (as text) that match the expression in the
regex
argument.- config
-
The configuration sent as text.
Note
This argument is ignored when
config_path
is specified. - config_path
-
The absolute or remote path to the file with the configuration to be parsed. This argument supports the usual Salt filesystem URIs, e.g.,
salt://
,https://
,ftp://
,s3://
, etc. - regex
-
The regular expression to match the lines against.
- saltenv:
base
-
Salt fileserver environment from which to retrieve the file. This argument is ignored when
config_path
is not asalt://
URL.
CLI Example:
salt '*' ciscoconfparse.find_lines config_path=https://bit.ly/2mAdq7z regex='ip address'
Output example:
cisco-ios-router: - ip address dhcp - ip address 172.20.0.1 255.255.255.0 - no ip address
salt.modules.ciscoconfparse_mod.find_lines(config=None, config_path=None, regex=None, saltenv='base')
-
Return a list of parent lines (as text) matching the regular expression
parent_regex
that have children lines matchingchild_regex
.- config
-
The configuration sent as text.
Note
This argument is ignored when
config_path
is specified. - config_path
-
The absolute or remote path to the file with the configuration to be parsed. This argument supports the usual Salt filesystem URIs, e.g.,
salt://
,https://
,ftp://
,s3://
, etc. - parent_regex
-
The regular expression to match the parent lines against.
- child_regex
-
The regular expression to match the child lines against.
- ignore_ws:
False
-
Whether to ignore the white spaces.
- saltenv:
base
-
Salt fileserver environment from which to retrieve the file. This argument is ignored when
config_path
is not asalt://
URL.
CLI Example:
salt '*' ciscoconfparse.find_lines_w_child config_path=https://bit.ly/2mAdq7z parent_line='line con' child_line='stopbits' salt '*' ciscoconfparse.find_lines_w_child config_path=https://bit.ly/2uIRxau parent_regex='ge-(.*)' child_regex='unit \d+'
salt.modules.ciscoconfparse_mod.find_lines_w_child(config=None, config_path=None, parent_regex=None, child_regex=None, ignore_ws=False, saltenv='base')
-
Return a list of parent
ciscoconfparse.IOSCfgLine
lines as text, which matched theparent_regex
and whose children did not matchchild_regex
. Only the parentciscoconfparse.IOSCfgLine
text lines will be returned. For simplicity, this method only finds oldest ancestors without immediate children that match.- config
-
The configuration sent as text.
Note
This argument is ignored when
config_path
is specified. - config_path
-
The absolute or remote path to the file with the configuration to be parsed. This argument supports the usual Salt filesystem URIs, e.g.,
salt://
,https://
,ftp://
,s3://
, etc. - parent_regex
-
The regular expression to match the parent lines against.
- child_regex
-
The regular expression to match the child lines against.
- ignore_ws:
False
-
Whether to ignore the white spaces.
- saltenv:
base
-
Salt fileserver environment from which to retrieve the file. This argument is ignored when
config_path
is not asalt://
URL.
CLI Example:
salt '*' ciscoconfparse.find_lines_wo_child config_path=https://bit.ly/2mAdq7z parent_line='line con' child_line='stopbits'
salt.modules.ciscoconfparse_mod.find_lines_wo_child(config=None, config_path=None, parent_regex=None, child_regex=None, ignore_ws=False, saltenv='base')
-
Return all the line objects that match the expression in the
regex
argument.Warning
This function is mostly valuable when invoked from other Salt components (i.e., execution modules, states, templates etc.). For CLI usage, please consider using
ciscoconfparse.find_lines
- config
-
The configuration sent as text.
Note
This argument is ignored when
config_path
is specified. - config_path
-
The absolute or remote path to the file with the configuration to be parsed. This argument supports the usual Salt filesystem URIs, e.g.,
salt://
,https://
,ftp://
,s3://
, etc. - regex
-
The regular expression to match the lines against.
- saltenv:
base
-
Salt fileserver environment from which to retrieve the file. This argument is ignored when
config_path
is not asalt://
URL.
Usage example:
objects = __salt__['ciscoconfparse.find_objects'](config_path='salt://path/to/config.txt', regex='Gigabit') for obj in objects: print(obj.text)
salt.modules.ciscoconfparse_mod.find_objects(config=None, config_path=None, regex=None, saltenv='base')
-
Parse through the children of all parent lines matching
parent_regex
, and return a list of child objects, which matched thechild_regex
.Warning
This function is mostly valuable when invoked from other Salt components (i.e., execution modules, states, templates etc.). For CLI usage, please consider using
ciscoconfparse.find_lines_w_child
- config
-
The configuration sent as text.
Note
This argument is ignored when
config_path
is specified. - config_path
-
The absolute or remote path to the file with the configuration to be parsed. This argument supports the usual Salt filesystem URIs, e.g.,
salt://
,https://
,ftp://
,s3://
, etc. - parent_regex
-
The regular expression to match the parent lines against.
- child_regex
-
The regular expression to match the child lines against.
- ignore_ws:
False
-
Whether to ignore the white spaces.
- saltenv:
base
-
Salt fileserver environment from which to retrieve the file. This argument is ignored when
config_path
is not asalt://
URL.
Usage example:
objects = __salt__['ciscoconfparse.find_objects_w_child'](config_path='https://bit.ly/2mAdq7z', parent_regex='line con', child_regex='stopbits') for obj in objects: print(obj.text)
salt.modules.ciscoconfparse_mod.find_objects_w_child(config=None, config_path=None, parent_regex=None, child_regex=None, ignore_ws=False, saltenv='base')
-
Return a list of parent
ciscoconfparse.IOSCfgLine
objects, which matched theparent_regex
and whose children did not matchchild_regex
. Only the parentciscoconfparse.IOSCfgLine
objects will be returned. For simplicity, this method only finds oldest ancestors without immediate children that match.Warning
This function is mostly valuable when invoked from other Salt components (i.e., execution modules, states, templates etc.). For CLI usage, please consider using
ciscoconfparse.find_lines_wo_child
- config
-
The configuration sent as text.
Note
This argument is ignored when
config_path
is specified. - config_path
-
The absolute or remote path to the file with the configuration to be parsed. This argument supports the usual Salt filesystem URIs, e.g.,
salt://
,https://
,ftp://
,s3://
, etc. - parent_regex
-
The regular expression to match the parent lines against.
- child_regex
-
The regular expression to match the child lines against.
- ignore_ws:
False
-
Whether to ignore the white spaces.
- saltenv:
base
-
Salt fileserver environment from which to retrieve the file. This argument is ignored when
config_path
is not asalt://
URL.
Usage example:
objects = __salt__['ciscoconfparse.find_objects_wo_child'](config_path='https://bit.ly/2mAdq7z', parent_regex='line con', child_regex='stopbits') for obj in objects: print(obj.text)
salt.modules.ciscoconfparse_mod.find_objects_wo_child(config=None, config_path=None, parent_regex=None, child_regex=None, ignore_ws=False, saltenv='base')
© 2021 SaltStack.
Licensed under the Apache License, Version 2.0.
https://docs.saltproject.io/en/latest/ref/modules/all/salt.modules.ciscoconfparse_mod.html