Network Automation and Programmability Abstraction Layer with Multivendor support

Overview

PyPI PyPI versions Build Status Coverage Status Code Style

NAPALM

NAPALM (Network Automation and Programmability Abstraction Layer with Multivendor support) is a Python library that implements a set of functions to interact with different router vendor devices using a unified API.

NAPALM logo

NAPALM supports several methods to connect to the devices, to manipulate configurations or to retrieve data.

Supported Network Operating Systems

Please check the following link to see which devices are supported. Make sure you understand the caveats.

Documentation

Before using the library, please read the documentation at: Read the Docs

You can also watch a live demo of NAPALM to see what it is and what it can do for you.

Install

pip install napalm

Note: Beginning with release 3.0.0 and later, NAPALM offers support for Python 3.6+ only.

Upgrading

We plan to upgrade napalm as fast as possible. Adding new methods and bugfixes. To upgrade napalm it's a simple as repeating the steps you performed while installing but adding the -U flag. For example:

pip install napalm -U

We will be posting news on our slack channel and on Twitter.

Automation Frameworks

Due to its flexibility, NAPALM can be integrated in widely used automation frameworks.

Ansible

Please check napalm-ansible for existing Ansible modules leveraging the NAPALM API. Make sure you read the documentation and you understand how it works before trying to use it.

SaltStack

Beginning with release code named Carbon (2016.11), NAPALM is fully integrated in SaltStack - no additional modules required. For setup recommendations, please see napalm-salt. For documentation and usage examples, you can check the modules documentation, starting from the release notes and this blog post.

StackStorm

NAPALM is usable from StackStorm using the NAPALM integration pack. See that repository for instructions on installing and configuring the pack to work with StackStorm. General StackStorm documentation can be found at https://docs.stackstorm.com/, and StackStorm can be easily spun up for testing using Vagrant or Docker.

Contact

Slack

Slack is probably the easiest way to get help with NAPALM. You can find us in the channel napalm on the network.toCode() team.

FAQ

If you have any issues using NAPALM or encounter any errors, before submitting any questions (directly by email or on Slack), please go through the following checklist:

  • Make sure you have the latest release installed. We release very often, so upgrading to the latest version might help in many cases.
  • Double check you are able to access the device using the credentials provided.
  • Does your device meet the minimum requirements?
  • Some operating systems have some specific constraints. (e.g. have you enabled the XML agent on IOS-XR, or the NXAPI feature on NXOS?)
  • Are you able to connect to the device using NAPALM? Check using napalm CLI to get_facts:
$ napalm --vendor VENDOR --user USERNAME --password PASSWORD --optional_args OPTIONAL_ARGS HOSTNAME call get_facts

Where vendor, username, password and hostname are mandatory. Optional arguments are specified as comma separated values.

Example:

$ napalm --vendor junos --user napalm --password dbejmujz --optional_args 'port=12202, config_lock=False' edge01.bjm01 call get_facts

In case you have any errors, please review the steps above - this looks like a problem with your environment setup.

In order to get help faster, when submitting a bug/error make sure to include all the details requested.

News

Blog Posts

Presentations

Podcasts

Authors

Thanks

This project is maintained by David Barroso, Mircea Ulinic, and Kirk Byers and a set of other contributors.

Originally it was hosted by the Spotify organization but due to the many contributions received by third parties we agreed creating a dedicated organization for NAPALM and give a big thanks to Spotify for the support.

Comments
  • [WIP] Show IP of all VRF on nxos

    [WIP] Show IP of all VRF on nxos

    If a VRF is not specified in the nxos command, it will only show the default vrf IP. As the vrf cannot be specified in the method, now it doesn't restrict the result to one vrf.

    The SSH parser needed to be fixed to allow multiple VRF

    opened by aruhier 24
  • VLAN getters

    VLAN getters

    Following on from a discussion in NTC slack. Adding VLAN getters would be a nice addition IMO. @ktbyers mentioned that he is open to at least a discussion on adding VLAN getters.

    Some closed issues in this topic from the past https://github.com/napalm-automation/napalm/issues/571 https://github.com/napalm-automation/napalm-base/issues/252

    I need this functionality for mainly Junos and Cumulus drivers so can focus my energy there if there is some agreement to move forward.

    CC @jobec

    new method feature api change 
    opened by bwks 23
  • IOS method commit_config running is too slow

    IOS method commit_config running is too slow

    I use 'load_merge_candidate' method spend about 1~3s, but 'commit_config' can spend about 1minutes. That‘s insane. when i use cli-command to change my password, I type every words just spend 20 seconds. Please check this issue.

    bug ios Info needed 
    opened by Laurel-rao 23
  • add canonical_interface

    add canonical_interface

    Added canonical_interface and updated some linter complaints when I first had everything in string_parsers.py.

    Didn't want to go to crazy until I had consensus on naming and implementation.

    enhancement base 
    opened by itdependsnetworks 23
  • DO NOT Merge: NX-OS XML Support

    DO NOT Merge: NX-OS XML Support

    After discussions with Matthew Schwen he made a strong argument that we should be using XML and neither NX-OS JSON nore NX-OS Text (screen-scraping).

    This long-term proposal would be to implement NX-OS XML Support for both NX-API and for NX-OS SSH and to deprecate both the JSON getter parsing the Text getter parsing.

    The configuration operations would need some more research.

    The parsing of the XML output data would be decoupled from the transport (NX-API or SSH) and we would intend to use the same parsing for both.

    I think in the long-run this will give us less maintenance and less technical debt in the NX-OS support and a better overall solution.

    I will add some more details below.

    enhancement vendor bug nxos nxos-ssh Info needed pending discussion 
    opened by ktbyers 21
  • don't remove file prompt quiet unnecessarily

    don't remove file prompt quiet unnecessarily

    If file prompt quiet is already present in the config at the start of an operation, napalm shouldn't remove it. This is fixed by checking the running-config during _disable_confirm(), and setting a flag (IOSDriver._do_enable_confirm) to indicate whether the configuration line ought to be removed during later calls to _enable_confirm(). A RuntimeError is raised if the attribute does not exist, since this indicates that the methods were called in the incorrect order. The configuration line is also removed from ignore_strings within _normalize_compare_config() since this line will only be present in the diff when it is included in either the candidate and/or (existing) running configs. In that case, a change in that command should show up in coompare_config().

    opened by benmaddison 21
  • adding optional arguments for load_replace_candidate

    adding optional arguments for load_replace_candidate

    We need option for autoComplete, timeStamp and expandAliases

    I ran into an issue where using load_replace_candidate failed because of the autoComplete is False

    I had two commands back to back: router bgp 1 router multicast

    Since I had autoComplete False as default, the router multicast was considered as 'router-id multicast'. This is only because 'router' is valid under bgp configuration.

    Submitting a change here to add optional arguments

    enhancement core 
    opened by bharath-ravindranath 21
  • Junos SRX cluster get_environment() returns null. 15.1X49-D130.6

    Junos SRX cluster get_environment() returns null. 15.1X49-D130.6

    Description of Issue/Question

    Note: Please check https://guides.github.com/features/mastering-markdown/ to see how to properly format your request.

    Did you follow the steps from https://github.com/napalm-automation/napalm#faq

    (Place an x between the square brackets where applicable)

    • [X] Yes
    • [] No

    Setup

    napalm version

    (Paste verbatim output from pip freeze | grep napalm between quotes below)

    napalm==2.5.0
    

    Network operating system version

    (Paste verbatim output from show version - or equivalent - between quotes below)

    node0:
    --------------------------------------------------------------------------
    Hostname: node0
    Model: srx345-dual-ac
    Junos: 15.1X49-D130.6
    JUNOS Software Release [15.1X49-D130.6]
    
    node1:
    --------------------------------------------------------------------------
    Hostname: node1
    Model: srx345-dual-ac
    Junos: 15.1X49-D130.6
    JUNOS Software Release [15.1X49-D130.6]
    

    Steps to Reproduce the Issue

    Error Traceback

    (Paste the complete traceback of the exception between quotes below)

    No errors, per se.  Just empty dataset being returned.
    
    I inspected the elements at:
    https://github.com/napalm-automation/napalm/blob/develop/napalm/junos/junos.py#L381
    
    And also `environment_data` at:
    https://github.com/napalm-automation/napalm/blob/develop/napalm/junos/junos.py#L381
    
    All elements are empty.  I confirmed connectivity and results being returned with the `get_facts()` which does indeed work as desired.
    
    
    
    bug vendor bug junos 
    opened by mcroff-wish 20
  • add recording/replaying commands capability

    add recording/replaying commands capability

    This adds back the capability for recording/replaying commands. Two main use cases are:

    1. Compliance.
    2. Build easily reproducible tests and demos.

    From the previous discussion we had, @mirceaulinic didn't like the use of camel library. For reference, camel is a lightweight library that builds on top of pyyaml to ensure serialized/deserialized data is safe.

    To do:

    1. Discuss if camel is still an issue and look for alternatives or just "vendor" the library and add it directly without adding it as a requirement.
    2. Check with @itdependsnetworks if this does what he needs
    3. Upon agreement: a. Hook the recorder to rest of core drivers b. Remove test/demo code c. See how to connect this with the testing framework so people can reproduce issues and provide test cases by using the recording feature.
    enhancement core 
    opened by dbarrosop 20
  • Add vrf paramter to get_arp_table()

    Add vrf paramter to get_arp_table()

    Update all drivers get_arp_table signature to accept a VRF name, and create test.

    • [x] Base/testcase
    • [x] EOS
    • [x] EOS mocked data
    • [x] IOS
    • [ ] IOS mocked data
    • [ ] IOS-XR
    • [ ] IOS-XR mocked data
    • [x] JunOS
    • [ ] JunOS mocked data
    • [ ] NX-OS
    • [ ] NX-OS mocked data
    • [ ] NX-OS (SSH)
    • [ ] NX-OS (SSH) mocked data
    enhancement help wanted junos iosxr ios eos nxos nxos-ssh api change 
    opened by bewing 20
  • Turning napalm into a metapackage

    Turning napalm into a metapackage

    This PR turns napalm into a 'metapackage'. From a user perspective, nothing should change. From a code perspective this means that napalm doesn't have code anymore and it just leverages on the other individual repos.

    Napalm should contain only the documentation, guidelines and serve as a single entry point to get napalm fully deployed.

    @fooelisa @mirceaulinic @ktbyers would you mind testing this PR? If you have some code that uses napalm today I would appreciate if you could try to run it installing napalm from my fork.

    opened by dbarrosop 20
  • [IOSXR ] napalm get interfaces ip returns ipv4 adresse : 0.0.0.0/0 ?

    [IOSXR ] napalm get interfaces ip returns ipv4 adresse : 0.0.0.0/0 ?

    Description of Issue/Question

    Note: Please check https://guides.github.com/features/mastering-markdown/ to see how to properly format your request.

    Did you follow the steps from https://github.com/napalm-automation/napalm#faq

    (Place an x between the square brackets where applicable)

    • [X] Yes
    • [] No

    Setup

    I have an ansible-napalm napalm_get_facts with interfaces_ip filter (like get_interfaces_ip in python napalm)

    napalm version

    (Paste verbatim output from pip freeze | grep napalm between quotes below)

    [napalm](https://pypi.python.org/pypi/napalm)==4.0.0
    [napalm-ansible](https://pypi.python.org/pypi/napalm-ansible)==1.1.0
    

    Network operating system version

    (Paste verbatim output from show version - or equivalent - between quotes below)

    [ansible](https://pypi.python.org/pypi/ansible)==2.10.0
    [ansible-base](https://pypi.python.org/pypi/ansible-base)==2.10.6
    [ansible-inventory-grapher](https://pypi.python.org/pypi/ansible-inventory-grapher)==2.4.4
    

    Steps to Reproduce the Issue

    When interface (Cisco) has ipv4 unreachables disabled, napalm returns : ipv4 : 0.0.0.0/0 ?? Is this normal ? The interface config (CLI): interface GigabitEthernet0/0/0/5 description -Z-- LIBRE ---- ipv4 unreachables disable shutdown !

    Error Traceback

    (Paste the complete traceback of the exception between quotes below)

    
    
    opened by ansible75013 0
  • Bump sphinx from 1.8.6 to 6.0.0

    Bump sphinx from 1.8.6 to 6.0.0

    Bumps sphinx from 1.8.6 to 6.0.0.

    Release notes

    Sourced from sphinx's releases.

    v6.0.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v6.0.0b2

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v6.0.0b1

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.3.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.2.3

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.2.2

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.2.1

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.2.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.1.1

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.1.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.0.2

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.0.1

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.0.0

    No release notes provided.

    v5.0.0b1

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v4.5.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v4.4.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v4.3.1

    No release notes provided.

    Changelog

    Sourced from sphinx's changelog.

    Release 6.0.0 (released Dec 29, 2022)

    Dependencies

    • #10468: Drop Python 3.6 support
    • #10470: Drop Python 3.7, Docutils 0.14, Docutils 0.15, Docutils 0.16, and Docutils 0.17 support. Patch by Adam Turner

    Incompatible changes

    • #7405: Removed the jQuery and underscore.js JavaScript frameworks.

      These frameworks are no longer be automatically injected into themes from Sphinx 6.0. If you develop a theme or extension that uses the jQuery, $, or $u global objects, you need to update your JavaScript to modern standards, or use the mitigation below.

      The first option is to use the sphinxcontrib.jquery_ extension, which has been developed by the Sphinx team and contributors. To use this, add sphinxcontrib.jquery to the extensions list in conf.py, or call app.setup_extension("sphinxcontrib.jquery") if you develop a Sphinx theme or extension.

      The second option is to manually ensure that the frameworks are present. To re-add jQuery and underscore.js, you will need to copy jquery.js and underscore.js from the Sphinx repository_ to your static directory, and add the following to your layout.html:

      .. code-block:: html+jinja

      {%- block scripts %} {{ super() }} {%- endblock %}

      .. _sphinxcontrib.jquery: https://github.com/sphinx-contrib/jquery/

      Patch by Adam Turner.

    • #10471, #10565: Removed deprecated APIs scheduled for removal in Sphinx 6.0. See :ref:dev-deprecated-apis for details. Patch by Adam Turner.

    • #10901: C Domain: Remove support for parsing pre-v3 style type directives and roles. Also remove associated configuration variables c_allow_pre_v3 and c_warn_on_allowed_pre_v3. Patch by Adam Turner.

    Features added

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependency issue 
    opened by dependabot[bot] 0
  • Add tolerance percentage to validate

    Add tolerance percentage to validate

    This pr adds the ability to validate based on a percentage tolerance either side of the specified value (useful for BGP prefixes). I was trying to keep it as close to existing operators ("<d", ">d", "d<->d"), in the end came up with "t%d". The logic behind it is that a tolerance of "t percent of d" is allowed either side of the value of d. For example "10%100" would be 10% of 100, so a value between 90 and 110 is accepted. I didnt really want to use a % sign but couldn't think of a better way to represent this. Have done tests and docs that I could find, let me know if need anything else.

    opened by sjhloco 0
  • Junos: get_snmp_information returns blank dict

    Junos: get_snmp_information returns blank dict

    Description of Issue/Question

    The output from get_snmp_information is returning a blank dict, looks to be the return from line 1507 in the code is not as expected so the subsequent .items() on line 1509 is not evaluating as True so we get the blank dict from snmp_information from the if on line 1511

    I was able to modify the config to add test keys to the dict to confirm it was returning at that point

    Other calls work fine, get_facts for example as shown in the details below.

    I suspect the problem is around the junos_views yaml file but I'm not sure where to start dissecting it to resolve the issue

    Did you follow the steps from https://github.com/napalm-automation/napalm#faq

    (Place an x between the square brackets where applicable)

    • [x] Yes
    • [] No

    Setup

    napalm version

    (Paste verbatim output from pip freeze | grep napalm between quotes below)

    napalm==4.0.0
    napalm-yang==0.1.0
    

    Network operating system version

    (Paste verbatim output from show version - or equivalent - between quotes below)

    Hostname: testhost
    Model: mx480
    Junos: 21.2R1.10
    JUNOS Selective Update J2.3 (for: #rmachine=i386 machine=amd64 /usr/sbin/rpd /usr/libexec64/rpd) [21.2R1-J2.3]
    JUNOS Selective Update J1.5 (for: /usr/share/pfe/aft.tgz /usr/share/pfe/aft.tgz.sha1 /usr/share/pfe/fmpc.elf /usr/share/pfe/smpc.elf) [21.2R1-J1.5]
    JUNOS OS Kernel 64-bit  [20210529.2f59a40_builder_stable_12]
    JUNOS OS libs [20210529.2f59a40_builder_stable_12]
    JUNOS OS runtime [20210529.2f59a40_builder_stable_12]
    JUNOS OS time zone information [20210529.2f59a40_builder_stable_12]
    JUNOS network stack and utilities [20210621.124332_builder_junos_212_r1]
    JUNOS libs [20210621.124332_builder_junos_212_r1]
    JUNOS OS libs compat32 [20210529.2f59a40_builder_stable_12]
    JUNOS OS 32-bit compatibility [20210529.2f59a40_builder_stable_12]
    JUNOS libs compat32 [20210621.124332_builder_junos_212_r1]
    JUNOS runtime [20210621.124332_builder_junos_212_r1]
    Junos vmguest package [20210621.124332_builder_junos_212_r1]
    JUNOS sflow mx [20210621.124332_builder_junos_212_r1]
    JUNOS py extensions [20210621.124332_builder_junos_212_r1]
    JUNOS py base [20210621.124332_builder_junos_212_r1]
    JUNOS OS vmguest [20210529.2f59a40_builder_stable_12]
    JUNOS OS crypto [20210529.2f59a40_builder_stable_12]
    JUNOS OS boot-ve files [20210529.2f59a40_builder_stable_12]
    JUNOS na telemetry [21.2R1.10]
    JUNOS Security Intelligence [20210621.124332_builder_junos_212_r1]
    JUNOS mx libs compat32 [20210621.124332_builder_junos_212_r1]
    JUNOS mx runtime [20210621.124332_builder_junos_212_r1]
    JUNOS RPD Telemetry Application [21.2R1.10]
    JUNOS Routing mpls-oam-basic [20210621.124332_builder_junos_212_r1]
    JUNOS Routing mpls-oam-advanced [20210621.124332_builder_junos_212_r1]
    JUNOS Routing lsys [20210621.124332_builder_junos_212_r1]
    JUNOS Routing controller-internal [20210621.124332_builder_junos_212_r1]
    JUNOS Routing controller-external [20210621.124332_builder_junos_212_r1]
    JUNOS Routing 32-bit Compatible Version [20210621.124332_builder_junos_212_r1]
    JUNOS Routing aggregated [20210621.124332_builder_junos_212_r1]
    Redis [20210621.124332_builder_junos_212_r1]
    JUNOS probe utility [20210621.124332_builder_junos_212_r1]
    JUNOS common platform support [20210621.124332_builder_junos_212_r1]
    JUNOS Openconfig [21.2R1.10]
    JUNOS mtx network modules [20210621.124332_builder_junos_212_r1]
    JUNOS modules [20210621.124332_builder_junos_212_r1]
    JUNOS mx modules [20210621.124332_builder_junos_212_r1]
    JUNOS mx libs [20210621.124332_builder_junos_212_r1]
    JUNOS SQL Sync Daemon [20210621.124332_builder_junos_212_r1]
    JUNOS mtx Data Plane Crypto Support [20210621.124332_builder_junos_212_r1]
    JUNOS daemons [20210621.124332_builder_junos_212_r1]
    JUNOS mx daemons [20210621.124332_builder_junos_212_r1]
    JUNOS Broadband Egde User Plane Apps [21.2R1.10]
    JUNOS appidd-mx application-identification daemon [20210621.124332_builder_junos_212_r1]
    JUNOS TPM2 [20210621.124332_builder_junos_212_r1]
    JUNOS Services URL Filter package [20210621.124332_builder_junos_212_r1]
    JUNOS Services TLB Service PIC package [20210621.124332_builder_junos_212_r1]
    JUNOS Services Telemetry [20210621.124332_builder_junos_212_r1]
    JUNOS Services TCP-LOG [20210621.124332_builder_junos_212_r1]
    JUNOS Services SSL [20210621.124332_builder_junos_212_r1]
    JUNOS Services SOFTWIRE [20210621.124332_builder_junos_212_r1]
    JUNOS Services Stateful Firewall [20210621.124332_builder_junos_212_r1]
    JUNOS Services RTCOM [20210621.124332_builder_junos_212_r1]
    JUNOS Services RPM [20210621.124332_builder_junos_212_r1]
    JUNOS Services PCEF package [20210621.124332_builder_junos_212_r1]
    JUNOS Services NAT [20210621.124332_builder_junos_212_r1]
    JUNOS Services Mobile Subscriber Service Container package [20210621.124332_builder_junos_212_r1]
    JUNOS Services MobileNext Software package [20210621.124332_builder_junos_212_r1]
    JUNOS Services Logging Report Framework package [20210621.124332_builder_junos_212_r1]
    JUNOS Services LL-PDF Container package [20210621.124332_builder_junos_212_r1]
    JUNOS Services Jflow Container package [20210621.124332_builder_junos_212_r1]
    JUNOS Services Deep Packet Inspection package [20210621.124332_builder_junos_212_r1]
    JUNOS Services IPSec [20210621.124332_builder_junos_212_r1]
    JUNOS Services IDS [20210621.124332_builder_junos_212_r1]
    JUNOS IDP Services [20210621.124332_builder_junos_212_r1]
    JUNOS Services HTTP Content Management package [20210621.124332_builder_junos_212_r1]
    JUNOS Services DNS Filter package (i386) [20210621.124332_builder_junos_212_r1]
    JUNOS Services Crypto [20210621.124332_builder_junos_212_r1]
    JUNOS Services Captive Portal and Content Delivery Container package [20210621.124332_builder_junos_212_r1]
    JUNOS Services COS [20210621.124332_builder_junos_212_r1]
    JUNOS AppId Services [20210621.124332_builder_junos_212_r1]
    JUNOS Services Application Level Gateways [20210621.124332_builder_junos_212_r1]
    JUNOS Services AACL Container package [20210621.124332_builder_junos_212_r1]
    JUNOS SDN Software Suite [20210621.124332_builder_junos_212_r1]
    JUNOS Extension Toolkit [20210621.124332_builder_junos_212_r1]
    JUNOS Packet Forwarding Engine Support (wrlinux9) [20210621.124332_builder_junos_212_r1]
    JUNOS Packet Forwarding Engine Support (MX/EX92XX Common) [20210621.124332_builder_junos_212_r1]
    JUNOS Packet Forwarding Engine Support (M/T Common) [20210621.124332_builder_junos_212_r1]
    JUNOS Packet Forwarding Engine Support (aft) [20210621.124332_builder_junos_212_r1]
    JUNOS Packet Forwarding Engine Support (MX Common) [20210621.124332_builder_junos_212_r1]
    JUNOS Juniper Malware Removal Tool (JMRT) [1.0.0+20210621.124332_builder_junos_212_r1]
    JUNOS J-Insight [20210621.124332_builder_junos_212_r1]
    JUNOS jfirmware [20210621.124332_builder_junos_212_r1]
    JUNOS Online Documentation [20210621.124332_builder_junos_212_r1]
    JUNOS jail runtime [20210529.2f59a40_builder_stable_12]
    

    Steps to Reproduce the Issue

    import napalm
    driver_obj = napalm.get_network_driver('junos')
    dev_obj = driver_obj(hostname='testhost', username=username, password=password)
    dev_obj.open()
    dev_obj.get_snmp_information()
    {}
    dev_obj.get_facts()
    {'vendor': 'Juniper', 'model': 'MX480', 'serial_number':....
    

    Error Traceback

    (Paste the complete traceback of the exception between quotes below)

    
    
    opened by doghousedean 0
  • Bump ansible from 4.10.0 to 7.1.0

    Bump ansible from 4.10.0 to 7.1.0

    Bumps ansible from 4.10.0 to 7.1.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependency issue 
    opened by dependabot[bot] 0
  • Bump types-setuptools from 57.4.18 to 65.6.0.2

    Bump types-setuptools from 57.4.18 to 65.6.0.2

    Bumps types-setuptools from 57.4.18 to 65.6.0.2.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependency issue 
    opened by dependabot[bot] 0
Releases(4.0.0)
  • 4.0.0(Jul 11, 2022)

    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

    Source code(tar.gz)
    Source code(zip)
  • 3.4.1(Apr 29, 2022)

  • 3.4.0(Mar 21, 2022)

    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
    Source code(tar.gz)
    Source code(zip)
  • 3.3.1(Jun 16, 2021)

    [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

    Source code(tar.gz)
    Source code(zip)
  • 3.3.0(May 12, 2021)

    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

    Source code(tar.gz)
    Source code(zip)
  • 3.2.0(Sep 3, 2020)

    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

    Source code(tar.gz)
    Source code(zip)
  • 3.1.0(Jul 27, 2020)

    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
    Source code(tar.gz)
    Source code(zip)
  • 3.0.1(May 15, 2020)

    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
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0(May 6, 2020)

    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
    Source code(tar.gz)
    Source code(zip)
  • 2.5.0(Oct 10, 2019)

    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)
    Source code(tar.gz)
    Source code(zip)
  • 2.4.0(Feb 11, 2019)

    • 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)
    Source code(tar.gz)
    Source code(zip)
  • 2.3.3(Oct 14, 2018)

    • 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
    Source code(tar.gz)
    Source code(zip)
  • 2.3.2(Aug 10, 2018)

    • 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)
    Source code(tar.gz)
    Source code(zip)
  • 2.3.1(Apr 12, 2018)

    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)

    Source code(tar.gz)
    Source code(zip)
  • 2.3.0(Jan 8, 2018)

    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
    Source code(tar.gz)
    Source code(zip)
  • 2.0.0(Nov 6, 2017)

  • 2.0.0b1(Oct 29, 2017)

  • 2.0.0a4(Oct 22, 2017)

  • 2.0.0a3(Oct 21, 2017)

    STATUS

    • reunification branch is ready for testing
    • doc generation has been fixed

    Drivers migrated

    • eos
    • ios
    • junos

    Notes

    • 2.0.0a1 failed to install individual drivers on demand, this one hopefully fixes that problem.
    Source code(tar.gz)
    Source code(zip)
  • 2.0.0a1(Oct 21, 2017)

  • 1.2.0(Mar 3, 2017)

  • 1.1.0(May 21, 2016)

    New panos driver.

    Supported methods: http://napalm.readthedocs.io/en/latest/support/index.html#configuration-support-matrix http://napalm.readthedocs.io/en/latest/support/index.html#getters-support-matrix

    Caveats: http://napalm.readthedocs.io/en/latest/support/panos.html

    Source code(tar.gz)
    Source code(zip)
  • 1.0.2(May 12, 2016)

  • 1.0.1(May 11, 2016)

  • 1.00.0(Apr 15, 2016)

    This is a major release. Nothing mind blowing in terms of features. However, the code has been refactored to break down napalm into independent drivers. Before this, napalm was a single blob that you had to install as a single unit. As of now, you can pick and mix drivers or you can just install everything. I suggest you to read sections Install and Upgrading on the README.md file.

    What does this mean?

    1. You can keep doing what you were doing now and install everything, if that's what you want.
    2. You can reduce your installation footprint by installing only the drivers you need. Which might be interesting in some cases.
    3. Faster release cycle. No more waiting for all the drivers to converge on some features and fix some issues. Bugfixes and new supported methods can be released immediately.
    4. You can host your own driver. Although I would encourage you to centralize everything under the napalm-automation organization you can now host your own driver. This might be interesting for vendors that want to own the driver.

    If you want to check the drivers here they are:

    • https://github.com/napalm-automation/napalm - Meta-package. Contains the documentation and works as a shortcut to install everything.
    • https://github.com/napalm-automation/napalm-base - Base driver. Contains the definitions and tests for all the drivers. Drivers inherit from this module and comply to the tests defined there.
    • https://github.com/napalm-automation/napalm-eos - Driver for EOS
    • https://github.com/napalm-automation/napalm-fortios - Driver for FortiOS
    • https://github.com/napalm-automation/napalm-ibm - Driver for IBM switches
    • https://github.com/napalm-automation/napalm-ios - Driver for IOS/IOS-XE
    • https://github.com/napalm-automation/napalm-iosxr - Driver for IOS-XR
    • https://github.com/napalm-automation/napalm-junos - Driver for JunOS
    • https://github.com/napalm-automation/napalm-nxos - Driver for NXOS
    • https://github.com/napalm-automation/napalm-pluribus - Driver for Pluribus
    Source code(tar.gz)
    Source code(zip)
  • 0.60.0(Mar 4, 2016)

    Base

    New getters:

    • Added method cli
    • Added method get_arp_table
    • Added method get_ntp_peers
    • Added method get_lldp_neighbors
    • Added method get_lldp_neighbors_details
    • Added method get_interfaces_ip
    • Added method get_route_to
    • Added method get_bgp_neighbors_detail
    • Added method get_bgp_config
    • Added method get_mac_address_table
    • Added method load_template
    • Added method get_snmp_information

    Please, refer to the getters support matrix for more information

    Some bugs were killed and some internal improvements were also done.

    EOS

    • Added template to delete ntp peers
    • Added template to set ntp peers

    JunOS

    • Locking the configuration is now optional via an optional_arg
    • Added template to delete ntp peers
    • Added template to set ntp peers
    • Added template to delete rpm probes peers
    • Added template to set rpm probes peers

    IOS-XR

    • Locking the configuration is now optional via an optional_arg
    • Added template to delete ntp peers
    • Added template to set ntp peers

    NXOS

    • Added template to delete ntp peers
    • Added template to set ntp peers

    IOS

    • IOS now returns long interfaces names.

    Pluribus

    • Added support for Pluribus.
    • Only some getters are supported, no support for configuration changes.

    Special thanks

    To @mirceaulinic, @ktbyers @ande0581 and @jejenone for their contributions.

    Source code(tar.gz)
    Source code(zip)
  • 0.50.3(Jan 14, 2016)

Owner
napalm-automation
napalm-automation
α-Indirect Control in Onion-like Networks

α-Indirect Control in Onion-like Networks

European University at St. Petersburg (EUSP) 150 Jul 07, 2022
Temporal network visualization

Temporal network visualization This code is what I used to make the visualizations of SocioPatterns' primary school data here It requires the data of

Petter Holme 12 Jun 04, 2022
This project calculates current internet upload and download speeds.

Internet-Speed-Calculator Project Description: In this project, are creating an internet speed calculator. Requirements: Following modules need to be

Hassan Shahzad 4 Oct 26, 2021
whm also known as wifi-heat-mapper is a Python library for benchmarking Wi-Fi networks and gather useful metrics that can be converted into meaningful easy-to-understand heatmaps.

whm also known as wifi-heat-mapper is a Python library for benchmarking Wi-Fi networks and gather useful metrics that can be converted into meaningful easy-to-understand heatmaps.

Nischay Mamidi 128 Dec 16, 2022
Emulator for rapid prototyping of Software Defined Networks

Mininet: Rapid Prototyping for Software Defined Networks The best way to emulate almost any network on your laptop! Mininet 2.3.0b2 What is Mininet? M

Mininet 4.7k Jan 05, 2023
Network Automation and Programmability Abstraction Layer with Multivendor support

NAPALM NAPALM (Network Automation and Programmability Abstraction Layer with Multivendor support) is a Python library that implements a set of functio

napalm-automation 2k Dec 31, 2022
The POX network software platform

POX POX is a networking software platform written in Python. POX started life as an OpenFlow controller, but can now also function as an OpenFlow swit

NOX Repo 591 Dec 13, 2022
Virt Test Provider for qemu and other related virtualization backends

QEMU test provider for virt-test This is the official [1] test provider for the following subtest types: QEMU Generic (Virtualization backend agnostic

Autotest 41 Jan 03, 2023
A python module to create random networks using network models

networkgen A python module to create random networks using network models Usage $

Serkan Demirci 3 Sep 26, 2022