Skip to content

Commit

Permalink
Merge pull request #340 from napalm-automation/master
Browse files Browse the repository at this point in the history
Master
  • Loading branch information
dbarrosop committed Dec 19, 2016
2 parents 474538d + 42640c9 commit 8c33b7b
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 66 deletions.
19 changes: 10 additions & 9 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,16 @@ NAPALM supports several methods to connect to the devices, to manipulate configu
Supported Network Operating Systems:
------------------------------------

* eos
* junos
* iosxr
* fortios
* ibm
* nxos
* ios
* pluribus
* panos
* Arista EOS
* Cisco IOS
* Cisco IOS-XR
* Cisco NX-OS
* Fortinet Fortios
* IBM
* Juniper JunOS
* Mikrotik RouterOS
* Palo Alto NOS
* Pluribus

You can select the driver you need by doing the following:

Expand Down
109 changes: 55 additions & 54 deletions docs/support/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,16 @@ General support matrix
----------------------


===================== ========== ============= ============ ============== ============= ============ ============ =============== ========================
_ EOS JunOS IOS-XR FortiOS IBM NXOS IOS Pluribus PANOS
===================== ========== ============= ============ ============== ============= ============ ============ =============== ========================
**Module Name** napalm-eos napalm-junos napalm-iosxr napalm-fortios napalm-ibm napalm-nxos napalm-ios napalm-pluribus napalm-panos
**Driver Name** eos junos iosxr fortios ibm nxos ios pluribus panos
**Structured data** Yes Yes No No Yes Yes No No Yes
**Minimum version** 4.15.0F 12.1 5.1.0 5.2.0 ??? 6.1 [#g1]_ 12.4(20)T N/A 7.0
**Backend library** `pyeapi`_ `junos-eznc`_ `pyIOSXR`_ `pyFG`_ `bnclient`_ `pycsco`_ `netmiko`_ `pyPluribus`_ `netmiko`_, `pan-python`_
===================== ========== ============= ============ ============== ============= ============ ============ =============== ========================= ==============
_ EOS JunOS IOS-XR FortiOS IBM NXOS IOS Pluribus PANOS MikroTik
===================== ========== ============= ============ ============== ============= ============ ============ =============== ========================= ==============
**Module Name** napalm-eos napalm-junos napalm-iosxr napalm-fortios napalm-ibm napalm-nxos napalm-ios napalm-pluribus napalm-panos napalm-ros
**Driver Name** eos junos iosxr fortios ibm nxos ios pluribus panos ros
**Structured data** Yes Yes No No Yes Yes No No Yes Yes
**Minimum version** 4.15.0F 12.1 5.1.0 5.2.0 ??? 6.1 [#g1]_ 12.4(20)T N/A 7.0 3.30
**Backend library** `pyeapi`_ `junos-eznc`_ `pyIOSXR`_ `pyFG`_ `bnclient`_ `pycsco`_ `netmiko`_ `pyPluribus`_ `netmiko`_, `pan-python`_ `librouteros`_
**Caveats** :doc:`eos` :doc:`fortios` :doc:`ibm` :doc:`nxos` :doc:`ios` :doc:`panos`
===================== ========== ============= ============ ============== ============= ============ ============ =============== ========================
===================== ========== ============= ============ ============== ============= ============ ============ =============== ========================= ==============

.. _pyeapi: https://github.com/arista-eosplus/pyeapi
.. _junos-eznc: https://github.com/Juniper/py-junos-eznc
Expand All @@ -25,6 +25,7 @@ _ EOS JunOS IOS-XR FortiOS
.. _netmiko: https://github.com/ktbyers/netmiko
.. _pyPluribus: https://github.com/mirceaulinic/pypluribus
.. _pan-python: https://github.com/kevinsteves/pan-python
.. _librouteros: https://github.com/luqasz/librouteros

.. [#g1] NX-API support on the Nexus 5k, 6k and 7k families was introduced in version 7.2
Expand All @@ -34,15 +35,15 @@ _ EOS JunOS IOS-XR FortiOS
Configuration support matrix
----------------------------

===================== ========== ===== ========== ============== ============= ============== ============== ============== ==============
_ EOS JunOS IOS-XR FortiOS IBM NXOS IOS Pluribus PANOS
===================== ========== ===== ========== ============== ============= ============== ============== ============== ==============
**Config. replace** Yes Yes Yes Yes Yes [#c3]_ Yes Yes No Yes
**Config. merge** Yes Yes Yes Yes Yes Yes Yes No Yes
**Compare config** Yes Yes Yes [#c1]_ Yes [#c1]_ Yes [#c1]_ Yes [#c4]_ Yes No Yes
**Atomic Changes** Yes Yes Yes No [#c2]_ No [#c2]_ Yes/No [#c5]_ Yes Yes Yes/No [#c5]_
**Rollback** Yes [#c2]_ Yes Yes Yes Yes [#c2]_ Yes/No [#c5]_ Yes No Yes
===================== ========== ===== ========== ============== ============= ============== ============== ============== ==============
===================== ========== ===== ========== ============== ============= ============== ============== ============== ============== ========
_ EOS JunOS IOS-XR FortiOS IBM NXOS IOS Pluribus PANOS MikroTik
===================== ========== ===== ========== ============== ============= ============== ============== ============== ============== ========
**Config. replace** Yes Yes Yes Yes Yes [#c3]_ Yes Yes No Yes No
**Config. merge** Yes Yes Yes Yes Yes Yes Yes No Yes No
**Compare config** Yes Yes Yes [#c1]_ Yes [#c1]_ Yes [#c1]_ Yes [#c4]_ Yes No Yes No
**Atomic Changes** Yes Yes Yes No [#c2]_ No [#c2]_ Yes/No [#c5]_ Yes Yes Yes/No [#c5]_ No
**Rollback** Yes [#c2]_ Yes Yes Yes Yes [#c2]_ Yes/No [#c5]_ Yes No Yes No
===================== ========== ===== ========== ============== ============= ============== ============== ============== ============== ========

.. [#c1] Hand-crafted by the API as the device doesn't support the feature.
.. [#c2] Not supported but emulated. Check caveats.
Expand All @@ -60,45 +61,45 @@ Getters support matrix
.. |yes| unicode:: U+02705 .. Yes
.. |no| unicode:: U+0274C .. No

============================== ===== ===== ====== ======= ====== ====== ===== ========= =========
_ EOS JunOS IOS-XR FortiOS IBM NXOS IOS Pluribus PANOS
============================== ===== ===== ====== ======= ====== ====== ===== ========= =========
**cli** |yes| |yes| |yes| |no| |no| |yes| |yes| |yes| |no|
**get_facts** |yes| |yes| |yes| |yes| |no| |yes| |yes| |yes| |yes|
**get_environment** |yes| |yes| |yes| |yes| |no| |no| |yes| |no| |no|
**get_snmp_information** |yes| |yes| |yes| |no| |no| |yes| |yes| |yes| |no|
**get_ntp_servers** |yes| |yes| |yes| |no| |no| |yes| |yes| |yes| |no|
**get_ntp_peers** |no| |yes| |yes| |no| |no| |yes| |no| |yes| |no|
**get_ntp_stats** |yes| |yes| |yes| |no| |no| |yes| |yes| |yes| |no|
**get_mac_address_table** |yes| |yes| |yes| |no| |no| |yes| |yes| |yes| |no|
**get_arp_table** |yes| |yes| |yes| |no| |no| |yes| |yes| |no| |no|
**get_interfaces** |yes| |yes| |yes| |yes| |no| |yes| |yes| |yes| |yes|
**get_interfaces_ip** |yes| |yes| |yes| |no| |no| |yes| |yes| |no| |no|
**get_lldp_neighbors** |yes| |yes| |yes| |yes| |no| |yes| |yes| |yes| |no|
**get_lldp_neighbors_detail** |yes| |yes| |yes| |no| |no| |yes| |yes| |yes| |no|
**get_bgp_neighbors** |yes| |yes| |yes| |yes| |no| |yes| |yes| |no| |no|
**get_bgp_neighbors_detail** |yes| |yes| |yes| |no| |no| |no| |no| |no| |no|
**get_bgp_config** |yes| |yes| |yes| |no| |no| |no| |no| |no| |no|
**get_route_to** |yes| |yes| |yes| |no| |no| |no| |no| |no| |no|
**get_probes_config** |no| |yes| |yes| |no| |no| |no| |no| |no| |no|
**get_probes_results** |no| |yes| |yes| |no| |no| |no| |no| |no| |no|
**get_users** |yes| |yes| |yes| |no| |no| |yes| |no| |yes| |no|
**get_optics** |yes| |yes| |yes| |no| |no| |no| |no| |no| |no|
**get_config** |yes| |yes| |yes| |yes| |no| |yes| |no| |yes| |no|
**get_network_instances** |yes| |yes| |no| |no| |no| |no| |no| |no| |no|
**get_firewall_policies** |no| |no| |no| |yes| |no| |no| |no| |no| |no|
============================== ===== ===== ====== ======= ====== ====== ===== ========= =========
============================== ===== ===== ====== ======= ====== ====== ===== ========= ========= ========
_ EOS JunOS IOS-XR FortiOS IBM NXOS IOS Pluribus PANOS MikroTik
============================== ===== ===== ====== ======= ====== ====== ===== ========= ========= ========
**cli** |yes| |yes| |yes| |no| |no| |yes| |yes| |yes| |no| |no|
**get_facts** |yes| |yes| |yes| |yes| |no| |yes| |yes| |yes| |yes| |yes|
**get_environment** |yes| |yes| |yes| |yes| |no| |no| |yes| |no| |no| |yes|
**get_snmp_information** |yes| |yes| |yes| |no| |no| |yes| |yes| |yes| |no| |yes|
**get_ntp_servers** |yes| |yes| |yes| |no| |no| |yes| |yes| |yes| |no| |yes|
**get_ntp_peers** |no| |yes| |yes| |no| |no| |yes| |no| |yes| |no| |no|
**get_ntp_stats** |yes| |yes| |yes| |no| |no| |yes| |yes| |yes| |no| |no|
**get_mac_address_table** |yes| |yes| |yes| |no| |no| |yes| |yes| |yes| |no| |no|
**get_arp_table** |yes| |yes| |yes| |no| |no| |yes| |yes| |no| |no| |yes|
**get_interfaces** |yes| |yes| |yes| |yes| |no| |yes| |yes| |yes| |yes| |yes|
**get_interfaces_ip** |yes| |yes| |yes| |no| |no| |yes| |yes| |no| |no| |yes|
**get_lldp_neighbors** |yes| |yes| |yes| |yes| |no| |yes| |yes| |yes| |no| |no|
**get_lldp_neighbors_detail** |yes| |yes| |yes| |no| |no| |yes| |yes| |yes| |no| |no|
**get_bgp_neighbors** |yes| |yes| |yes| |yes| |no| |yes| |yes| |no| |no| |no|
**get_bgp_neighbors_detail** |yes| |yes| |yes| |no| |no| |no| |no| |no| |no| |no|
**get_bgp_config** |yes| |yes| |yes| |no| |no| |no| |no| |no| |no| |no|
**get_route_to** |yes| |yes| |yes| |no| |no| |no| |no| |no| |no| |no|
**get_probes_config** |no| |yes| |yes| |no| |no| |no| |no| |no| |no| |no|
**get_probes_results** |no| |yes| |yes| |no| |no| |no| |no| |no| |no| |no|
**get_users** |yes| |yes| |yes| |no| |no| |yes| |no| |yes| |no| |yes|
**get_optics** |yes| |yes| |yes| |no| |no| |no| |no| |no| |no| |no|
**get_config** |yes| |yes| |yes| |yes| |no| |yes| |no| |yes| |no| |no|
**get_network_instances** |yes| |yes| |no| |no| |no| |no| |no| |no| |no| |yes|
**get_firewall_policies** |no| |no| |no| |yes| |no| |no| |no| |no| |no| |no|
============================== ===== ===== ====== ======= ====== ====== ===== ========= ========= =========

Other methods
-------------

============================== ===== ===== ====== ======= ====== ====== ===== ========= =========
_ EOS JunOS IOS-XR FortiOS IBM NXOS IOS Pluribus PANOS
============================== ===== ===== ====== ======= ====== ====== ===== ========= =========
**load_template** |yes| |yes| |yes| |yes| |yes| |yes| |yes| |yes| |yes|
**ping** |no| |no| |no| |no| |no| |no| |yes| |no| |no|
**traceroute** |yes| |yes| |yes| |no| |no| |yes| |yes| |yes| |no|
============================== ===== ===== ====== ======= ====== ====== ===== ========= =========
============================== ===== ===== ====== ======= ====== ====== ===== ========= ========= ========
_ EOS JunOS IOS-XR FortiOS IBM NXOS IOS Pluribus PANOS MikroTik
============================== ===== ===== ====== ======= ====== ====== ===== ========= ========= ========
**load_template** |yes| |yes| |yes| |yes| |yes| |yes| |yes| |yes| |yes| |no|
**ping** |no| |no| |no| |no| |no| |no| |yes| |no| |no| |yes|
**traceroute** |yes| |yes| |yes| |no| |no| |yes| |yes| |yes| |no| |no|
============================== ===== ===== ====== ======= ====== ====== ===== ========= ========= =========

Available configuration templates
---------------------------------
Expand Down Expand Up @@ -139,7 +140,7 @@ List of supported optional arguments
____________________________________

* :code:`fortios_vdom` (fortios) - VDOM to connect to.
* :code:`port` (eos, iosxr, junos, ios) - Allows you to specify a port other than the default.
* :code:`port` (eos, iosxr, junos, ios, ros) - Allows you to specify a port other than the default.
* :code:`config_lock` (iosxr, junos) - Lock the config during open() (default: True).
* :code:`dest_file_system` (ios) - Destination file system for SCP transfers (default: 'flash:').
* :code:`auto_rollback_on_error` (ios) - Disable automatic rollback (certain versions of IOS support configure replace, but not rollback on error) (default: True).
Expand Down
6 changes: 3 additions & 3 deletions docs/validate/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ script could start like this::
}

Now, let's validate that the devices are running a specific version and that the management IP is
the one I expect. Let's start by writing the validator files.
the one we expect. Let's start by writing the validator files.

* ``validate-eos.yml``::

Expand All @@ -99,7 +99,7 @@ the one I expect. Let's start by writing the validator files.
os_version: 4.17.2F
get_interfaces_ip:
ge-0/0/0.0:
Management1:
ipv4:
10.0.2.14:
prefix_length: 24
Expand Down Expand Up @@ -217,7 +217,7 @@ Why this and what's next
As mentioned in the introduction, this is interesting to validate state. You could, for example,
very easily check that your BGP neigbors are configured and that the state is up. It becomes even more
interesting if you can build the validator file from data from your inventory. That way you could
deploy your network matches your expectations all the time without human intervention.
deploy your network and verify it matches your expectations all the time without human intervention.

Something else you could do is write the validation file manually prior to a maintenance based on
some gathered data from the network and on your expectations. You could, then, perform your changs
Expand Down
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ napalm-junos
napalm-nxos
napalm-pluribus
napalm-panos
napalm-ros

0 comments on commit 8c33b7b

Please sign in to comment.