Async, efficient and lightweight gNMI client written in Python.
Project description
aiogNMI
About
This Python library provides an efficient and lightweight gNMI client implementation that leverages asynchronous approach.
Supported RPCs:
- Capabilities
- Get
- Set
- Subscribe (under development)
Tested on:
- Arista EOS
- Nokia SR OS
Repository contains protobuf files from gNMI repo and based on gNMI release v0.10.0. Early gNMI version should work too, I've tested with 0.7.0 and it works well.
NOTE: At this moment supporting of the secure connections (with encryption or certificate) is in alpha version. You can use them, but I don't guarantee stable work.
Install
Install with pip:
pip install aiognmi
Examples
Capabilities
RPC
import asyncio
from aiognmi import AsyncgNMIClient
async def main():
async with AsyncgNMIClient(host="test-1", port=6030, username="admin", password="admin", insecure=True) as client:
resp = await client.get_capabilities()
print(resp.result)
if __name__ == "__main__":
asyncio.run(main())
Get
RPC
import asyncio
from aiognmi import AsyncgNMIClient
async def main():
async with AsyncgNMIClient(host="test-1", port=6030, username="admin", password="admin", insecure=True) as client:
resp = await client.get(
paths=[
"/interfaces/interface[name=Management0]",
]
)
print(resp.result)
if __name__ == "__main__":
asyncio.run(main())
Set
RPC
import asyncio
from aiognmi import AsyncgNMIClient
async def main():
async with AsyncgNMIClient(host="test-1", port=6030, username="admin", password="admin", insecure=True) as client:
resp = await client.set(
update=[
{"path": "/interfaces/interface[name=Management0]/config", "data": {"description": "gnmi update test"}}
]
)
print(resp.result)
if __name__ == "__main__":
asyncio.run(main())
Credits
My work is inspired by these people:
- Anton Karneliuk and his pyGNMI library
- Carl Montanari and his scrapli library
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
Built Distribution
File details
Details for the file aiognmi-0.1.1.tar.gz
.
File metadata
- Download URL: aiognmi-0.1.1.tar.gz
- Upload date:
- Size: 17.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 080a3b8f8072688c8499d639a9302500a741fd78418385f9bb35e6f8858b26d1 |
|
MD5 | d847da9c3ef2a176e7937e353ddeb5fb |
|
BLAKE2b-256 | b32c46212b7b64eece8c58419c83453139e175ae974fc7dcc87c948c367dd788 |
File details
Details for the file aiognmi-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: aiognmi-0.1.1-py3-none-any.whl
- Upload date:
- Size: 18.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | be6bc87d20f607f80a69d3616f346d903e45199f538d1273700fb5ddef810977 |
|
MD5 | b41c03d615d1992a4981a6790f6fca4d |
|
BLAKE2b-256 | 09fbf7e32c0140c3a5f3420f7fede984e00c83ef80455f50088b9887740a8247 |