Skip to main content

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

Project description

pyGNMI: Python gNMI client

project version tag license

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

Usage

Sample code example:

# 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).

Video tutorial

Watch the detailed explanation how to use pyGNMI in our YouTube channel.

All gNMI RPCs supported

  • Capabilities

  • Get

  • Set

  • Subscribe

Supported operation modes

  • insecure gRPC channel (without encryption)

  • secure gRPC channel (with encryption and authentication based on certificate)

Tested Network Operating Systems (NOS)

  • Arista EOS

  • Nokia SR OS

Network Operating Systems (NOS) in test

  • Nokia SRLinux

  • Cisco IOS XR

  • Cisco Nexus

License

By using the pyGNMI tool you agree with the license.

Dev Log

Release 0.3.6:

  • Added the argument encoding to Get operation

Release 0.3.5:

  • Added the example for Nornir Integration

  • Added the topology diagram

  • Added links to the video tutorial

Release 0.3.4:

  • Added the close method to gNMIClient class for those, who doesn’t use with ... as ... context manager.

Release 0.3.3:

  • Added the functionality to pass gRPC messages to the code execution

Release 0.3.2:

  • Minor bugs fixed.

Release 0.3.1:

  • Minor bugs fixed.

  • Added examples of gNMI operations.

Release 0.3.0:

  • Added new function telemetryParser, which converts Protobuf messages in Python dictionary.

  • Fixed the errors with the telemetry parsing.

Release 0.2.7:

  • Modified core so that telemetry is working in once and stream mode.

Release 0.2.6:

  • Added alpha version of the Subscribe operation.

Release 0.2.5:

  • Added typing hints.

Release 0.2.4:

  • Minor bugfixing.

Release 0.2.3:

  • Added support for IPv6 transport (now you can connect to the network function over IPv6).

Release 0.2.2:

  • Added conversion of the collected information over the gNMI into a Python dictionary for Set operation.

Release 0.2.1:

  • Fixing the bugs with improper Protobuf paths generation.

  • Now all Set operations (delete, replace, and update) are working properly.

Releast 0.2.0:

  • Added the Set operation from gNMI specification.

Releast 0.1.9:

  • Added the property datatype='all' to the get() request. The values are per the gNMI specification: all, config, state, operatonal.

Release 0.1.8:

  • Added conversion of the collected information over the gNMI into a Python dictionary for Get operation.

Release 0.1.7:

  • Changing packages modules.

Release 0.1.6:

  • Restructuring internal context.

Release 0.1.5:

  • Minor bugfixing.

Release 0.1.4:

  • Minor bugfixing.

Release 0.1.3:

  • Minor bugfixing.

Release 0.1.2:

  • The gNMIClient is recreated as context manger.

  • Tests with Nokia SR OS done, the module is working nice for insecure channel.

Release 0.1.1:

  • Added the Get operation out of gNMI specification.

Release 0.1.0:

  • The first release.

(c)2020-2021, karneliuk.com

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pygnmi-0.3.6.tar.gz (20.1 kB view details)

Uploaded Source

File details

Details for the file pygnmi-0.3.6.tar.gz.

File metadata

  • Download URL: pygnmi-0.3.6.tar.gz
  • Upload date:
  • Size: 20.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5

File hashes

Hashes for pygnmi-0.3.6.tar.gz
Algorithm Hash digest
SHA256 0d0eb77e51d20f33d4fee9a002017a8e53e588648b0185cb01a051a811c72be0
MD5 51a1c73be1ee0f8ba2ef7c9978ef5771
BLAKE2b-256 15968c8aa09a1bc548d2fcf42928b3c43caa25f451f3bca0191d45acc96303c1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page