Release Notes¶
0.5.1¶
CHANGES¶
- Enhancing
getresults return to return only parsing result for matched template
0.5.0¶
Features¶
-
gettemplate collection – newttp_templates/get/directory holds getter templates modelled after NAPALM getters. Each getter bundles platform-specific<extend>references and returns a normalised, platform-agnostic structure regardless of which vendor's output is supplied. -
inventorygetter template – first getter:get/inventory.txtsupports Cisco IOS-XR (cisco_xr), Cisco NXOS (cisco_nxos,nxos), Arista EOS (arista_eos,eos), and Juniper Junos (juniper_junos,junos). Returns a list of dicts with keysslot,description,module,serial. -
get_template(get=...)argument –get_templatenow accepts agetkeyword argument to load a getter template by name (e.g.get_template(get="inventory")). The.txtextension is optional. -
parse_output(get=..., platform=...)routing –parse_outputupdated to handle getter templates: whengetis supplied theplatformargument is required and is used to select the correct platform-specific input section inside the getter template. RaisesValueErrorwhenplatformis omitted andRuntimeErrorwhen no input in the getter supports the given platform. -
list_templates()includes"get"key – the dict returned bylist_templatesnow has a"get"top-level key listing all getter template filenames. -
list_templates_refs()new function – returns a flat, sorted list ofttp://URI strings for every template across all collections (platform,yang,misc,get). Every URI is directly loadable viaget_template(path=ref). Supports the samepatternglob filter aslist_templates.
Templates¶
- Added
ttp://get/inventory.txt– multi-platform inventory getter template. - Updated
ttp://platform/cisco_xr_show_inventory.txt– addedplatformlist to the input block for getter routing compatibility. - Updated
ttp://platform/arista_eos_show_inventory_pipe_json.txt– addedplatformlist witharista_eosandeosentries. - Updated
ttp://platform/cisco_nxos_show_inventory_pipe_json_pretty.txt– addedplatformlist withcisco_nxosandnxosentries. - Updated
ttp://platform/juniper_junos_show_chassis_hardware_pipe_json.txt– addedplatformlist withjuniper_junosandjunosentries.
v0.4.0¶
Bugs¶
- Bug 1 –
parse_outputnow raisesValueErrorwith a descriptive message when called without any valid template-locating argument (previously theNonereturned byget_templatewas silently forwarded to the TTP constructor, causing confusing downstream errors). - Bug 2 – Fixed path-traversal vulnerability (OWASP A01) in
get_template. The resolved template filename is now verified withos.path.realpathto confirm it falls inside the package directory before the file is opened; crafted paths such aspath="../../etc/passwd"now raiseValueError. - Bug 3 – Fixed
list_templatescrashing withAttributeErrorwhen a template file is placed directly inside themisc/root directory (rather than in a subdirectory). The leaf-assignment logic now checks whether the target key already holds a dict; if it does, the files are stored under the empty-string sub-key instead of overwriting the dict with a list. - Bug 4 –
list_templatesnow returns file lists in sorted alphabetical order. Previouslyos.walk/os.listdirproduced non-deterministic ordering across operating systems and filesystems, making the output unreliable for callers and difficult to test reliably. - Bug 5 – Fixed prefix-ambiguity in
short_interface_names(ttp_vars.py). The2GEpatterns'^Tw'and'^Two'were broad enough to also matchTwoHundredGigabitEthernet*(200GE) names because2GEappeared before200GEin the dict. Negative look-ahead anchors (r'^Tw(?!entyFive|oHundred)'andr'^Two(?!Hundred)') were added so only genuine 2GE interface names are matched.
Changes¶
- Python minimum version bumped to 3.10.
- Improved logging throughout all public API functions.
- Improved type hint annotations and converted docstrings to Google format.
- Improved inline comments for clarity.
- Enhancing tests suite
v0.3.2¶
Templates¶
- Added
misc/Netboxfolder with templates for Junos, IOS-XR, and Arista devices configuration.
v0.3.1¶
Templates¶
- Added
ttp://misc/N2G/cli_ip_data/arista_eos.txttemplate to parse Arista EOS IP details for N2G L3 diagrams.
v0.3.0¶
Features¶
- Added
list_templatesmethod to list available templates.
Bugs¶
- Fixed Cisco IOS
show running-configurationto correct command:show running-config. - Updated N2G IOS-XR
cli_ip_datatemplate to matchipv4 address 1.1.1.1/32style config.
Templates¶
- Updated all N2G templates to have default input with required commands and platform attributes.
v0.2.0¶
Changes¶
- Moved to Poetry for dependency management.
Templates¶
Added templates:
ttp://platform/juniper_junos_show_isis_database_verbose_pipe_no_more.txtttp://misc/N2G/cli_l2_data/juniper.txtttp://misc/N2G/cli_isis_data/juniper.txtttp://platform/arista_eos_show_hostname.txt
Modified templates:
ttp://platform/cisco_xr_show_isis_database_verbose.txt– updated produced data structure to key LSPs by hostname.
v0.1.3¶
Bugs¶
- Fixed TTP Templates docs example path formation: the correct path is
ttp://misc/Netmiko/cisco.ios.arp.txt, notttp://misc.Netmiko.cisco.ios.arp.txt.
New Templates¶
- Added N2G templates.
v0.1.2¶
Minor Features¶
- Added support for
get_templateto source a template by path using thettp://URI scheme. - Added
ttp_vars.pyto repository to store common TTP variables. - Added
short_interface_namesdictionary inttp_vars.pyfor use withresuballto normalize interface names to shorter abbreviations.
New Templates¶
misc/Netmiko/cisco.ios.arp.txtmisc/Netmiko/cisco.ios.cfg.ip.txtmisc/Netmiko/cisco.iosxr.arp.txtmisc/Netmiko/huawei.vrp.cfg.ip.txtyang/openconfig-lldp_cisco_ios.txtyang/openconfig-lldp_cisco_nxos.txtyang/openconfig-lldp_cisco_xr.txtmisc/Netmiko/cisco.iosxr.cfg.ip.txtplatform/arista_eos_show_hostname.txt