Skip to main content

NAPALM driver for HiOS network switches by Belden

Project description

NAPALM HiOS Driver

This is a NAPALM driver for HiOS network switches by Belden. It currently supports SSH protocol for interacting with HiOS devices.

Features

  • Supports SSH protocol
  • Implements standard NAPALM methods
  • Includes comprehensive unit and integration tests
  • Offers a mock device for testing and development

Installation

To install the NAPALM HiOS driver, run:

pip install napalm-hios

Quick Start

Here's a basic example of how to use the NAPALM HiOS driver:

from napalm import get_network_driver

# Initialize the driver
driver = get_network_driver('hios')
device = driver(
    hostname='your_device_ip',
    username='your_username',
    password='your_password',
    optional_args={'ssh_port': 22}  # Optional: specify SSH port if different from default
)

# Open the connection
device.open()

# Use NAPALM methods
facts = device.get_facts()
interfaces = device.get_interfaces()

# Close the connection
device.close()

If you want to see it in action without a specific purpose or use case, simply create your virtual environment, install with the pip command above and then execute the test_hios.py file found in examples/test_all_commands.py This command takes [ip address for ping] [count] (with the later two being optional) it will log the json returned dicts into the current folder in a file called test_live_device.md

Documentation

For detailed information about the NAPALM HiOS driver, including supported methods, advanced usage, and error handling, please refer to the comprehensive documentation. This docuemntation was written by Claude from Anthropic so if anything is wrong I take no responsibility.

Supported Methods

The NAPALM HiOS driver supports the following standard NAPALM methods:

  • get_facts()
  • get_interfaces()
  • get_interfaces_ip()
  • get_interfaces_counters()
  • get_lldp_neighbors()
  • get_lldp_neighbors_detail()
  • get_mac_address_table()
  • get_arp_table()
  • get_ntp_servers()
  • get_ntp_stats()
  • get_users()
  • get_optics()
  • get_config()
  • get_environment()
  • get_snmp_information()
  • ping()
  • get_vlans()

Note: Configuration-related methods like load_merge_candidate(), load_replace_candidate(), compare_config(), commit_config(), discard_config(), and rollback() are not currently implemented.

For a complete list and detailed explanations including custom vendor-specific methods, see the documentation.

Example

python -m examples/ssh_examply.py

Note: the example runs with user permissions against an online application lab provided by Hirschmann in Germany, this limits which commands you can execute.

For more details about the application lab, see http://applicationlab.hirschmann.de/remoteaccess

Testing

To run the unit tests:

python -m unittest discover tests/unit

Note: tests are still a work in progress...

To run the integration tests (requires a real HiOS device or a properly configured mock):

python -m unittest discover tests/integration

Note: I've been using example/test_all_commands.py against real devices by calling it with , the ping ip and count are optional and will default to 8.8.8.8 if not specified. This writes results to test_live_device.md and i've included an example output from a live device

Mock Device

The driver includes a mock HiOS device for testing and development purposes. To use the mock device, set the hostname to 'localhost' when initializing the driver.

Note: The mock device functionality is still in development

To-do

Some musings about what to do for next release, Wishlist, feel free to make suggestions if you have a specific need.

Known Issues

Since we have focused on SSH driver with fallback methods saying "Protocol Not Implemented" for the other protocols we plan to support, if SSH connection fails you might get a response of "Protocol Not Implemented".

Contributing

Contributions to the NAPALM HiOS driver are welcome! Please refer to the CONTRIBUTING.md file for guidelines.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

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

napalm_hios-1.1.2.tar.gz (29.5 kB view details)

Uploaded Source

Built Distribution

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

napalm_hios-1.1.2-py3-none-any.whl (31.4 kB view details)

Uploaded Python 3

File details

Details for the file napalm_hios-1.1.2.tar.gz.

File metadata

  • Download URL: napalm_hios-1.1.2.tar.gz
  • Upload date:
  • Size: 29.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for napalm_hios-1.1.2.tar.gz
Algorithm Hash digest
SHA256 6c53b18c36098e2177a4791bcc582836b73a97278c8a5b7a8052b272ad1c820c
MD5 47b054fa19d4946bf645c4864986a788
BLAKE2b-256 adafcccda2ed694f61997d98ff0e2991f9dc71063c1e991b4e0e1e7188fab8f1

See more details on using hashes here.

File details

Details for the file napalm_hios-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: napalm_hios-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 31.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for napalm_hios-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fb986ed55cc5cb52a07b361697dcba66a55ddb68d451b1d5a4aebe37e1cce568
MD5 2f43a22943fed010c4ef817f1c443e77
BLAKE2b-256 cfd7472eea38695021730598f0661b68cd17bfb8f3d7a0e899d0801f3ff2dd3d

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