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.8.0.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

netdev-0.8.0-py3-none-any.whl (30.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: netdev-0.8.0.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for netdev-0.8.0.tar.gz
Algorithm Hash digest
SHA256 004a373be9578428cdc9352bc131ab46e2eac035a930dd17903e8d8726820efa
MD5 e33b242d64cf884b767b309603ae287c
BLAKE2b-256 181fb80555b40f177aa3c16f027f72632566dfa5395401e6f058a6442df0d85f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for netdev-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4d354f91adbdbe6da18895f145296326ca883e346362c4e33038b489b11b15c0
MD5 35f85d34975502afb80aaed8cb0e40b9
BLAKE2b-256 f62cefe98d181b7369201e4f6842bf68c287c054cac42c3267b1fba7ae21b8bf

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