akarneliuk / pygnmi

The pure Python implementation of the gNMI client.
https://training.karneliuk.com
BSD 3-Clause "New" or "Revised" License
129 stars 44 forks source link
automation gnmi grpc network network-automation pygnmi python telemetry

========================== pyGNMI: Python gNMI client

.. image:: https://github.com/akarneliuk/pygnmi/blob/master/logo.png :width: 300 :height: 300 :alt: pyGNMI logo :align: center

|project| |version| |coverage| |tag| |license|_

This repository contains pure Python implementation of the gNMI client to interact with the network functions.

===== Usage

Sample code example:

.. code-block:: python3

Modules

from pygnmi.client import gNMIclient

Variables

host = ('169.254.255.64', '57400')

Body

if name == 'main': with gNMIclient(target=host, username='admin', password='admin', insecure=True) as gc: result = gc.get(path=['openconfig-interfaces:interfaces', 'openconfig-acl:acl'])

  print(result)

Also integration with Nornir is supported (refer to examples <examples/nornir>_).

Video tutorial

Watch the detailed explanation how to use pyGNMI in our YouTube channel <https://www.youtube.com/watch?v=NooE_uHIgys&list=PLsTgo2tBPnTwmeP9zsd8B_tZR-kbguvla>_.

All gNMI RPCs supported

Supported operation modes

Tested Network Operating Systems (NOS)

Network Operating Systems (NOS) in test

======= License

By using the pyGNMI tool you agree with the license <LICENSE.txt>_.

============ Contributors

======= Dev Log

Release 0.8.14:

Release 0.8.13:

Release 0.8.12:

Release 0.8.11:

Release 0.8.10:

Release 0.8.9:

Release 0.8.8:

Release 0.8.7:

Release 0.8.6:

Release 0.8.5:

Release 0.8.4:

Release 0.8.3:

Release 0.8.2:

Release 0.8.1:

Release 0.8.0:

Release 0.7.5:

Release 0.7.4:

Release 0.7.3:

Release 0.7.2:

Release 0.7.1:

Release 0.7.0:

Release 0.6.9:

Release 0.6.8:

Release 0.6.7:

Release 0.6.6:

Release 0.6.5:

Release 0.6.4:

Release 0.6.3:

Release 0.6.2:

Release 0.6.1:

Release 0.6.0:

Release 0.5.3:

Release 0.5.2:

Release 0.5.1:

Release 0.5.0:

Release 0.4.8:

Release 0.4.6:

Release 0.4.6:

Release 0.4.5:

Release 0.4.4:

Release 0.4.3:

Release 0.4.2:

Release 0.4.1:

Release 0.4.0:

Release 0.3.12:

Release 0.3.11:

Release 0.3.10:

Release 0.3.9:

Release 0.3.8:

Release 0.3.7:

Release 0.3.6:

Release 0.3.5:

Release 0.3.4:

Release 0.3.3:

Release 0.3.2:

Release 0.3.1:

Release 0.3.0:

Release 0.2.7:

Release 0.2.6:

Release 0.2.5:

Release 0.2.4:

Release 0.2.3:

Release 0.2.2:

Release 0.2.1:

Releast 0.2.0:

Releast 0.1.9:

Release 0.1.8:

Release 0.1.7:

Release 0.1.6:

Release 0.1.5:

Release 0.1.4:

Release 0.1.3:

Release 0.1.2:

Release 0.1.1:

Release 0.1.0:

(c)2020-2022, karneliuk.com

.. |version| image:: https://img.shields.io/static/v1?label=latest&message=v0.8.14&color=success .. _version: https://pypi.org/project/pygnmi/ .. |tag| image:: https://img.shields.io/static/v1?label=status&message=stable&color=success .. _tag: https://pypi.org/project/pygnmi/ .. |license| image:: https://img.shields.io/static/v1?label=license&message=BSD-3-clause&color=success .. _license: https://github.com/akarneliuk/pygnmi/blob/master/LICENSE.txt .. |project| image:: https://img.shields.io/badge/akarneliuk%2Fpygnmi-blueviolet.svg?logo=github&color=success .. _project: https://github.com/akarneliuk/pygnmi/ .. |coverage| image:: https://img.shields.io/static/v1?label=coverage&message=68%&color=yellow .. _coverage: https://github.com/nedbat/coveragepy