-
Notifications
You must be signed in to change notification settings - Fork 546
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #79 from dbarrosop/master
Timeout, documentation revamp and IBMDriver (beta)
- Loading branch information
Showing
30 changed files
with
628 additions
and
72 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
IBM Networking Operating System | ||
------- | ||
|
||
Rollback | ||
~~~~~~~~ | ||
|
||
Rollback is simply implemented by reading current running configuration before any load actions. Rollback function executes load replace and commit. | ||
|
||
|
||
Atomic Changes | ||
~~~~~~~~~~~~~~ | ||
|
||
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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
Supported Devices | ||
================= | ||
|
||
General support matrix | ||
---------------------- | ||
|
||
|
||
===================== ========== ============= =========== ============== ============= | ||
_ EOS JunOS IOS-XR FortiOS IBM | ||
===================== ========== ============= =========== ============== ============= | ||
**Driver Name** eos junos iosxr fortios ibm | ||
**Structured data** Yes Yes No No Yes | ||
**Minimum version** 4.15.0F 12.1 5.1.0 5.2.0 ??? | ||
**Backend library** `pyeapi`_ `junos-eznc`_ `pyIOSXR`_ `pyFG`_ `bnclient`_ | ||
**Caveats** :doc:`eos` :doc:`fortios` :doc:`ibm` | ||
===================== ========== ============= =========== ============== ============= | ||
|
||
.. _pyeapi: https://github.com/arista-eosplus/pyeapi | ||
.. _junos-eznc: https://github.com/Juniper/py-junos-eznc | ||
.. _pyIOSXR: https://github.com/fooelisa/pyiosxr | ||
.. _pyFG: https://github.com/spotify/pyfg | ||
.. _bnclient: https://github.com/kderynski/blade-netconf-python-client | ||
|
||
|
||
.. warning:: Please, make sure you understand the caveats for your particular platforms before using the library. | ||
|
||
|
||
Configuration support matrix | ||
---------------------------- | ||
|
||
===================== ========== ===== ========== ============== ============= | ||
_ EOS JunOS IOS-XR FortiOS IBM | ||
===================== ========== ===== ========== ============== ============= | ||
**Config. replace** Yes Yes Yes Yes Yes [#c3]_ | ||
**Config. merge** Yes Yes Yes Yes Yes | ||
**Compare config** Yes Yes Yes [#c1]_ Yes [#c1]_ Yes [#c1]_ | ||
**Atomic Changes** Yes Yes Yes No [#c2]_ No [#c2]_ | ||
**Rollback** Yes [#c2]_ Yes Yes Yes Yes [#c2]_ | ||
===================== ========== ===== ========== ============== ============= | ||
|
||
.. [#c1] Hand-crafted by the API as the device doesn't support the feature. | ||
.. [#c2] Not supported but emulated. Check caveats. | ||
.. [#c3] Check the caveats, this is a dangerous operation in this device. | ||
.. warning:: Before building a workflow to deploy configuration it is important you understand what the table above means; | ||
what are atomic changes and which devices support it, what does replacing or merging configuration mean, etc. | ||
The key to success is to test your workflow and to try to break things on a lab first. | ||
|
||
Getters support matrix | ||
---------------------- | ||
|
||
.. |yes| unicode:: U+02705 .. Yes | ||
.. |no| unicode:: U+0274C .. No | ||
|
||
====================== ===== ===== ====== ======= ====== | ||
_ EOS JunOS IOS-XR FortiOS IBM | ||
====================== ===== ===== ====== ======= ====== | ||
**get_facts** |yes| |yes| |yes| |yes| |no| | ||
**get_interfaces** |yes| |yes| |yes| |yes| |no| | ||
**get_lldp_neighbors** |yes| |yes| |yes| |yes| |no| | ||
====================== ===== ===== ====== ======= ====== | ||
|
||
Caveats | ||
------- | ||
|
||
.. toctree:: | ||
:maxdepth: 1 | ||
|
||
eos | ||
fortios | ||
ibm |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
Tutorials | ||
========= | ||
|
||
.. toctree:: | ||
:maxdepth: 1 | ||
|
||
first_steps_config |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.