Files
napalm-hpe-aruba-procurve/README.md
T
Christian Manivong 779b42c193
driver / standard (pull_request) Successful in 13s
driver / lint (pull_request) Successful in 11s
driver / types (pull_request) Successful in 44s
driver / test (3.10) (pull_request) Successful in 45s
driver / test (3.11) (pull_request) Successful in 44s
driver / test (3.12) (pull_request) Successful in 43s
driver / test (3.13) (pull_request) Successful in 37s
driver / lowest (pull_request) Successful in 22s
driver / security (pull_request) Successful in 46s
driver / build (pull_request) Successful in 22s
CI / driver (pull_request) Successful in 5m28s
driver / publish (pull_request) Skipped
chore: adopt the NAPALM driver standard
- CI moves to .gitea/workflows/ci.yml and calls the shared driver workflow
  of NAPALM/driver-standard; .github/ goes.
- requires-python >=3.10 (napalm-device-types needs it), LICENSE file,
  CHANGELOG, py.typed, SPDX license string, links to git.netork.io;
  napalm-device-types >=4.21.1, a dev extra with floors.
- [tool.napalm-standard] names the import package napalm_procurve, which is
  not the distribution name.
- True floors for netaddr (>=0.7.10) and urllib3 (>=1.23): unbounded, the
  lowest job installed versions that do not import on Python 3.10.
- mypy strict for the package; napalm_procurve.api_client, .parsers and
  .procurve are exempt for now (136 errors), recorded in the quality
  baseline with their long functions and the 1400-line procurve.py.
  Coverage floor 54 % (measured 54.28 %).
2026-10-23 08:40:11 +02:00

2.8 KiB

napalm-hpe-aruba-procurve

NAPALM driver for HPE / Aruba ProCurve switches — from ancient 2520G-8-PoE to modern 2530/2540 series.

Transport auto-detection

The driver probes transports in order and uses the first one that succeeds:

Priority Transport Notes
1 REST API (HTTPS → HTTP, v7 → v6) Newer 2530/2540 with rest-interface enabled
2 SSH (standard) hp_procurve netmiko driver
3 SSH (legacy KEX) Forces older kex/cipher negotiation for 2520G-8-PoE etc.
4 Telnet Oldest devices without SSH or with broken SSH

Override the transport with optional_args={"transport": "ssh_legacy"} to skip auto-detection.

Switch prerequisites

REST API (newer switches, e.g. 2530, 2540)

web-management ssl
rest-interface
rest-interface session-idle-timeout 120

SSH (all ProCurve)

crypto key generate ssh rsa
ip ssh

Telnet is enabled by default on most ProCurve switches.

Installation

pip install napalm napalm-hpe-aruba-procurve

Or from source:

git clone https://git.netork.io/NAPALM/napalm-hpe-aruba-procurve
pip install -e napalm-hpe-aruba-procurve/

Quick start

from napalm import get_network_driver

Driver = get_network_driver("procurve")

with Driver(
    "10.0.0.1",
    "manager",
    "secret",
    optional_args={
        # "transport": "ssh",          # force transport (api/ssh/ssh_legacy/telnet)
        # "port": 22,
        # "ssl_verify": False,         # disable SSL cert check for API
        # "api_version": "v7",         # API version hint (v3/v6/v7)
        # "secret": "enablepassword",  # enable password for CLI
    },
) as dev:
    print(dev.get_facts())
    print(dev.get_interfaces())

Supported NAPALM methods

Method API SSH/Telnet
open() ✅ ✅
close() ✅ ✅
is_alive() ✅ ✅
get_facts() ✅ ✅
get_interfaces() ✅ ✅
get_interfaces_ip() ✅ ✅
get_arp_table() ✅ ✅
get_mac_address_table() ✅ ✅
get_lldp_neighbors() ✅ ✅
get_lldp_neighbors_detail() ✅ ✅
get_config() ✅ ✅
get_ntp_servers() ✅ ✅
get_environment() ❌ ✅
get_users() ❌ ✅
get_snmp_information() ❌ ✅
ping() ✅ ✅
cli() ✅ ✅
load_merge_candidate() ❌ ✅
load_replace_candidate() ❌ ✅
compare_config() ❌ ✅
commit_config() ❌ ✅
discard_config() ❌ ✅
rollback() ❌ ✅

Tested devices

  • HP ProCurve 2520G-8-PoE (J9565A) — SSH legacy / Telnet
  • HP ProCurve 2920-48G — SSH
  • Aruba 2530-8-PoE+ — SSH + REST API

License

Apache 2.0