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 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 that the return list contains the elements that matched the parent condition, the parent_regex
regular expression. Therefore, the parent
field will always have a valid value, while match
and child
may default to False
and None
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' } ]
Return all the lines (as text) that match the expression in the regex
argument.
The configuration sent as text.
Note
This argument is ignored when config_path
is specified.
salt://
, https://
, ftp://
, s3://
, etc.base
config_path
is not a salt://
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
Return a list of parent lines (as text) matching the regular expression parent_regex
that have children lines matching child_regex
.
The configuration sent as text.
Note
This argument is ignored when config_path
is specified.
salt://
, https://
, ftp://
, s3://
, etc.False
base
config_path
is not a salt://
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+'
Return a list of parent ciscoconfparse.IOSCfgLine
lines as text, which matched the parent_regex
and whose children did not match child_regex
. Only the parent ciscoconfparse.IOSCfgLine
text lines will be returned. For simplicity, this method only finds oldest ancestors without immediate children that match.
The configuration sent as text.
Note
This argument is ignored when config_path
is specified.
salt://
, https://
, ftp://
, s3://
, etc.False
base
config_path
is not a salt://
URL.CLI Example:
salt '*' ciscoconfparse.find_lines_wo_child config_path=https://bit.ly/2mAdq7z parent_line='line con' child_line='stopbits'
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
The configuration sent as text.
Note
This argument is ignored when config_path
is specified.
salt://
, https://
, ftp://
, s3://
, etc.base
config_path
is not a salt://
URL.Usage example:
objects = __salt__['ciscoconfparse.find_objects'](config_path='salt://path/to/config.txt', regex='Gigabit') for obj in objects: print(obj.text)
Parse through the children of all parent lines matching parent_regex
, and return a list of child objects, which matched the child_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
The configuration sent as text.
Note
This argument is ignored when config_path
is specified.
salt://
, https://
, ftp://
, s3://
, etc.False
base
config_path
is not a salt://
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)
Return a list of parent ciscoconfparse.IOSCfgLine
objects, which matched the parent_regex
and whose children did not match child_regex
. Only the parent ciscoconfparse.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
The configuration sent as text.
Note
This argument is ignored when config_path
is specified.
salt://
, https://
, ftp://
, s3://
, etc.False
base
config_path
is not a salt://
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)
© 2019 SaltStack.
Licensed under the Apache License, Version 2.0.
https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.ciscoconfparse_mod.html