Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Nov 10, 2023. It is now read-only.
/ netdev Public archive

Asynchronous multi-vendor library for interacting with network devices

License

Notifications You must be signed in to change notification settings

selfuryon/netdev

Repository files navigation

THIS PROJECT IS UNMAINTAINED

I'm not interested in this project anymore, sorry. I don't work as an network engineer anymore so I haven't any special goals to improve and maintain it.

Netdev

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
  • Cisco SG3XX
  • HP Comware (like V1910 too)
  • Fujitsu Blade Switches
  • Mikrotik RouterOS
  • Arista EOS
  • Juniper JunOS
  • Aruba AOS 6.X
  • Aruba AOS 8.X
  • Terminal
  • Alcatel AOS

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())

About

Asynchronous multi-vendor library for interacting with network devices

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 6

Languages

AltStyle によって変換されたページ (->オリジナル) /