Metadata-Version: 2.4 Name: napalm-hpe-aruba-procurve Version: 0.2.0 Summary: NAPALM driver for HPE/Aruba ProCurve switches with auto-detecting transport (REST API, SSH, legacy SSH, Telnet) Author: Christian Manivong License: Apache-2.0 Project-URL: Repository, https://github.com/chrismanivong/napalm-hpe-aruba-procurve Classifier: Topic :: Utilities Classifier: License :: OSI Approved :: Apache Software License Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 Classifier: Operating System :: POSIX :: Linux Classifier: Operating System :: MacOS Requires-Python: >=3.8 Description-Content-Type: text/markdown Requires-Dist: napalm>=4.0.0 Requires-Dist: netmiko>=4.0.0 Requires-Dist: paramiko>=5.0.0 Requires-Dist: netaddr Requires-Dist: requests>=2.25.0 Requires-Dist: urllib3 Provides-Extra: dev Requires-Dist: pytest; extra == "dev" Requires-Dist: pytest-cov; extra == "dev" Requires-Dist: black; extra == "dev" Requires-Dist: ruff; extra == "dev" # 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 ```bash pip install napalm napalm-hpe-aruba-procurve ``` Or from source: ```bash git clone https://github.com/chrismanivong/napalm-hpe-aruba-procurve pip install -e napalm-hpe-aruba-procurve/ ``` ## Quick start ```python 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