napalm

Network Automation and Programmability Abstraction Layer with Multivendor support

APACHE-2.0 License

Downloads
135.3K
Stars
2.2K
Committers
191

Bot releases are hidden (Show)

napalm - 5.0.0 Latest Release

Published by mirceaulinic 6 months ago

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

Improvements and bug fixes

New Contributors

Full Changelog: https://github.com/napalm-automation/napalm/compare/4.1.0...5.0.0

napalm - 4.1.0

Published by ktbyers over 1 year ago

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)
napalm - 4.0.0

Published by mirceaulinic over 2 years ago

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

napalm - 3.4.1

Published by mirceaulinic over 2 years ago

Pinning to junos-eznc>=2.6.3.

napalm - Release 3.4.0

Published by mirceaulinic over 2 years ago

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
napalm - Release 3.3.1

Published by mirceaulinic over 3 years ago

[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

napalm - 3.3.0

Published by mirceaulinic over 3 years ago

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

napalm - 3.2.0

Published by mirceaulinic about 4 years ago

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

napalm - 3.1.0

Published by mirceaulinic about 4 years ago

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 the enable 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
napalm - 3.0.1

Published by mirceaulinic over 4 years ago

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
napalm - 3.0.0

Published by mirceaulinic over 4 years ago

IMPORTANT

Starting with this release, NAPALM offers support for Python 3.6+ only

Changes:

  • Integrated nxapi_plumbing and pyIOSXR into NAPALM (#1074). Going forward, we can fix related issues directly into this repository.
  • [NXOS] If the command returns a null value then json.loads(None) throws an exception: #1071
  • [NXOS] For Vlan interfaces nxos driver, the state is not correctly defined (related to json output): #1072
  • [IOS] Return empty dictionary if BGP not running: #1079
  • Fix Nornir + NAPALM threading issue: #1081
  • [IOS, NXOS] get-vlans() getter implementation: #1023
  • [IOS] Fix traceroute output parsing in ios: #1102
  • [NXOS] firmware less than 7 does not support json in cli: #1084
  • Updated support for TwoGigabit & TwentyFiveGig interfaces to canonical_map.py: #1107
  • [NXOS]: Prevent nxos.get_interfaces_ip from failing if no ipv6 support: #1108
  • [Junos] Added auto_probe optional argument: #1117
  • [NXOS] Fix exception when trying to get environmental data from certain Nexus devices: #1133
  • [IOS] Fix fix vrf detection when no vrf is defined: #938
  • [IOS-XR] No silent pass of errors in base.helpers & logging: #1132
  • [IOS-XR] Add support for XML namespace prefixes in find_txt: #1141
  • [NXOS] Fix get_vlans() method where no interfaces in VLAN: #1150
  • [IOS] Added force_no_enable optional argument: #984
  • [NXOS] Use Kickstart version to determine NXOS version: #1172
  • [NXOS] Add nxos_ssh support for force_no_enable: #1173
  • [EOS] Fix #1153: Strip double quotation on LLDP remote port: #1175
  • [IOS] Fix typo in the traceoute method: #1148, #1174
  • add a few less used canonical mappings: #1177
  • [IOS] Fix show interfaces summary for 10/40/100 Gig Interfaces: #1162
  • [IOS] Update to handle Cisco ISR mac address table with multiple EHWIC modules installed: #996
  • [Junos] Add support for configure private in Junos: #1184
  • add range for validate: #838
  • [IOS] Fix get_bgp_neighbors_detail IOS-XE: #1185
  • [EOS] Cast upDownTime BGP neighbor field to float: #1186
  • All the core platforms: Filter unneeded header configuration lines get_config: #1190, #1193
  • [Junos] SRX cluster devices stack RPC replies under multi-routing-engine-results: #1196
  • All the core platforms: Implement get_config sanitized: #1194
napalm - 2.5.0

Published by mirceaulinic about 5 years ago

IMPORTANT

This is the last release supporting Python 2. Going forward, we will only support Python 3.6+

Changes:

  • namespace fix for napalm cli (#950)
  • [EOS] Fix broken get_bgp_neighbors when 6PE configured on eos (#945)
  • [NXOS] If parent_table in nxos is None call exception (#939)
  • [Junos] Remove extensive argument from junos_iface_table (#929)
  • MTU support for get_interfaces (#940)
  • [EOS] When asPathType is Internal (IBGP), as_path is empty and the remote-as is the local_as (#1064)
  • [IOS] support n9k ipv6 ints for interfaces_ip getter (#969)
  • [IOS] support catalyst vss for mac_address getter (#968)
  • [IOS] Raise exception if BGP neighbor info requested and BGP not running (#970)
  • [NXOS] Implement nxos_ssh get_environment (#973)
  • Better handling of connection closing upon exceptions in enter (#994)
  • [NXOS] address single and multiple v6 address on n9k (#997)
  • [NXOS] Fix nxos and nxos_ssh hostname change handling (#999)
  • added option to run show run all (#1029)
  • [Junos] add optional arg for DB config selection (#1035)
  • [Junos] Fixed "Wrong interface information for Junos virtual-switch w/ bridge domains using get_network_instances" (#1032)
  • [EOS] Implemented lock_disable for EOS based on Junos. (#1042)
  • [NXOS] Work around NXAPI double quoting (#1048)
  • [NXOS] napalm.nxos.traceroute - VRF traces and handle AS in hops (#989)
  • [IOS] Fix extra line in show ip int brief on IOS (#986)
  • [NXOS] Expand nxos commit merge rollback error (#860)
  • [IOS] add support for VRF for get_arp_table func (#937)
  • [IOS] get_bgp_neighbors vrf and safi aware (#768)
  • [IOS] Check if temperature sensor on Cisco device is not supported (#1055)
  • [IOS] Fixes get_environment memory collection on ios-xe devices (#1053)
  • [IOS] get_route_to implementation for IOS (#750)
napalm - 2.4.0

Published by ktbyers over 5 years ago

  • Fix issue where 'no file prompt' in configuration gets reverted due to commit or rollback (#918)
  • File prompt quiet changes to improve Cisco IOS performance (#913)
  • Add support for VRF in EOS get_arp_table (#908)
  • Nexus SSH: Support another magic IP address line format (#912)
  • Define the junos view table for lldp neighbors (#909)
  • Resolve default value issue in get_interfaces() (#910)
  • Have get_mac_address_table return the same interface names as get_interfaces (#907)
  • Update EOS LLDP type constant map. Fixes #903
  • Refactor processing of EOS optional_args (#901) (#902)
  • Speedup interface parsing for junos (#898)
  • Add structure for VRF support to get_arp_table (#900)
  • Catch ValueError exception when vlan is not set to an integer. (#889)
  • Make nxos return info for all VRFs when getting IP and ARP data (#890)
  • Fix fetching MAC address table in junos (#895)
  • Handle missing remote port in junos LLDP neighbors data (#888)
  • Improve LLDP implementation (#863)
  • Allow for disable of Junos Locking so that it can be externally managed (#881)
  • Fix path in tests when running on a windows environment (#887)
  • Add black as a development requirement for python >= 3.6 (#886)
  • Use black for auto-formatting (#885)
  • Use Netmiko's save_config method instead of write mem
  • nxos_ssh incorrect parsing on tunnel interface FIXES#855 (#871)
  • Refactor LLDP neighbors detail on Junos (#878)
  • Fixing sporadic save config issues (#866)
  • Convert nxos driver to use nxapi-plumbing for underlying library (#857)
  • Default mock driver path to current directory (#869)
  • Implement get_users for root user on Junos (#868)
  • Fixing username prompting issue. (#829)
  • remove_cli_exception in Cisco IOS
  • NXOS - Add received_prefixes in return value and multiple AF (#791)
  • NX-OS get_network_instances (#837)
  • Enforce Paramiko >= 2.4.2 (#853)
  • Fix timeout not being used when opening netmiko connection to IOS device (#851)
  • Improve LLDP neighbor detail parsing on older IOS versions (#846)
  • NX-OS refactor (#833)
  • IOS get_bgp_neighbors check for None type neighbor_entry (#844)
  • junos cli function: all pipes ignored (#826)
  • print changed to function to support python3 (#841)
  • update docs with load conf methods not supported for vEOS < 4.15 (#839)
  • Use Python3 style print()
  • Prevent validation_source modification (#836)
  • Change docs to refer to ETX (end of text character)
napalm - 2.3.3

Published by ktbyers about 6 years ago

  • Add a tutorial to use Napalm mock driver
  • Create hierarch of directories to search for textfsm templates
  • Junos fix is_enabled in logical interface
  • Delete the ip validation of the destination of get_route_to in Junos
  • support added for LLDP
  • Fix ResourceWarning: unclosed files in base/helpers.py
  • Update get_environment defaults if keys are missing
  • nxos_ssh Update sh int regexp for 7.3.3.N1
  • Raise exception instead of returning string in get_route_to
  • Fix bugs with IOS ping method
  • Fix the use of deprecated inspect.getargspec() for inspect.getfullarg
  • QFX5100-48S-6Q to use rpc_call_without_information
  • Convert over to safe form of YAML load
  • Fix inspect in consistent way and use py23_compat
  • Add NAPALM Dockerfile
  • EOS BGP Description not getting retrieved
  • Updating optional args documentation
  • Fix Community Drivers link in Docs
napalm - 2.3.2

Published by ktbyers about 6 years ago

  • commit_config with comment (#701)
  • NXOS_SSH - fix crash issue in get_bgp_neighbors() (#678)
  • Fixes #695 - inconsistent use of domain name in LLDP (#698)
  • Fix bug with get_interfaces_ip with multiple ipv6 addrs on interface
  • Fix #703 (#704) / Fixes PIP10 compatibility issues
  • updated README.md since cl_napalm_test has been deprecated (#702)
  • Remove duplicated keys in dict (#712)
  • Creating generic way in napalm to create and close a netmiko connection
  • Fix ipv6 test for nxos which causes RTD to fail (#720)
  • Dictionary literal (#721)
  • Add test for sphinx documentation (#719)
  • raise napalm ErrorLock instead of jnpr ErrorLock (#707)
  • Fix garbled docstrings in RTD and enable strict checking for Sphinx
  • Updated fix for Catalyst 6500 reporting VLAN as N/A (#725)
  • Fixing deprecated use of e.message (#726)
  • Replace jtextfsm with textfsm (#731)
  • Fix #736 (get_route_to bgp confed) (#737)
  • IOS: get_bgp_neighbor_detail (#727)
  • Implement get_ntp_peers on Cisco IOS (#752)
  • The EX4300-48P has issues with LLDP information tags (#758)
  • Fix issue with LLDP neighbors when remote device lacks system
  • Fix #659 (#761)
  • Freeze requirements-dev.txt to specific versions, fixes#780
  • Fix Travis and PY34 Tox issue (#782)
  • junos: support edit/top keywords in set based configs (#760)
  • Allow bangs in EOS banner (#738)
napalm - 2.3.1

Published by ktbyers over 6 years ago

Remove multiple entries for netmiko (#617)

Fixes NX-OS string change in show diff rollback-patch output (#619)

Require to upgrade setuptools

Modify NX-OS to properly save config to startup-config on commit_conf

Fixing NX-OS rollback issue (#626)

Junos fix next-hop self in get_bgp_config() (#620)

IOS-XR: return the is_alive flag for the SSH channel (#623)

Fix get_interfaces_ip for non ipv6 devices (#627)

Fixes for CAM and ARP parsing issues in nxos_ssh.py (#634)

Minor improvement to get_arp processing on NXOS SSH (#639)

Don't hide relevant import errors (#635)

Update index.rst (#650)

improved exceptions - added new base exception (#649) …

Fixes #640 junos ConnectionException (#648)

FIXES #653 additional error message on failed replace (#654)

NX-OS ping implementation using more shared common code (#642)

Fix get_mac_table on IOS when there are routed ports

Updating junos.py to support PTX platform (#665)

Minor doc changes for NX-OS and IOS (#669)

Unify netmiko argument processing across napalm drivers (#673)

Make nxos_facts behavior more consistent between NX-API and SSH (#674)

Update get_interfaces_ip to deal with unnumbered interfaces (#632)

Fix issue about N9K with vxlan (#676)

Fix setup.py issue when using pip 10. (#692)

Add virtualbox provider to the docs (#679)

Lldp neighbors detail bugfix (#675)

Add StackStorm integrations to README (#683)

Track BGP state to report is_up (#684)

napalm - 2.3.0

Published by bewing almost 7 years ago

Release 2.3.0 (#614)

  • bump version (#613)
  • Add napalm logo (previously removed probably during reunification)
  • Interface is always enabled, unless explicitly specified in config
  • Fix get_environnements available memory (#605)
  • [docs] pynxos instead of pycsco for NXOS
  • QFX10008 apparently still uses the same old RPC (as EX9208)
  • Fix for https://github.com/napalm-automation/napalm-iosxr/issues/104. IOSXRv returns empty list for oper.PlatformInventory.RackTable.Rack.Attributes.BasicInfo, causing a fatal IndexError for the variable 'platform_attr_tree' in the 'get_facts' function. In fact, IOSXRv walkdata oper.PlatformInventory returns no data at all. As a result, only an interface_list will be returned and the remaining default facts values from the function will be used. This condition does NOT occur on physical IOSXR hosts. Therefore, original indexing needs to be preserved while the error condition is handled for IOSXRv hosts.
  • fix missing file in power supply mocked data
  • Readd the state / status key.
  • Pass password when using ssh key
  • suppress FutureWarning (#218)
  • fix removal of cluster key (#219)
  • fix pep8 errors
  • implement find operation in cli
  • fix multihop ttl to its default value
  • remove cluster from the neighbor output
napalm - 2.2.0

Published by dbarrosop almost 7 years ago

napalm - 2.1.0

Published by dbarrosop almost 7 years ago

napalm - 2.0.0

Published by dbarrosop almost 7 years ago

First official release after reunifying the drivers.