Skip to main content

Asynchronous multi-vendor library for interacting with network devices

Project description

Asynchronous multi-vendor library for interacting with network devices

Inspired by netmiko

Requires:

  • asyncio

  • AsyncSSH

  • Python >=3.5

  • pyYAML

Supports:

  • Cisco IOS

  • Cisco IOS XE

  • Cisco IOS XR

  • Cisco ASA

  • Cisco NX-OS

  • HP Comware (like V1910 too)

  • Fujitsu Blade Switches

  • Mikrotik RouterOS

  • Arista EOS

  • Juniper JunOS

  • Aruba AOS 6.X

  • Aruba AOS 8.X

  • Terminal

Examples:

Example of interacting with Cisco IOS devices:

import asyncio
import netdev

async def task(param):
    async with netdev.create(**param) as ios:
        # Testing sending simple command
        out = await ios.send_command("show ver")
        print(out)
        # Testing sending configuration set
        commands = ["line console 0", "exit"]
        out = await ios.send_config_set(commands)
        print(out)
        # Testing sending simple command with long output
        out = await ios.send_command("show run")
        print(out)
        # Testing interactive dialog
        out = await ios.send_command("conf", pattern=r'\[terminal\]\?', strip_command=False)
        out += await ios.send_command("term", strip_command=False)
        out += await ios.send_command("exit", strip_command=False, strip_prompt=False)
        print(out)


async def run():
    dev1 = { 'username' : 'user',
             'password' : 'pass',
             'device_type': 'cisco_ios',
             'host': 'ip address',
    }
    dev2 = { 'username' : 'user',
             'password' : 'pass',
             'device_type': 'cisco_ios',
             'host': 'ip address',
    }
    devices = [dev1, dev2]
    tasks = [task(dev) for dev in devices]
    await asyncio.wait(tasks)


loop = asyncio.get_event_loop()
loop.run_until_complete(run())

Project details


Download files

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

Source Distribution

netdev-0.9.1.tar.gz (20.3 kB view details)

Uploaded Source

Built Distribution

netdev-0.9.1-py3-none-any.whl (34.6 kB view details)

Uploaded Python 3

File details

Details for the file netdev-0.9.1.tar.gz.

File metadata

  • Download URL: netdev-0.9.1.tar.gz
  • Upload date:
  • Size: 20.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.15 CPython/3.7.3 Linux/4.4.0-17134-Microsoft

File hashes

Hashes for netdev-0.9.1.tar.gz
Algorithm Hash digest
SHA256 598c7b1f2439097b61bff30dc84a8b91649bb9751626a52e3cec6c44208cc1d5
MD5 5fe5f1d17d363f8a0f33e539f5b0676d
BLAKE2b-256 1c448f02aedaaff16ebf5b6119f5b14be7157288744321d1a1b7c96d8a6c06ed

See more details on using hashes here.

File details

Details for the file netdev-0.9.1-py3-none-any.whl.

File metadata

  • Download URL: netdev-0.9.1-py3-none-any.whl
  • Upload date:
  • Size: 34.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.15 CPython/3.7.3 Linux/4.4.0-17134-Microsoft

File hashes

Hashes for netdev-0.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3ae0cc473b4807f72440b7392c202bd3d3e0199a29c2c03471d0556d1d61fb23
MD5 ff352ff5455eb12a0bedb5dc28647af4
BLAKE2b-256 87c5cbe07b38e6b127e2602b54fea921f1b24044ea9a5a0362c1eb3eb015f364

See more details on using hashes here.

Supported by

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