Skip to main content

simply its netdev with fsm

Project description

AsyncNetFSM


Asynchronous multi-vendor library for interacting with network devices

Inspired by netdev

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:

.. code-block:: python

import asyncio
import asyncnetfsm

async def task(param):
    async with asyncnetfsm.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

asyncnetfsm-0.0.1.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

asyncnetfsm-0.0.1-py3-none-any.whl (35.4 kB view details)

Uploaded Python 3

File details

Details for the file asyncnetfsm-0.0.1.tar.gz.

File metadata

  • Download URL: asyncnetfsm-0.0.1.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.4

File hashes

Hashes for asyncnetfsm-0.0.1.tar.gz
Algorithm Hash digest
SHA256 74d47124585b9d9130159381775e30516348732c1eeb2171cd61c8afbe5a39ed
MD5 02b11a053c19167034ea0cbfdea60c62
BLAKE2b-256 845a953f15c3c7daacd02de4a5e823c28d8a74be60de6d31fca52807aa8c3d7e

See more details on using hashes here.

File details

Details for the file asyncnetfsm-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: asyncnetfsm-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 35.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.4

File hashes

Hashes for asyncnetfsm-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9975d99ab68ab4dd5a7c44154d29570baf37f271db13c6b0b9068472a1927068
MD5 b6300e1a89f5dc19c87afe7bfc4cae07
BLAKE2b-256 1ce262958ccd579aac726c3dae2e32cbdabab9307f61b264421dd7a350f7bc50

See more details on using hashes here.

Supported by

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