Releases: napalm-automation/napalm
5.0.0
IMPORTANT
Starting with this release, NAPALM offers support for Python 3.8+ only.
Python 3.7 support has been dropped (since it is now end-of-life, see https://www.python.org/downloads/release/python-370/), while adding support for Python 3.12.
Breaking changes for Arista EOS
Beginning with this release, NAPALM only supports Arista EOS 4.23 and later. On this occasion, the eos_fn0039_config
optional argument has also been removed. This optional argument was used to transform old style configuration to the new style, available beginning with EOS release 4.23.0, as per FN 0039.
New features
- Add
format
optional variable to core drivers to support get_config() options by @s1mplesimon in #1972 - [Junos] Add
huge_tree
as an optional_arg in junos to fix xml huge tree node #2012 by @architkhatri98 in #2013 - [Validate] Add tolerance percentage by @sjhloco in #1813
Improvements and bug fixes
- [NX-OS] Update nxos.py to expose file transfer errors by @NoahFeinberg in #1974
- [Validate] Use isinstance(list) instead of types comparison by @jsenecal in #1985
- [Junos] Do not try to parse a "none" value and convert it to "" for get_ipv6_neighbors_table by @jsenecal in #1983
- [JUNOS] Fix call to lxml.etree.ElementBase.getparent erroneously using get_parent by @chrismooredev in #1796
- [NX-OS SSH, IOS] IPv6 Regex update by @ubaumann in #2016
- [IOS] Make get_vlans name whitespace aware , see #1789 by @network-shark in #2010
- [NX-OS] Fix get_bgp_neighbor when neighbor is admin shut by @tcaiazza in #1980
- [JUNOS] get_bgp_config() - ValueError: Can't convert with callable None (Fix #1753) by @jtishey in #1754
- [IOS] get_bgp_neighbors same IP different VRF - Fix #1497 #1231 by @jtishey in #1751
- [NX-OS] Handle non standard output for PSU's in get_environment by @tcaiazza in #1809
- [IOS-XR] Use
LastStateTransitionTime
to populatelast_flapped
forget_interfaces()
in IOS-XR by @jlixfeld in #1966 - [Junos] Fix
Can't convert with callable None
by @teresalves in #1931 - [NX-OS] Closes #2005: Change rollback behavior by @decoupca in #2006
- Optimize Dockerfile by @duhow in #1942
- Add .dockerignore file for Docker build by @mirceaulinic in #2061
New Contributors
- @NoahFeinberg made their first contribution in #1974
- @jsenecal made their first contribution in #1985
- @chrismooredev made their first contribution in #1796
- @s-t-e-v-e-n-k made their first contribution in #2002
- @sjhloco made their first contribution in #1813
- @jlixfeld made their first contribution in #1966
- @teresalves made their first contribution in #1931
- @decoupca made their first contribution in #2006
- @duhow made their first contribution in #1942
- @architkhatri98 made their first contribution in #2013
- @s1mplesimon made their first contribution in #1972
Full Changelog: 4.1.0...5.0.0
4.1.0
Improvements
- Improve get_bgp_config behavior across platforms.
- EOS and Salt add optional_arg force_cfg_session_invalid that allows the config session to be invalidated on failure.
- Improve EOS VRF parsing
Bug and doc fixes
- Minor doc fixes
- CI-CD fixes
- Properly close Netmiko SSH connections for EOS-SSH
- Improve EOS get_bgp_neighbors()
- Increase default commit_config timeout on IOS/IOS-XE
- NX-OS pull full configuration for merge operation diff
- Improve NX-OS SSH Netmiko behavior (for Netmiko V4)
4.0.0
Type Hinting
After months of work, @Kircheneer added type hinting support in #1412 and #1476.
New features
Add Commit-Confirm support for Cisco IOS #1691
New encoding
argument added to the cli
method to return the output of operational / show commands in the desired format. Currently supported on Junos and EOS. #1637 & #1663
Added ttp_parse
helper function to codebase #1563
Replaced ciscoconfparse
with netutils
#1565
New SSH transport available for Arista EOS - thanks @thomasbridge74 #1502
Improvements
Adds mac
and ip
checks for getters #1560
The uptime
field in the get_facts
return is now float
type: #1651
[NX-OS] Improve compare_config for NXOS partial merging #1567
[EOS] support arbitrary transport class #1643 & #1647
[EOS] move config lock check to _load_config #1642
[EOS] Handle modern memory output from Arista EOS 4.27+ #1673
[IOS-XR] Improving get_facts behavior to handle XML changes in newer OS versions #1667
[Junos] make sure we don't duplicate LLDP neighbor entries #1640
Bug fixes
[Junos] find for system uptime
element #1675
[IOS-XR] get_lldp_neighbor_details
does not support 'N/A' capabilities #1681
[IOS-XR] get_lldp_neighbor_details
add alternative lldp local interface key #1682
[NX-OS] get_interfaces
fix description on SVI interfaces #1571
[IOS] get_vlans
does not return all interfaces if they wrap around in the config #1569
[Junos] Fix #1549: Check peer admin status from the BGP options #1566
[EOS] get_bgp_neighbors_detail
only returns back a single peer for a certain EOS platform #1573
3.4.1
Pinning to junos-eznc>=2.6.3.
Release 3.4.0
Junos
- Junos discard_config on error fix #1448
- Junos LLDP improvements #1470
- Junos pass self.ignore_warning to diff call in compare_config() #1480
NX-OS
- Improve NX-API error messages #1461
- NX-OS disable SSL InsecureRequestWarning if ssl_verify is False #1510
- NX-OS unknown interface MTU and unknown speed as -1 #1511
- NX-OS improve JSON handling in newer NX-OS versions #1490
IOS
- IOS allow BGP configuration with no explicit AFI #1477
- Escape vlan_name on IOS before building regex string #1546
- Handle get_network_instances for IOS devices that do not support show vrf detail #1547
EOS
- EOS fix get_bgp_config mismatch between neighbors and peer-group #1503
IOS-XR
- Pass IOS-XR NETCONF optional_args to ncclient connect #1535
General
- Bandwidth parameter returned as a float
- Pin Netmiko to require Netmiko version 3.3.X or 3.4.X
Release 3.3.1
[IOS-XR] Fix #1330 (get_bgp_neighbors_detail
: flap_count return a negative value) #1449
[IOS] Fix #1387 (get_network_instances
fails KeyError
when deleting item from interfaces) #1447
[Junos] Fix bgp flap_count
issue for iosxr_netconf #1457
[Junos] Change the function cli
when result is xml object #1456
[EOS, IOS, Junos, NXOS] Add source_interface
argument to ping
#1455
3.3.0
NETCONF driver for IOS-XR
Over the last 18 months Cisco has been working on implementing a NETCONF-based driver for the IOS-XR platforms. The new driver is now available in the core NAPALM library, besides the existing driver (which uses the proprietary XML API). The minimum IOS-XR version required is 7.0. Check out https://napalm.readthedocs.io/en/latest/support/iosxr_netconf.html for more information and caveats.
Many thanks to the Cisco team, in particular to @neelimapp and @111pontes for their work, and @ktbyers for coordinating these efforts.
As this is a brand new driver, you may encounter various issues, and we will welcome your reports and pull requests to fix those!
Commit Confirmed
Beginning with this release, NAPALM natively supports commit confirmed operations. See https://napalm.readthedocs.io/en/latest/tutorials/changing_the_config.html#committing-the-configuration-with-a-required-confirmation for more usage details.
New Features
[Junos] Add get_vlans for Junos #1398
[Junos] Added Support for Logical Interfaces Counters #1382
[Junos] Use aply-groups inheritance on get-configuration RPC calls #1363
[Core] Adding cannonical mapping for 25GE, 50GE, 200GE and 400GE interfaces #1329
Bug Fixes
[EOS] Fix for BGP description not found by get_bgp_neighbors in some EOS versions #1356
[EOS] Set next hop to something valid for vxlan routes #1347
[EOS] Fix naplam.get_route_to() not working on EOS:failed to detect a valid IP address from u'' #1346
[IOS-XR] XR 7+: get_lldp_neighbors_detail query only the NodeTable #1404
[IOS-XR] Resolve #1181 (IOS-XR get_environment() throws an error in 6.3.2 on NCS5501) and reduce the get_facts heavy workload #1400
[IOS-XR] Look up the KeepAliveTime and HoldTime keys in the VRF tree #1290
[Junos] Fix sanitized bug for Junos #1414
[Junos] Multiple next-hop self config stanzas generate a list #1362
[Junos] Add wildcard for set matches on junos #1318
[Junos] Fix mapping for Juniper devices with Netmiko #1288
[IOS] Handle control plane interface #1411
[IOS] Set minimum ttl to zero to fix issue #1320 #1321
[NX-OS] Cast uptime values to int before processing #1343
3.2.0
New features
[EOS] Add get_vlans
getter #1279
[NX-OS] Feature/nxos ssh get_interfaces_counters
#1287
Bug fixes and behaviour changes
[IOS] get_network_instances
fixes, see #1095 for more details.
[IOS-XR] get_route_to
fix pyIOSXR.exceptions.XMLCLIError for some versions #1267
[EOS] Fix get_arp_table
for static ARP records #1272
[EOS] Add EOS-4.23+ translation for show environment temperature #1278
[IOS] Update get_probe
code to make it work it IOS XE 16.12.x #1285
3.1.0
Core changes
- Fix:
force_no_enable
enabled on ios and nx only #1240
If you maintain a thrid-party driver using Netmiko for the underlying layer, but that doesn't make use of theenable
features typically found on IOS-like devices, it is recommended to pin to this NAPALM version, so it won't break compatibility. See #1241 for more information. - lxml text retrieval (find_txt) shouldn't fail if no text element available #1242
Driver changes
- [NX-OS] Initial version for nxos_ssh get_optics #1215
- [NX-OS] Fixed get_bgp_neighbors and asdot notation on NX-OS #1230
- [Junos] Fix "KeyError in get_environment() on Juniper MX10k3 with Junos 19.2R1.8 #1247" by making PEM naming consistent #1248
- [IOS] Fix get_optics metric #1220
- [IOS] Allow username detection on older Cisco ios versions #1121
3.0.1
Changes
Release 3.0.0 introduced support for the Arista FN 0039 command changes (#1093), by replacing the old style commands with the new style commands. This also affected the way NAPALM loads the configuration on the device (i.e., it would transform your configuration before loading). In order to prevent this, and avoid unexpected results, we introduced a new optional argument eos_fn0039_config
, defaulting to False
, which you can use to select whether you want NAPALM to convert the configuration command before loading. By default, NAPALM won't transform your configuration, but setting eos_fn0039_config
to True
it would help you transition to newer EOS versions.
Bug Fixes
- [Junos] close configuration in case configure_private is set to avoid configure session to stay forever #1199
- [IOS] get_interfaces_counters broken with Managment Interface #1201
- [IOS] get_optics does not work on VSS setup #1208
- [IOS] get_optics broken if input value is N/A #1206
- [NXOS] Fix cmd_verify and null character #1214