mpenning / ciscoconfparse

Parse, Audit, Query, Build, and Modify Arista / Cisco / Juniper / Palo Alto / F5 configurations.
http://www.pennington.net/py/ciscoconfparse/
GNU General Public License v3.0
793 stars 220 forks source link

Add CiscoConfParse support for Python generators #19

Closed mpenning closed 9 years ago

mpenning commented 9 years ago

Based on discussions with users, yielding from a generator as input to CiscoConfParse would be useful in case you need to dynamically modify the configuration as it is input to CiscoConfParse... simple example follows...

import re

def fix_brocade_bug(config_file):
    with open('/var/local/RANCID/configs/CORE.02.DEN.conf') as fh:
        for line in fh.read().splitlines():
            #  Fix brocade configuration indent bug
            line = re.sub('^\s{3,}(address-family.+)', '  \<g>1', line)
            yield line

config_generator = fix_brocade_bug('/var/local/RANCID/configs/CORE.02.DEN.conf')
parse = CiscoConfParse(config_generator)

Currently generators are not supported; a minor change would enable generator input.

mpenning commented 9 years ago

Added support in version 1.2.8