112 lines
2.8 KiB
Markdown
112 lines
2.8 KiB
Markdown
# 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
|