You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+7-17Lines changed: 7 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,34 +1,23 @@
1
1
NAPALM
2
2
======
3
-
NAPALM (Network Automation and Programmability Abstraction Layer with Multivendor support) is python library that implements a set of functions to interact with different vendors using a unified API.
3
+
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 supports several methods to connect to the devices, to manipulate configuration and to retrieve data.
7
+
NAPALM supports several methods to connect to the devices, to manipulate configurations or to retrieve data.
8
8
9
9
Supported Network Operating Systems
10
10
-----------------------------------
11
-
* EOS - Using [pyeapi](https://github.com/arista-eosplus/pyeapi). You need version 4.14.6M or superior.
12
-
* JunOS - Using [junos-eznc](https://github.com/Juniper/py-junos-eznc)
13
-
* IOS-XR - Using [pyIOSXR](https://github.com/fooelisa/pyiosxr)
14
-
* FortiOS - Using [pyFG](https://github.com/spotify/pyfg)
15
-
16
-
|| EOS | JunOS | IOS-XR | FortiOS |
17
-
|---|---|---|---|---|
18
-
|**Name**| eos | junos | iosxr | fortios |
19
-
|**Config Management**| Full | Full | Full | Full |
20
-
|**Atomic Changes**| Yes | Yes | Yes | No |
21
-
|**Rollback**| Yes | Yes | Yes | Yes |
11
+
12
+
Please check the following [link](http://napalm.readthedocs.org/support/index.html) to see which devices are supported. Make sure you understand the [caveats](http://napalm.readthedocs.org/support/index.html#caveats).
22
13
23
14
Documentation
24
15
=============
25
-
Before using the library, please, read the documentation (link below). Specially the "caveats" section:
26
16
27
-
See the [Read the Docs](http://napalm.readthedocs.org)
17
+
Before using the library, please read the documentation at:[Read the Docs](http://napalm.readthedocs.org)
28
18
29
19
You can also watch a [live demo](https://youtu.be/93q-dHC0u0I) of NAPALM to see what it is and what it can do for you.
30
20
31
-
32
21
Install
33
22
=======
34
23
To install, execute:
@@ -39,10 +28,11 @@ To install, execute:
39
28
40
29
Ansible
41
30
=======
42
-
There is an ansible module provided by this API. Make sure you read the documentation and you understand how it works before trying to use it.
31
+
There are some ansible modules provided by this API. Make sure you read the documentation and you understand how it works before trying to use it.
Copy file name to clipboardExpand all lines: docs/index.rst
+13-24Lines changed: 13 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,17 +6,19 @@
6
6
Welcome to NAPALM's documentation!
7
7
==================================
8
8
9
-
NAPALM (Network Automation and Programmability Abstraction Layer with Multivendor support) is python library that implements a common set of functions to interact with different network Operating Systems using a unified API.
9
+
NAPALM (Network Automation and Programmability Abstraction Layer with Multivendor support) is a Python library that implements a set of functions to interact with different network device Operating Systems using a unified API.
10
10
11
-
NAPALM supports several methods to connect to the devices, to manipulate configuration or to retrieve data.
11
+
NAPALM supports several methods to connect to the devices, to manipulate configurations or to retrieve data.
12
12
13
-
Supported Network Operating System:
13
+
Supported Network Operating Systems
14
+
-----------------------------------
14
15
15
16
* eos
16
17
* junos
17
18
* iosxr
19
+
* fortios
18
20
19
-
You can get the driver you need by doing the following::
21
+
You can select the driver you need by doing the following::
20
22
21
23
>>> from napalm import get_network_driver
22
24
>>> get_network_driver('eos')
@@ -25,30 +27,17 @@ You can get the driver you need by doing the following::
25
27
<class napalm.iosxr.IOSXRDriver at 0x10706c738>
26
28
>>> get_network_driver('junos')
27
29
<class napalm.junos.JunOSDriver at 0x107861bb0>
30
+
>>> get_network_driver('fortios')
31
+
<class napalm.fortios.FortiOSDriver at 0x10bf6c1f0>
28
32
29
-
Check the tutorials to see how to use the library and the driver section to check which methods are available and some notes regarding each driver.
33
+
Check the tutorials to see how to use the library in more detail, Suppoerted Devices will provide you with detailed support information and caveats and the NetworkDriver section explains which methods are available for you to use.
Rollback is simply implemented by reading current running configuration before any load actions. Rollback function executes load replace and commit.
8
+
9
+
10
+
Atomic Changes
11
+
~~~~~~~~~~~~~~
12
+
13
+
IBM plugin uses netconf to load configuration on to device. It seems that configuration is executed line by line but we can be sure that all lines will be executed. There are three options for error handling: stop-on-error, continue-on-error and rollback-on-error. Plugin uses rollback-on-error option in case of merge operation. However replace operation uses continue-on-error option. In case of typo in configuration, device will inform plugin about error but execute all the rest lines. Plugin will revert configuration using rollback function from the plugin. I do not use rollback-on-error for replace operation because in case of error device is left without any configuration. It seems like a bug. It will be investigated further. Moreover it seems that replace option wipe out whole configuration on device at the first step, so this option is good for provisioning of new device and it is not recomended for device in production.
Copy file name to clipboardExpand all lines: docs/tutorials/first_steps_config.rst
+22-17Lines changed: 22 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,28 +1,29 @@
1
1
First Steps Manipulating Config
2
2
===============================
3
3
4
-
NAPALM does not try to hide any configuration details. It only tries to provide a common interface and mechanisms to push configuration to the device so you can build your way around it. This method is very useful in combination with tools like `Ansible <http://www.ansible.com>`_.
4
+
NAPALM tries to provide a common interface and mechanisms to push configuration and retrieve state data from network devices. This method is very useful in combination with tools like `Ansible <http://www.ansible.com>`_, which in turn allows you to manage a set of devices independent of their network OS.
5
5
6
-
Connecting to the device
6
+
Connecting to the Device
7
7
------------------------
8
8
9
-
Now you can use that driver you got to connect to the device::
9
+
Use the appropriate network driver to connect to the device::
0 commit comments