Metadata-Version: 2.1
Name: ntc-templates
Version: 1.6.0
Summary: Package to return structured data from the output of network devices.
Home-page: https://github.com/networktocode/ntc-templates
Author: network.toCode()
Author-email: info@networktocode.com
License: UNKNOWN
Description: [![Build Status](https://travis-ci.org/networktocode/ntc-templates.svg?branch=master)](https://travis-ci.org/networktocode/ntc-templates)
        [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)
        
        NTC TEMPLATES
        =============
        
        Repository of TextFSM Templates for Network Devices, and Python wrapper for TextFSM's CliTable.
        
        [TextFSM](https://github.com/google/textfsm/wiki) is a project built by Google that takes CLI string output and passes each line through a series of regular expressions until it finds a match. The regular expressions use named capture groups to build a text table out of the significant text. The names of the capture groups are used as column headers, and the captured values are stored as rows in the table.
        
        This project provides a large collection of TextFSM Templates (text parsers) for a variety of Networking Vendors. In addition to the templates, there is a function that will convert the CLI output into a CliTable object; the resulting text table is converted into a list of dictionaries mapping the column headers with each row in the table.
        
        
        Installation and Usage
        ----------------------
        The project can be installed using either Git or PyPI; if you would like to use the templates outside of this project, then Git is the recommended approach.
        
        #### Git
        
        ```shell
        $ git clone git@github.com:networktocode/ntc-templates.git
        $ 
        # Optional steps to install ntc-templates as a python package
        $ pip install -e ntc-templates/
        $ 
        ```
        
        The install can also include the required dev packages, which can be useful for adding or editing templates:
        
        ```shell
        $ git clone git@github.com:networktocode/ntc-templates.git
        $ 
        # Optional steps to install ntc-templates as a python package
        $ pip install -e ntc-templates/[dev]
        $ 
        ```
        
        #### PyPI
        
        ```shell
        $ pip install ntc_templates
        $ 
        ```
        
        To include the dev packages:
        ```
        $ pip install ntc_templates[dev]
        $ 
        ```
        
        #### Usage
        
        ```python
        >>> from ntc_templates.parse import parse_output
        >>> vlan_output = (
                "VLAN Name                             Status    Ports\n"
                "---- -------------------------------- --------- -------------------------------\n"
                "1    default                          active    Gi0/1\n"
                "10   Management                       active    \n"
                "50   VLan50                           active    Fa0/1, Fa0/2, Fa0/3, Fa0/4, Fa0/5,\n"
                "                                                Fa0/6, Fa0/7, Fa0/8\n"
            )
        >>> vlan_parsed = parse_output(platform="cisco_ios", command="show vlan", data=vlan_output)
        >>> vlan_parsed
        [
            {
                'vlan_id': '1',
                'name': 'default',
                'status': 'active',
                'interfaces': ['Gi0/1']
            },
            {
                'vlan_id': '10',
                'name': 'Management',
                'status': 'active',
                'interfaces': []
            },
            {
                'vlan_id': '50',
                'name': 'VLan50', 'status': 'active',
                'interfaces': ['Fa0/1', 'Fa0/2', 'Fa0/3', 'Fa0/4', 'Fa0/5', 'Fa0/6', 'Fa0/7', 'Fa0/8']
            }
        ]
        >>> 
        ```
        
        Contributing
        ------------
        
        Pull requests are welcomed and automatically built and tested through TravisCI.
        
        ### New Templates
        To contribute new templates, each new pull request must include the following:
        
        - TextFSM template
        - Modified version of the **index** file
        - Tests
          * Raw version of text to be parsed
          * YAML file containing the expected parsed dictionary
        
        #### TextFSM Template
        
        TextFSM templates should be placed in the `./templates` directory and should adhere to the following NTC-Templates style.
        The TextFSM template name should be in the following format:
        
        ##### Naming
        
        The template should be named using: `{{ vendor_os }}_{{ command_with_underscores }}.textfsm`
        > Ex: cisco_ios_show_cdp_neighbors.textfsm
        
        Note: The vendor name must be valid from the [os_choices](https://github.com/networktocode/ntc-templates/blob/master/tests/test_index_order.py#L59) tests, which is primarily based on [Netmiko](https://github.com/ktbyers/netmiko/tree/master/netmiko) list of supported vendors. New vendors added should adhere to **vendor_os**.
        > Ex: vmware_nsx
        
        ##### Values
        
        The capture group names should be in UPPERCASE.
        
        An example of the proper format is shown below.
        
        ```
        Value TIME (\d+:\d+:\d+)
        Value TIMEZONE (\S+)
        Value DAYWEEK (\w+)
        Value MONTH (\d+)
        Value DAY (\d+)
        Value YEAR (\d+)
        
        Start
          ^${TIME}\s+${TIMEZONE}\s+${DAYWEEK}\s+${DAY}/${MONTH}/${YEAR} -> Record
          ^. -> Error
        ```
        ##### States
        
        If the raw output has a heading, the `Start` state should match on the column headings and then transition to another state that will match the device's output table with the capture groups. This helps ensure the regex patterns for the capture groups are attempting to match the correct information, and allows templates to easily add additional States for tables that have different headings. Example:
        
        *Raw Output*
        ```
        ... omitted
        Network Next Hop Metric LocPrf Weight Path
        *> 111.111.111.111/32 112.112.112.112 4294967295 4294967295 65535 1000 1000 1000 i
        ```
        
        *Sample Template*
        ```
        Start
        # Checking for header
        ^\s*Network\s+Next(?:\s+|-)[Hh]op\s+Metric\s+LocPrf\s+Weight\s+Path\s*$$ -> BGPTable
        
        BGPTable
         ... omitted
        ```
        
        Each **state** should end with `^. -> Error`. This helps to ensure we're accounting for every line within the raw output for the command. This doesn't mean we have to capture all the data as a **Value**, but we do have to account for it. In addition, it is also good to provide an expression to match blank lines, `^\s*$$`
        
        An example would be the following raw output:
        ```
        NAME: "3640 chassis", DESCR: "3640 chassis"
        PID: , VID: 0xFF, SN: FF1045C5
        ```
        
        The template would be the following:
        ```
        Value NAME (.*)
        Value DESCRIPTION (.*)
        
        Start
          ^NAME:\s+"${NAME}",\s*DESCR:\s+"${DESCRIPTION}"
          ^PID:\s*,\s*VID:\s*\S+,\s*SN:\s*\S+
          ^\s*$$
          ^. -> Error
        ```
        
        Taking a look at the example template above, you notice that we're using **\s*** and **\s+**. These are the preferred way to match space characters, and should be used over the literal space character. For example, `This\s+is\s+preferred\s*$$` vs `This is not preferred$$`
        
        - **\s*** accounts for zero or more spaces (use when the output may or may not have a space between characters)
        - **\s+** accounts for one or more spaces (use when output will have a space, but could have more than one space)
        
        #### Index File
        
        The Index file binds the templates to the commands being run. Special care has been taken on ordering, as there is potential for issues. e.g. `show ip route` picking up for `show ip router vrf <vrf-name>`. We have used a combination of ordering, as defined:
        
         - OS in alphabetical order
         - Template name in length order
         - When length is the same, use alphabetical order of command name
         - Keep space between OS's
        
        Example:
        
        ```
        Template, Hostname, Platform, Command
        
        # same os, same length, used alphabetical order of command name
        arista_eos_show_mlag.textfsm, .*, arista_eos, sh[[ow]] ml[[ag]]
        arista_eos_show_vlan.textfsm, .*, arista_eos, sh[[ow]] vl[[an]]
        
        # os in alphabetical order and space between cisco_asa and arista_eos
        cisco_asa_dir.textfsm,  .*, cisco_asa, dir
        
        # same os, template name length different and space between cisco_asa and cisco_ios
        cisco_ios_show_capability_feature_routing.textfsm,  .*, cisco_ios, sh[[ow]] cap[[ability]] f[[eature]] r[[outing]]
        cisco_ios_show_interface_transceiver.textfsm, .*, cisco_ios, sh[[ow]] int[[erface]] trans[[ceiver]]
        cisco_ios_show_cdp_neighbors_detail.textfsm, .*, cisco_ios, sh[[ow]] c[[dp]] neig[[hbors]] det[[ail]]
        ```
        
        #### Tests
        Tests will be located in `./tests` with the following hierarchy:
        - `./tests/{{ vendor_os }}/{{ command_name }}/`
        
        The `{{ command_name }}` directory should include the `.raw` file that includes the raw output of the command to be parsed, and the `.yml` file of the returned structured data.
        ```bash
        $ ls tests/cisco_ios/show_clock/
        cisco_ios_show_clock.yml
        cisco_ios_show_clock.raw
        $ 
        ```
        
        ##### Raw version of input text
        
        The raw text file should contain **only** the output of the CLI command to be parsed. It should **not** contain the CLI command itself.
        
        An example of the proper format is shown below:
        
        ```bash
        $ cat tests/cisco_ios/show_clock/cisco_ios_show_clock.raw
        *18:57:38.347 UTC Mon Oct 19 2015
        $ 
        ```
        
        ##### YAML file containing expected parsed dictionary
        
        The parsed file should match the data that is returned from the `parse_output` function discussed in the beginning. Dictionary keys should be in lowercase.
        
        The parsed text file should be placed in a directory in the `./tests` directory with the same name as the template file but replace `.textfsm` file extension with `.yml`. The raw text file and the parsed text file should be in the same directory.
        **ex. ./tests/cisco_ios/show_clock/**
        
        There are available helpers to create the parsed file in the correct format (See _Development Helper Scripts_ below).
        
        An example of the proper format is shown below:
        ```bash
        $ cat ./tests/cisco_ios/show_clock/cisco_ios_show_clock.yml
        ---
        parsed_sample:
          - time: "18:57:38.347"
            timezone: "UTC"
            dayweek: "Mon"
            month: "Oct"
            day: "19"
            year: "2015"
        $ 
        ```
        
        Multiple `raw` and `parsed` files are supported per directory, and are encouraged, as there are differences depending on version, length, etc. Additional test files and more real life data helps ensure backwards compatibility is maintained as each template is updated and merged into the repo.
        
        All YAML files must adhere to the YAML standards defined in the `.yamllint` file in the root directory. Yamllint provides thorough documentation of their configuration settings [here](https://yamllint.readthedocs.io/en/stable/rules.html). 
        
        ##### Development Helper Scripts
        
        A cli utility is provided to assist with properly building the parsed files. This utility depends on some packages listed in the dev install requirements; see _Install and Usage_ for directions on installing the dev requirements. All arguments that can be passed to the script are mutually exclusive (i.e. you can only pass one argument). The file can be made executable with the `chmod +x development_scripts.py` command. The arguments are:
        
          * `-y`: Takes the path to a YAML file and ensures that the file adheres to the .yamllint settings
          * `-yd`: Takes a glob path to a directory or directories that will ensure all files ending in `.yml` adhere to the .yamllint settings
          * `-c`: Takes the path to a `.raw` file, and generates the parsed data and saves the results adjacent to the `.raw` file following the defined standards in .yamllint.
          * `-cd`: Takes a glob path to a directory or directories containing `.raw` files, and creates the appropriate parsed files in the appropriate directory.
        
          The `-y` and `-yd` arguments are designed to allow developers to generate the expected parsed file how they want, and ensure that the formatting adheres to the defined standard for this project.
        
          The `-c` and `-cd` arguments use `lib.ntc_templates.parse.parse_output()` to generate the parsed data; this means that you can use these arguments to auto-generate the test `.yml` file(s) for new templates; just be sure that the template's parsing behavior meets expectations. In order for the data to be parsed, the template must be placed in `templates/` and the `templates/index` file must be updated to correctly point to the template file(s).
        
        ```bash
        $ /development_scripts.py -yd tests/cisco_ios/show_mac-address-table
        tests/cisco_ios/show_mac-address-table/cisco_ios_show_mac-address-table2.yml
        tests/cisco_ios/show_mac-address-table/cisco_ios_show_mac-address-table3.yml
        tests/cisco_ios/show_mac-address-table/cisco_ios_show_mac-address-table5.yml
        tests/cisco_ios/show_mac-address-table/cisco_ios_show_mac-address-table4.yml
        tests/cisco_ios/show_mac-address-table/cisco_ios_show_mac-address-table.yml
        $
        $ ls tests/arista_eos/show_version/
        arista_eos_show_version.raw
        $
        $ ./development_scripts.py -c tests/arista_eos/show_version/arista_eos_show_version.txt
        $ ls tests/arista_eos/show_version/
        arista_eos_show_version.raw   arista_eos_show_version.yml
        $
        ```
        
        ### Updating/Fixing Existing Templates
        When either fixing a bug within a template or adding additional **Values** to be captured, additional test files should be added to ensure backwards compatibility and that the new data is being parsed correctly.
        
        To add additional raw/parsed tests for a command:
        - Navigate to `./tests/{{ vendor_os }}/{{ command_name }}/`
        - Create new `.raw` and `.yml` files within the directory, preferrably with a name identifying why the data is unique:
          * Existing raw: `./tests/cisco_ios/show_version/cisco_ios_show_version.raw`
          * New raw: `./tests/cisco_ios/show_version/cisco_ios_show_version_stack_platforms.raw`
          * Existing parsed: `./tests/cisco_ios/show_version/cisco_ios_show_version.yml`
          * New parsed: `./tests/cisco_ios/show_version/cisco_ios_show_version_stack_platforms.yml`
        
        #### Testing
        You can test your changes locally within your Git branch before submitting a PR. If you do not have **tox** already installed, you can do that using pip or your systems package manager. Tox should be ran inside the **ntc-templates** root directory. The tox file is configured to run against python3.6, so either python3.6 needs to be available, or the tox.ini file will need to be updated with an available Python version.
        ```bash
        $ tox
        GLOB sdist-make: /home/admin/ntc-templates/setup.py
        py36 inst-nodeps: /home/admin/ntc-templates/.tox/dist/ntc_templates-1.3.0.zip
        py36 installed: appdirs==1.4.3,atomicwrites==1.3.0,attrs==19.3.0,black==19.10b0,Click==7.0,future==0.18.2,importlib-metadata==0.23,more-itertools==7.2.0,ntc-templates==1.3.0,packaging==19.2,pathspec==0.6.0,pluggy==0.13.0,py==1.8.0,pyparsing==2.4.5,pytest==5.2.4,PyYAML==5.1.2,regex==2019.11.1,six==1.13.0,terminal==0.4.0,textfsm==1.1.0,toml==0.10.0,typed-ast==1.4.0,wcwidth==0.1.7,yamllint==1.18.0,zipp==0.6.0
        py36 runtests: PYTHONHASHSEED='3677750645'
        py36 runtests: commands[0] | black ./ --diff --check
        All done! ✨ 🍰 ✨
        8 files would be left unchanged.
        py36 runtests: commands[1] | yamllint tests/
        py36 runtests: commands[2] | pytest -vv
        ================================================================ test session starts =================================================================
        platform linux -- Python 3.6.8, pytest-5.2.4, py-1.8.0, pluggy-0.13.0 -- /home/jmcgill/repos/ntc-templates/.tox/py36/bin/python3.6
        cachedir: .pytest_cache
        rootdir: /home/jmcgill/repos/ntc-templates
        collected 428 items                                                                                                                                  
        
        tests/test_index_order.py::test_index_ordering PASSED                                                                                          [  0%]
        tests/test_structured_data_against_parsed_reference_files.py::test_raw_data_against_mock[tests/alcatel_sros/oam_mac-ping/alcatel_sros_oam_mac-ping.raw] PASSED [  0%]
        tests/test_structured_data_against_parsed_reference_files.py::test_raw_data_against_mock[tests/alcatel_sros/show_service_id_base/alcatel_sros_show_service_id_base.raw] PASSED [  0%]
        tests/test_structured_data_against_parsed_reference_files.py::test_raw_data_against_mock[tests/alcatel_sros/show_router_bgp_routes_vpn-ipv4/alcatel_sros_show_router_bgp_routes_vpn-ipv4.raw] PASSED [  0%]
        tests/test_structured_data_against_parsed_reference_files.py::test_raw_data_against_mock[tests/brocade_fastiron/show_lldp_neighbors/brocade_fastiron_show_lldp_neighbors.raw] PASSED [  1%]
        ...
        tests/test_structured_data_against_parsed_reference_files.py::test_raw_data_against_mock[tests/cisco_nxos/show_ip_interface_brief/cisco_nxos_show_ip_interface_brief.raw] PASSED [ 99%]
        tests/test_testcases_exists.py::test_verify_parsed_and_reference_data_exists PASSED                                                            [100%]
        
        ================================================================ 428 passed in 43.84s ================================================================
        ______________________________________________________________________ summary _______________________________________________________________________
          py36: commands succeeded
          congratulations :)
        $
        ```
        
        Questions
        ---------
        
        For any questions or comments, please feel free to swing by the [networktocode slack channel](https://networktocode.slack.com).
        
        Sign up [here](http://slack.networktocode.com/)
        
        CHANGELOG
        ---------
        
        Changelog should be generated using [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)
        
        FAQ
        ---
        
        From an outsiders view, some design choices, requirements, and testing procedures can seem arbitrary. The following list of FAQ is intended to 
        help provide context and better guide users and contributors of ntc-templates.
        
        _Why is there a requirement to use `Error` in every template?_
        
        Ensuring that the textfsm template can account for every line is the only method to ensure that data was not accidentally missed. Take the following example. Initially we account for status to be:
        
        `Value STATUS (up|down)`
        
        Given the result of:
        ```
        Interface                      Status         Protocol Description
        Gi0/0/1                        admin down     down
        Gi0/0/2                        up             up       ISP Connection
        Gi0/0/3                        down           down
        ```
        
        The output would miss the G0/0/1 interface, since the `STATUS` of `admin down` not known. If this was a low percentage use case, it can go 
        undetected, and result in incorrect information being returned. Instead, by ensuring that we fail fast, an `Error` is raised and hopefully 
        GitHub Issue is put in. 
        
        _Then why isn't `Error` used in all templates?_
        
        Initially the controls were not as strong, so many templates were put in until issues like the previous became an issue.
        
        _Does the project support requests for additional templates or additional data in an existing template?_
        
        We are no longer considering additional template requests at this time. The project has existed for over 5 years (initially within ntc-ansible)
        and nearly 200 template at this point any additional requests are essentially edge use cases. Meaning, for five years of usage, no one else 
        has asked for this feature. There is a limited maintainers who primarily use their free time to maintain the project.
        
        _Are you open to adding maintainers to the project?_
        
        Yes, we would consider giving a proven member of the project and community maintainer rights. Please inquiry emailing info@networktocode.com.
        
        _I simply want to add my template to the project, I do not want to add all of these tests and controls, can I just do so?_
        
        Short answer no, from an outsiders point of view the contributor requirements may seem overly complex, however features added by engineers 
        rarely come back to support them. The burden of support is on the maintainers and a certain level of quality assurance is required for that to 
        happen. That includes updating the index file appropriately and adding proper raw and expected value files.
        
        _Why don't you grab all of the data in the template?_
        
        There is no intention for ntc-templates to become feature complete, some of the data is less interesting, or can be better understood from 
        other commands. This is actually an area where the project chose to be loose, as we do not want to over-burden the contributor. If you feel 
        that the additional data should be added, you are welcome to add the feature, but it would not be considered a bug, and thus not supported by 
        the maintainers of the this project.
        
        _Why does the index order matter?_
        
        The "greediness" of the template match ensures that there longest matches first. For example, if `show ip ospf` was above `show ip ospf database`, the `show ip ospf` template would be used in both cases. The additional steps are because of general programmatic hygiene.
        
        _Will you accept my template if I create it?_
        
        In most cases, yes. However, there are a few edge cases. For example if requesting to add a `show cdp neighbors` when there is already a `show cdp neighbors details` template created. That is additional complexity added to the project with little value.
        
        _Why was my issue closed?_
        
        The most likely reasons are:
        
        * Did not follow the Issue creation template.
        * Did not provide the data required to act upon the request.
        * A prolonged time with no response.  
        
        _What is meant that this is a parsing project, not a data modeling project?_
        
        The project intends to parse, meaning post processing is assumed in order to normalize the data. This project does not intend to solve that 
        problem set. This is often noted in keys being different between the same command on multiple OS's. This was not intentional as at first there was not strict enforcement. That being said, there is no intention to retrofit this use case for the above stated reasons. This use case is 
        best handled in post processing.
        
        _I have never submitted a Pull Request before, how do I do so?_
        
        This is outside the scope of this project, but this [video](https://www.youtube.com/watch?v=rgbCcBNZcdQ) should provide the instructions on 
        how to do so.
        
        _Does this work on windows?_
        
        Based on this [PR](https://github.com/networktocode/ntc-templates/pull/672) it should, however this is not a supported option. We are willing 
        to take in qualified Pull Requests to have the feature, but have no intention of actively supporting.
        
        _Can you provide general guidance?_
        
        This is best handled via real time communication. Feel free to join our slack community (sign up information above) and reach out on the #networktocode channel. Please be aware of timezones, downtimes, and help is performed based on goodwill and timing, and not guaranteed.
        
        
        # Changelog
        
        ## [1.6.0](https://github.com/networktocode/ntc-templates/tree/1.6.0) (2020-10-02)
        
        [Full Changelog](https://github.com/networktocode/ntc-templates/compare/v1.5.0...1.6.0)
        
        **Implemented enhancements:**
        
        - Creation of a Faq [\#716](https://github.com/networktocode/ntc-templates/issues/716)
        
        **Closed issues:**
        
        - This is not a data modeling project. So is there any data modeling project can work with this? [\#802](https://github.com/networktocode/ntc-templates/issues/802)
        - Black 20.b0 breaks tox test [\#794](https://github.com/networktocode/ntc-templates/issues/794)
        - Unable to Parse show version on IOSv Device [\#780](https://github.com/networktocode/ntc-templates/issues/780)
        - TXTFSM will not process template even though Regex checker  says line is acceptable for ciena SAOS [\#779](https://github.com/networktocode/ntc-templates/issues/779)
        - cisco\_nxos\_show\_ip\_bgp\_summary.textfsm doesn't account for dual line bgp when output is too wide [\#766](https://github.com/networktocode/ntc-templates/issues/766)
        - arista eos show mac address-table is choking on case sensitivity on line Total Mac Addresses for this criterion: 0 [\#764](https://github.com/networktocode/ntc-templates/issues/764)
        - Cisco IOS - textfsm.parser.TextFSMError: State Error raised. Rule Line: 17.   [\#718](https://github.com/networktocode/ntc-templates/issues/718)
        
        **Merged pull requests:**
        
        - changes tests to import from lib [\#806](https://github.com/networktocode/ntc-templates/pull/806) ([jmcgill298](https://github.com/jmcgill298))
        - modify for show inventory all. [\#804](https://github.com/networktocode/ntc-templates/pull/804) ([yshu95](https://github.com/yshu95))
        - Change TextFSM Windows failure to a runtime failure \(instead of an import failure\) [\#803](https://github.com/networktocode/ntc-templates/pull/803) ([ktbyers](https://github.com/ktbyers))
        - Added juniper\_junos\_show\_lldp\_neighbors [\#797](https://github.com/networktocode/ntc-templates/pull/797) ([qduk](https://github.com/qduk))
        - Bugfix: Re-formatted development\_scripts.py and tests/test\_testcases\_… [\#795](https://github.com/networktocode/ntc-templates/pull/795) ([mjuenema](https://github.com/mjuenema))
        - Fix typos in README.md [\#792](https://github.com/networktocode/ntc-templates/pull/792) ([epryan](https://github.com/epryan))
        - Detect hostname on NX-OS platforms [\#789](https://github.com/networktocode/ntc-templates/pull/789) ([Yakuza-UA](https://github.com/Yakuza-UA))
        - Cisco ASA show access-list command templates update. [\#783](https://github.com/networktocode/ntc-templates/pull/783) ([HideoYukutake](https://github.com/HideoYukutake))
        - Updates to include capture on single word, no number model number [\#781](https://github.com/networktocode/ntc-templates/pull/781) ([jvanderaa](https://github.com/jvanderaa))
        - Bugfix: Account for "powered-up" value in the output of nxos show module [\#774](https://github.com/networktocode/ntc-templates/pull/774) ([mtbutler07](https://github.com/mtbutler07))
        - Dual line support for Cisco NX-OS 'ip bgp summary' command [\#772](https://github.com/networktocode/ntc-templates/pull/772) ([rtkennedy](https://github.com/rtkennedy))
        - Arista eos show mac address table [\#765](https://github.com/networktocode/ntc-templates/pull/765) ([JoeyG1973](https://github.com/JoeyG1973))
        - New Template: cisco\_nxos\_show\_ip\_interface [\#761](https://github.com/networktocode/ntc-templates/pull/761) ([network-dave](https://github.com/network-dave))
        - New Template: cisco\_nxos\_show\_hsrp\_all [\#760](https://github.com/networktocode/ntc-templates/pull/760) ([network-dave](https://github.com/network-dave))
        - New Template: cisco\_nxos\_show\_license\_usage [\#759](https://github.com/networktocode/ntc-templates/pull/759) ([network-dave](https://github.com/network-dave))
        - New Template: cisco\_nxos\_show\_interface\_description [\#758](https://github.com/networktocode/ntc-templates/pull/758) ([network-dave](https://github.com/network-dave))
        - Fixes \#716 [\#753](https://github.com/networktocode/ntc-templates/pull/753) ([itdependsnetworks](https://github.com/itdependsnetworks))
        
        ## [1.5.0](https://github.com/networktocode/ntc-templates/tree/1.5.0) (2020-06-14)
        
        [Full Changelog](https://github.com/networktocode/ntc-templates/compare/v1.4.2...1.5.0)
        
        **Implemented enhancements:**
        
        - Broadcom ICOS/Fastpath Support? [\#726](https://github.com/networktocode/ntc-templates/issues/726)
        
        **Fixed bugs:**
        
        - Cisco IOS show cdp neighbors issue [\#727](https://github.com/networktocode/ntc-templates/issues/727)
        - Cisco IOS Show Interface Switchport does not parse multi-line VLAN Trunks [\#642](https://github.com/networktocode/ntc-templates/issues/642)
        - Cisco ASA Show interface does not catch unnamed interfaces [\#627](https://github.com/networktocode/ntc-templates/issues/627)
        - Fixes missing interfaces on down interfaces [\#734](https://github.com/networktocode/ntc-templates/pull/734) ([jvanderaa](https://github.com/jvanderaa))
        
        **Closed issues:**
        
        - Cisco ASA "show vpn-sessiondb anyconnect" parser doesn't support IPv6 addresses [\#751](https://github.com/networktocode/ntc-templates/issues/751)
        - failing testsuite [\#743](https://github.com/networktocode/ntc-templates/issues/743)
        - I would like to contribute the PR for adding new cisco\_wlc\_ssh\_show\_ap\_image\_all [\#739](https://github.com/networktocode/ntc-templates/issues/739)
        - Template help for multiple states [\#737](https://github.com/networktocode/ntc-templates/issues/737)
        - textfsm.parser.TextFSMError: State Error raised. Rule Line: 15. Input Line: show ip arp [\#686](https://github.com/networktocode/ntc-templates/issues/686)
        - Arista eos - sh ip bgp summ vrf all and sh ip route vrf all template [\#666](https://github.com/networktocode/ntc-templates/issues/666)
        - Template Creation Help: cisco\_xr\_admin\_show\_environment\_power to get power supply, voltage and current   [\#648](https://github.com/networktocode/ntc-templates/issues/648)
        - New template: hp\_comware\_display\_interface\_textFSM [\#634](https://github.com/networktocode/ntc-templates/issues/634)
        - cisco\_asa\_show\_failover\_state [\#546](https://github.com/networktocode/ntc-templates/issues/546)
        
        **Merged pull requests:**
        
        - Arista eos show port channel summary [\#757](https://github.com/networktocode/ntc-templates/pull/757) ([JoeyG1973](https://github.com/JoeyG1973))
        - Arista eos show mac address table [\#756](https://github.com/networktocode/ntc-templates/pull/756) ([JoeyG1973](https://github.com/JoeyG1973))
        - Template correction for broadcom\_icos\_show\_mac-address-table [\#754](https://github.com/networktocode/ntc-templates/pull/754) ([alepodj](https://github.com/alepodj))
        - Fixes \#751 - IPv6 support for Cisco ASA 'show vpn-sessiondb anyconnect' [\#752](https://github.com/networktocode/ntc-templates/pull/752) ([smfeldman](https://github.com/smfeldman))
        - New Template added support for broadcom\_icos\_show\_vlan\_brief [\#750](https://github.com/networktocode/ntc-templates/pull/750) ([alepodj](https://github.com/alepodj))
        - New Template added support for broadcom\_icos\_show\_lldp\_remote-device\_all [\#749](https://github.com/networktocode/ntc-templates/pull/749) ([alepodj](https://github.com/alepodj))
        - New Template added support for broadcom\_icos\_show\_isdp\_neighbors [\#748](https://github.com/networktocode/ntc-templates/pull/748) ([alepodj](https://github.com/alepodj))
        - Bugfix: Account for totals - cisco\_ios\_show\_processes\_memory\_sorted.textfsm [\#747](https://github.com/networktocode/ntc-templates/pull/747) ([FragmentedPacket](https://github.com/FragmentedPacket))
        - Enhancement for Cisco IOS show interfaces [\#745](https://github.com/networktocode/ntc-templates/pull/745) ([Yakuza-UA](https://github.com/Yakuza-UA))
        - Added interfaces to arista\_eos\_show\_vrf template [\#744](https://github.com/networktocode/ntc-templates/pull/744) ([JoeyG1973](https://github.com/JoeyG1973))
        - Add new template for cisco\_wlc\_ssh\_sh\_ap\_image\_all [\#742](https://github.com/networktocode/ntc-templates/pull/742) ([conorwu1107](https://github.com/conorwu1107))
        - Update index to handle cisco\_ios show\_ip\_bgp\_all\_summary [\#738](https://github.com/networktocode/ntc-templates/pull/738) ([Niclnx](https://github.com/Niclnx))
        - Added support for broadcom\_icos command show\_mac-address-table [\#736](https://github.com/networktocode/ntc-templates/pull/736) ([alepodj](https://github.com/alepodj))
        - BugFix: IOS CDP - Better handling of output [\#735](https://github.com/networktocode/ntc-templates/pull/735) ([jmcgill298](https://github.com/jmcgill298))
        - New Template support for broadcom\_icos as a new OS and added show\_version command [\#733](https://github.com/networktocode/ntc-templates/pull/733) ([alepodj](https://github.com/alepodj))
        - New template for ubiquity edgeswitch: show version [\#732](https://github.com/networktocode/ntc-templates/pull/732) ([saaverdo](https://github.com/saaverdo))
        - New Template for Cisco NX-OS: show forwarding adjacency [\#722](https://github.com/networktocode/ntc-templates/pull/722) ([Yakuza-UA](https://github.com/Yakuza-UA))
        - BugFix: cisco\_ios\_show\_interfaces\_switchport: Made trunking\_vlans a list, and changed regex [\#671](https://github.com/networktocode/ntc-templates/pull/671) ([FragmentedPacket](https://github.com/FragmentedPacket))
        
        ## [1.4.2](https://github.com/networktocode/ntc-templates/tree/1.4.2) (2020-05-25)
        
        [Full Changelog](https://github.com/networktocode/ntc-templates/compare/v1.4.1...1.4.2)
        
        **Fixed bugs:**
        
        - cisco\_ios "show ip ospf database router" fails if OSPF domain includes an ASBR or an ABR [\#690](https://github.com/networktocode/ntc-templates/issues/690)
        - Arista EOS show ip route parse error [\#668](https://github.com/networktocode/ntc-templates/issues/668)
        - cisco\_ios\_show\_ip\_interface does not deal with ip address negotiated on Tunnel interface [\#644](https://github.com/networktocode/ntc-templates/issues/644)
        
        **Closed issues:**
        
        - Cisco IOS - textfsm.parser.TextFSMError: State Error raised. Rule Line: 17.   [\#718](https://github.com/networktocode/ntc-templates/issues/718)
        - show mac address-table Error: State Error raised. Rule Line: 41. [\#715](https://github.com/networktocode/ntc-templates/issues/715)
        - show mac address-table no dictionary in response [\#714](https://github.com/networktocode/ntc-templates/issues/714)
        - Having trouble with alcatel\_sros templates  [\#698](https://github.com/networktocode/ntc-templates/issues/698)
        - Cisco show cdp neighbor details leaves whitespace in capabilities field [\#683](https://github.com/networktocode/ntc-templates/issues/683)
        - cisco\_ios neighbor summary per address family new request. [\#664](https://github.com/networktocode/ntc-templates/issues/664)
        - cisco\_ios BGP neighbor advertised and received routes request. [\#663](https://github.com/networktocode/ntc-templates/issues/663)
        - Ciena naming doesn’t conform to Netmiko [\#662](https://github.com/networktocode/ntc-templates/issues/662)
        - Problem to add or install ntc-templates: [\#658](https://github.com/networktocode/ntc-templates/issues/658)
        - show\_vlan template for cisco ios does not return more than 60 interfaces [\#653](https://github.com/networktocode/ntc-templates/issues/653)
        - Unable to parse data by using "cisco\_ios\_show\_ip\_route\_summary.textfsm" [\#643](https://github.com/networktocode/ntc-templates/issues/643)
        - template request: show ip bgp neighbors x.x.x.x advertised-routes  [\#639](https://github.com/networktocode/ntc-templates/issues/639)
        
        **Merged pull requests:**
        
        - IOS: Allow deleted STATUS in show interfaces description [\#725](https://github.com/networktocode/ntc-templates/pull/725) ([itdependsnetworks](https://github.com/itdependsnetworks))
        - Update to enforce double-quote [\#724](https://github.com/networktocode/ntc-templates/pull/724) ([itdependsnetworks](https://github.com/itdependsnetworks))
        - Enhance Template for Cisco IOS: show adjacency [\#721](https://github.com/networktocode/ntc-templates/pull/721) ([Yakuza-UA](https://github.com/Yakuza-UA))
        - New templates: Cisco s300 - LLDP Neighbors, Interfaces status, Mac address table [\#719](https://github.com/networktocode/ntc-templates/pull/719) ([FragmentedPacket](https://github.com/FragmentedPacket))
        - EOS can have N/A in the age field for show ip arp [\#717](https://github.com/networktocode/ntc-templates/pull/717) ([ktbyers](https://github.com/ktbyers))
        - New Template: juniper\_junos\_show\_lacp\_interfaces [\#713](https://github.com/networktocode/ntc-templates/pull/713) ([ichisuke55](https://github.com/ichisuke55))
        - New Template: paloalto\_panos\_show\_interface\_management.textfsm [\#712](https://github.com/networktocode/ntc-templates/pull/712) ([FragmentedPacket](https://github.com/FragmentedPacket))
        - Bugfix: EOS - show\_interfaces - Added proper link\_status capture for admin down [\#711](https://github.com/networktocode/ntc-templates/pull/711) ([FragmentedPacket](https://github.com/FragmentedPacket))
        - Bugfix: Panos sh intf hardware - Account for unk for SPEED/Duplex [\#710](https://github.com/networktocode/ntc-templates/pull/710) ([FragmentedPacket](https://github.com/FragmentedPacket))
        - BugFix: Updated index file to work for show ip bgp neighbors x.x.x.x adv-routes [\#709](https://github.com/networktocode/ntc-templates/pull/709) ([FragmentedPacket](https://github.com/FragmentedPacket))
        - BugFix: Ciena Saos: Added more use cases to vlan\_show [\#707](https://github.com/networktocode/ntc-templates/pull/707) ([FragmentedPacket](https://github.com/FragmentedPacket))
        - paloalto\_panos\_debug\_swm\_status.textfsm new template [\#706](https://github.com/networktocode/ntc-templates/pull/706) ([ancoleman](https://github.com/ancoleman))
        - New Template for Cisco NX-OS: show ip adjacency [\#704](https://github.com/networktocode/ntc-templates/pull/704) ([Yakuza-UA](https://github.com/Yakuza-UA))
        - New Template for Cisco IOS: show ip vrf interfaces [\#702](https://github.com/networktocode/ntc-templates/pull/702) ([Yakuza-UA](https://github.com/Yakuza-UA))
        - Existing Template for Cisco NX-OS: show ip interface brief \(VRF support added\) [\#701](https://github.com/networktocode/ntc-templates/pull/701) ([Yakuza-UA](https://github.com/Yakuza-UA))
        - New Template: juniper\_junos\_show\_ethenet-switching\_table.textfsm [\#700](https://github.com/networktocode/ntc-templates/pull/700) ([ichisuke55](https://github.com/ichisuke55))
        - New Template for Cisco IOS: traceroute \<destination\> \[options\] [\#699](https://github.com/networktocode/ntc-templates/pull/699) ([Yakuza-UA](https://github.com/Yakuza-UA))
        - BugFix: show vpn-sessiondb anyconnect - Index and Username ends up on… [\#697](https://github.com/networktocode/ntc-templates/pull/697) ([anttof](https://github.com/anttof))
        - Asa bgp summary [\#696](https://github.com/networktocode/ntc-templates/pull/696) ([corvese](https://github.com/corvese))
        - New Template for Cisco IOS: show ip cef \[detail\] [\#695](https://github.com/networktocode/ntc-templates/pull/695) ([Yakuza-UA](https://github.com/Yakuza-UA))
        - Ciena sshkeystatus [\#693](https://github.com/networktocode/ntc-templates/pull/693) ([georgesnow](https://github.com/georgesnow))
        - Cisco IOS 'show adjacency .\* detail' [\#692](https://github.com/networktocode/ntc-templates/pull/692) ([Yakuza-UA](https://github.com/Yakuza-UA))
        - Bugfix: Accounted for ASBR/ABR in cisco\_ios\_show\_ip\_ospf\_database\_router [\#691](https://github.com/networktocode/ntc-templates/pull/691) ([FragmentedPacket](https://github.com/FragmentedPacket))
        - HP Procurve show lldp info remote device [\#689](https://github.com/networktocode/ntc-templates/pull/689) ([sliddjur](https://github.com/sliddjur))
        - HP Procurve show lldp info remote-device detail [\#688](https://github.com/networktocode/ntc-templates/pull/688) ([sliddjur](https://github.com/sliddjur))
        - HP Procurve show trunks [\#687](https://github.com/networktocode/ntc-templates/pull/687) ([sliddjur](https://github.com/sliddjur))
        - BugFix: \(IOS\) - show cdp neighbors detail - Prevent capturing trailing whitespace for capabilities [\#684](https://github.com/networktocode/ntc-templates/pull/684) ([FragmentedPacket](https://github.com/FragmentedPacket))
        - BugFix: IOS - show ip bgp summary: Added new field ADDR\_FAMILY for any that may have an address family [\#679](https://github.com/networktocode/ntc-templates/pull/679) ([FragmentedPacket](https://github.com/FragmentedPacket))
        - BugFix: IOS - show ip bgp - Account for VRF info within routing table [\#678](https://github.com/networktocode/ntc-templates/pull/678) ([FragmentedPacket](https://github.com/FragmentedPacket))
        - New Template: \(IOS\) show\_ip\_bgp\_neighbors\_advertised\_routes [\#674](https://github.com/networktocode/ntc-templates/pull/674) ([FragmentedPacket](https://github.com/FragmentedPacket))
        - Enhancement: Added CRC and Abort Values to ios\_show\_interfaces template [\#673](https://github.com/networktocode/ntc-templates/pull/673) ([mtbutler07](https://github.com/mtbutler07))
        - Remove "terminal" dependency [\#672](https://github.com/networktocode/ntc-templates/pull/672) ([ktbyers](https://github.com/ktbyers))
        - BugFix: cisco\_ios\_show\_ip\_interface: Account for Internet address that is negotiated [\#670](https://github.com/networktocode/ntc-templates/pull/670) ([FragmentedPacket](https://github.com/FragmentedPacket))
        - BugFix: arista\_eos\_show\_ip\_route: Accounting for new data for WARNING output & capture ecmp routes [\#669](https://github.com/networktocode/ntc-templates/pull/669) ([FragmentedPacket](https://github.com/FragmentedPacket))
        - Enhancement: cisco\_ios\_show\_redundancy - Add New fields [\#667](https://github.com/networktocode/ntc-templates/pull/667) ([FragmentedPacket](https://github.com/FragmentedPacket))
        - Ciena SAOS templates \(naming fix\) [\#665](https://github.com/networktocode/ntc-templates/pull/665) ([georgesnow](https://github.com/georgesnow))
        - Adds support for Cisco FTD [\#654](https://github.com/networktocode/ntc-templates/pull/654) ([micahculpepper](https://github.com/micahculpepper))
        - New Template: hp\_comware\_display\_ip\_routing-table & hp\_comware\_display\_device\_manuinfo [\#623](https://github.com/networktocode/ntc-templates/pull/623) ([xdai555](https://github.com/xdai555))
        
        ## [1.4.1]
        ### Fixed
        - [#617] - IOS show ip ospf database router: Removed reliance on static spacing
        - [#620] - NXOS show fex: Allow spaces in descriptions
        - [#621] - Juniper show arp, etc.: Account for virtual chassis output (`{master:0}`)
        - [#626] - ASA show vpn-sessiondb anyconnect: Require index, capture different format style
        - [#650] - IOS show ip ospf database network: Change to allow one or more whitespace at the beginning of the line rather than 1 or more due to different output
        - [#647] - ASA show route: Allow multiline route statements
        - [#659] - IOS show mac address-table: Allow VLAN to be non-whitespace to allow N/A as an option
        
        ### Added
        - [#618] - IOS show ip ospf database network: New template
        - [#619] - HP Comware display lldp neighbor information verbose: New template
        - [#625] - ASA show vpn-sessiondb anyconnect: New template
        - [#628] - Cisco WLC show mobility sum: New template
        - [#631] - ASA show vpn-sessiondb anyconnect: Account for new data for assigned/public IP, group policy, and tunnel group
        - [#629] - ASA show crypto ipsec sa - Add LOCAL_ADDRESS_NAME, CURRENT_PEER_NAME, DYNAMIC_PEER_NAME, LOCAL_CRYPTO_ENDPOINT_NAME, REMOTE_CRYPTO_ENDPOINT_NAME
        - [#632] - ASA show nat: Added SERVICE_PROTOCOL
        - [#635] - IOS show ip route summary: New template
        - [#636] - ASA show vpn-sessiondb: New template
        - [#638] - ASA show inventory: Capture PID and VID withoout serial
        - [#637] - Cisco WLC show band select: New template
        
        ## [1.4.0]
        ### Fixed
        - [#548] IOS show mac address-table: Account for Total Mac Addresses
        - [#565] IOS show license: Avoid trailing spaces for features
        - [#575] NXOS show version: Match N5K PLATFORM & LAST_REBOOT captures split words
        - [#574] ASA show failover: Account for new output (IPS)
        - [#577] IOS show mac address-table: Account for Multicast Entries
        - [#582] NXOS show interface transceiver: Remove requirement for TYPE
        - [#585] IOS show mac address-table: Fixed ordering for TYPE2
        - [#587] IOS show interfaces switchport: Account for Vepa Enabled and Operational Dot1q Ethertype
        - [#584] IOS show switch detail: Account for Mac persistency wait time
        - [#589] EOS show ip route: Filldown for DISTANCE and METRIC - Added new data formats for VRF and NEXT_HOP and INTERFACE
        - [#592] Fortinet get router info bgp summary: Account for more data, fix UP_DOWN regex from word to non-whitespace
        - [#603] IOS show ip access-list: Update PROTOCOL to capture numbered protocols
        - [610] Aruba os show arp: Fix tests to have the full output from the command and device
        - [#608] Vyatta VyOS show interfaces: Capture IP_ADDRESS with or without netmask
        - [#614] IOS show interfaces status: Remove reliance on whitespaces
        ### Added
        - [#406] Testing: Add yamllint to test suite
        - [#407] Testing: Add python black to test suite
        - [#553] IOS show lldp neighbors: Added CAPABILITIES capture group
        - [#554] IOS show logging: New template
        - [#563] IOS show interfaces switchport: Added ADMIN_MDOE capture group
        - [#562] ASA show logging: New template
        - [#564] NXOS show interface transceiver: New template
        - [#567] XR show arp: New template
        - [#572] IOS show lldp neighbors detail: Added SERIAL capture group
        - [#573] ASA show arp: New template
        - [#578] Fortinet get system interface: New template
        - [#576] Huawei VRP display lldp neighbor: New template
        - [#581] Cisco WLC show vlan sum: New template
        - [#580] XR show interfaces summary: New template
        - [#590] IOS show ip bgp neighbors: New template
        - [#591] NXOS show vdc: New template
        - [#595] Checkpoint GAIA show arp dynamic all: New template
        - [#593] IOS show module: New template
        - [#597] Huwai VRP display version: New template
        - [#602] NXOS show vrf interface: New template
        - [#598] IOS show running-config partition access list: Added TCP_FLAG capture group
        - [#598] IOS show running-config partition access list: Convert COMMENT to list
        - [#598] IOS show running-config partition access list: Update PROTOCOL to include numbered protocols
        - [#596] XR admin show environment power: New template
        - [#594] Aruba os show arp: New template
        - [#605] SG300 show version: New template
        - [#604] NXOS show vlan: Added INTERFACES capture group, Require VLAN_ID
        - [#600] IOS show mpls interfaces: New template
        - [#599] IOS show etherchannel summary: New template
        - [#611] NXOS show interface: Added MODE capture group
        - [#612] NXOS show interfaces switchport: Added ACCESS_VLAN_NAME and NATIVE_VLAN_NAME capture groups
        - [#609] HP Comware display ip interface: New template
        - [#606] IOS show ip ospf database router: New template
        ### Changed
        - [#406] Helpers: Added development_helpers cli utility to replace existing helpers
        ### Deprecated
        ### Removed
        
        ## [1.3.0]
        ### Fixed
        - [#401] ASA show route: Fix `UPTIME` to account for additional output formats
        - [#445] IOS show ip eigrp topology: Fix `FD` to allow value to be "Inaccessible"
        - [#465] ASA show failover: Add line to match FirePOWER module
        - [#466] PAN show arp: Fix `MAC` capture group to account for entries that are "incomplete"
        - [#471] Procurve show arp: Fix `IP` capture group to account for IP Adresses that are "Incomplete"
        - [#471] Procurve show arp: Fix `PORT` capture group to account for interfaces that contain more than just digits
        - [#474] IOS show ip mroute: Fix `Value UP_TIME`, `EXPIRATION_TIME`, `OUTGOING_MULTICAST_UP_TIME (\S+)`, and `OUTGOING_MULTICAST_EXPIRATION_TIME` to account for additional time formats
        - [#479] NXOS show interface brief: Fix capturing `MODE` values of "pvlan" and "fabric"
        - [#480] IOS show cdp neighbors: Allow for table data to have leading spaces but not require it
        - [#485] IOS show mac-address-table: Allow for table data to have leading spaces but not require it (VLAN IDs are left adjusted so VLANs from 1000 on do not have a leading space)
        - [#487] IOS show authentication sessions: Add match for lines separating output with a "-" in order to avoid capturing them as part of normal table data
        - [#488] EOS show interfaces status: Fix `NAME` and `STATUS` capture groups to support disabled interfaces
        - [#494] IOS show ip interface: Add matches for additional output lines
        - [#495] IOS show ip interface: Add matches for additional output lines
        - [#497] ASA show version: Fix `MAX_INTF` capture group to account for `Unlimited`
        - [#497] ASA show version: Fix `HARDWARE` capture group to account for trailing commas
        - [#499] ASA show inventory: Add matches for additional output lines
        - [#503] IOS show standby: Fix output that spread across two lines
        - [#505] NXOS show ip bgp neighbors: Fix matching entries accurately when neighbors are in a "down" state; move to `Continue.Record` to record on new entries instead of "last expected line" of output data
        - [#516] IOS show ip interface: Add matches for additional output lines
        - [#517] EOS show ip bgp summary: Fix capturing entries with more explicit match line
        - [#519] XR show version - Fix `VERSION`, `UPTIME`, and `HARDWARE` to account for CRS syntax
        - [#525] IOS: Added matches for vty timestamp lines
        - [#532] IOS show snmp user: Fix capture groups to support all non-whitespace characters (e.g. "-" in string values)
        - [#538] IOS show interfaces switchport: Added matches for additional output lines
        ### Added
        - [#378] XR show ip route: Added `VRF` capture group
        - [#391] WLC show client detail: Added new template
        - [#419] ASA dir: Added `TOTAL_PERCENT_FREE` capture group for capturing percentage of bytes free
        - [#425] WLC show exclusionlist: Added new template
        - [#445] IOS show ip eigrp topology: Added `SOURCE` capture group
        - [#446] ASA show asp drop: Added `FLOW_DROP_IPSEC_SELECTOR_FAILURE`, `FLOW_LAST_CLEARED`, `MP_SVC_BAD_LENGTH`, and `SSL_FIRST_RECORD_INVALID` capture groups
        - [#464] Comware display counters bound interface: Added new template
        - [#468] Firebox show arp: Added new template
        - [#476] IOS show ip bgp summary: Added `UP_DOWN` capture group
        - [#478] NXOS show ip interface brief: Added new template
        - [#481] NXOS show ip bgp neighbor: Added `INBOUND_ROUTEMAP` and `OUTBOUND_ROUTEMAP` capture groups
        - [#482] XR admin show inventory: Added new template
        - [#486] NXOS show route-map: Added new template
        - [#489] NXOS show forwarding ipv4 route: Added new template
        - [#491] IOS show switch detail: Added new template
        - [#492] XR show ipv6 neighbors: Added new template
        - [#493] Fastiron show arp: Added new template
        - [#496] EOS show ip helper-address: Added new template
        - [#501] WLC show 802.11a|b: Added new template
        - [#510] WLC show 802.11 cleanair config: Added new template
        - [#512] VRP display interface brief: Added new template
        - [#512] VRP display temperature: Added new template
        - [#513] WLC show rf profile-summary: Added new template
        - [#514] IOS show process memory sorted: Added new template
        - [#515] WLC show inventory: Added new template
        - [#518] Ciena software show: Added new template
        - [#521] IOS show ip route: Added `VRF` capture group
        - [#524] EOS show vrf: Added new template
        - [#526] WLC show advanced 802.11 channel: Added new template
        - [#527] IOS show interfaces switchport: Added `VOICE_VLAN` capture group
        - [#527] NXOS show interfaces switchport: Added `VOICE_VLAN` capture group
        - [#529] Fortios get router info bgp summary: Added new template
        - [#531] NXOS show interface: Added `LAST_LINK_FLAPPED` capture group
        - [#533] IOS show license: Added new template
        - [#539] WLC show interface summary: Added new template
        - [#540] IOS show environment temperature: Added new template
        ### Changed
        - [#378] XR show ip route: Update index to allow syntax of "show ip route" or "show route"
        - [#497] ASA show version: Change `SERIAL` to be a list for clusters
        - [#503] IOS show standby: Update index to allow syntax including specifying an interface
        - [#520] IOS show ip bgp summary: Update template and index to support VRF syntax
        - [#520] EOS show ip bgp summary: Update template and index to support VRF syntax
        - [#521] IOS show ip route: Add `Error` for unmatched lines to ensure accurate data collection
        - [#522] EOS show bgp summary: Update index to allow syntax of "show bgp evpn summary"
        - [#523] IOS show mac-address-table: Add `Error` for unmatched lines to ensure accurate data collection
        - [#528] IOS show interfaces switchport: Update template to use `Continue.Record` syntax to record on new entries instead of "last expected line" of output data
        - [#528] NXOS show interfaces switchport: Update template to use `Continue.Record` syntax to record on new entries instead of "last expected line" of output data
        ### Deprecated
        ### Removed
        
        ## [1.2.1]
        ### Fixed
        - Bumped `__version__` in `__init__` file
        ### Added
        ### Changed
        ### Deprecated
        ### Removed
        
        ## [1.2.0]
        ### Fixed
        - [#389] IOS-XR show interfaces: Fixed matching speed and duplex for bundle-ethernet interfaces
        - [#442] IOS-XR show version: Fixed matching `build_host` field that uses both "Build" and "Built" keywords
        - [#455][#456] Template files were inaccessable when installing from local directory; now works when using `pip -e`
        ### Added
        - [#470] ASA show version: Add capturing `compiled_date` field
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Programming Language :: Python :: 3
Description-Content-Type: text/markdown
Provides-Extra: dev
