Cisco NX-API asyncio Client
This repository contains a Cisco NX-API asyncio based client that uses the httpx as an underlying transport and lxml as the basis for handling XML.
Note: This client does not support the NETCONF interface.
WORK IN PROGESS
Quick Example
Thie following shows how to create a Device instance and run a list of commands.
By default the Device instance will use HTTPS transport. The Device instance supports the following settings:
host- The device hostname or IP addressusername- The login user-namepassword- The login passwordproto- (Optional) Choose either "https" or "http", defaults to "https"port- (Optional) Chose the protocol port to override proto default
The result of command execution is a list of CommandResults (namedtuple).
The output field will be:
- lxml.Element when output format is 'xml'
- dict when output format is 'json'
- str when output format is 'text'
from asyncnxapi import Device
username = 'dummy-user'
password = 'dummy-password'
async def run_test(host):
dev = Device(host=host, creds=(username, password))
res = await dev.exec(['show hostname', 'show version'], ofmt='json')
for cmd in res:
if not cmd.ok:
print(f"{cmd.command} failed")
continue
# do something with cmd.output as dict since ofmt was 'json'
Limitations
- Chunking is not currently supported. If anyone has need of this feature please open an issue requesting support.
References
Cisco DevNet NX-API Rerefence:
Cisco platform specific NX-API references:
-
N3K systems, requires 7.0(3)I2(2) or later: https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus3000/sw/programmability/7_x/b_Cisco_Nexus_3000_Series_NX-OS_Programmability_Guide_7x/b_Cisco_Nexus_3000_Series_NX-OS_Programmability_Guide_7x_chapter_010010.html
-
N5K system, requires 7.3(0)N1(1) or later: https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus5000/sw/programmability/guide/b_Cisco_Nexus_5K6K_Series_NX-OS_Programmability_Guide/nx_api.html#topic_D110A801F14F43F385A90DE14293BA46
Metadata
Release files for aio-nxapi 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aio_nxapi-0.6.0.tar.gz | 9.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aio_nxapi-0.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.1 kB
Release files / aio_nxapi-0.6.0.tar.gz
| Download URL | aio_nxapi-0.6.0.tar.gz |
|---|---|
| Size | 9.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b81e2190951d46b558e27b5f50fcfa1a61c2db6cc2d44ee138b3402ac7ecae3a
|
|
BLAKE2b-256 checksum How to use checksums |
1752fb0e35e013002f820e88d7e153c5941e10850b88396e9242347c2313e16a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.12.3 Darwin/23.6.0
|
Release files / aio_nxapi-0.6.0-py3-none-any.whl
| Download URL | aio_nxapi-0.6.0-py3-none-any.whl |
|---|---|
| Size | 12.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4c8199b33cf7b4850a9705cd54c3f1c163f2d82ce19b87adcac03597661b941d
|
|
BLAKE2b-256 checksum How to use checksums |
d8da6f01b7e7488947aabb3340f4bd4d1fc48c1831327b8839383214713d347b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.12.3 Darwin/23.6.0
|