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

Uploaded Source

Built Distribution

netdev-0.9.0-py3-none-any.whl (31.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for netdev-0.9.0.tar.gz
Algorithm Hash digest
SHA256 c9137d6b5d08acfe0782d3dbd2b47c1b341c622e3b3228cbf3f199472da91809
MD5 1efd0b01244ac7405c7c677d6b5faeda
BLAKE2b-256 f54a324fb65a5e53cc71c6dd27c5098147e0a2a2c9f921f3d5a39208621a1864

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for netdev-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 20f4b6957ac0be143e8e253616b6fc93c4cb89433ac0676fd3fd6d1d457dfbba
MD5 9e6f8985a8673079f151466c45ebc328
BLAKE2b-256 ee737cdb78bce16cc1d8ac4b0fb679c280486c951c62c04c4b4413ec65d27a45

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