Commit Graph
10 Commits
Author SHA1 Message Date
Christian Manivong 46e419d232 fix(get_config): use paged send for show running-config/startup-config
"v7" CLI firmware has no "terminal length 0" equivalent (see
_send_paged_command's docstring), so a config long enough to paginate
emits "--More--" prompts that _send_command's expect_string=base_prompt
match never sees. On real hardware (GS110TPv3, 7 VLANs, 10 interfaces)
this hung every scheduled config-backup poll for 30s and failed with
"Pattern not detected: '<prompt>[>#]' in output.", so the config was
never actually backed up. get_mac_address_table()/get_vlans() already
use _send_paged_command() for the same reason on other long outputs;
get_config() now does too.

Also fixed tests/unit/test_driver.py's import/patch target
(napalm_netgear_plus -> napalm_netgear, the actual package name) —
the whole file has been uncollectable since its initial commit, no CI
was wired up here to catch it. And removed a dead unreachable
`return {"success": ..., "output": ...}` line after get_health_metrics's
real return (undefined names, ruff F821), unrelated leftover found
while fixing the above.
2026-07-10 09:54:29 +02:00
Christian ManivongandClaude Sonnet 4.6 17a0b36dce feat: OUI_PREFIXES für MAC/ARP-Fingerprinting
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 15:41:45 +02:00
Christian ManivongandClaude Sonnet 4.6 36a239692b feat: Fingerprint-Attribute für Discovery-Scoring
Ergänzt DRIVER_NAME, HTTP_FINGERPRINT, SNMP_FINGERPRINT, SSH_FINGERPRINT,
PORT_SPECS und SNMP_OBJECT_ID_PREFIX gemäß docs/DISCOVERY_FINGERPRINTING.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 14:47:08 +02:00
Christian Manivong aef5eb1487 feat: include remote chassis MAC in LLDP neighbor entries
Enables MAC-based topology matching against devices that report their
own MAC but not a usable system name.
2026-06-12 21:08:26 +02:00
Christian ManivongandClaude Sonnet 4.6 96ae50551b fix: case-insensitive config prompt match and fast-fail fix_snmp on v7 CLI
_conf_prompt() only matched the legacy "(Config)" prompt, so on v7
"Cisco-like" CLI (lowercase "(config)") _enter_config_mode() blocked for
the full read_timeout - this was the cause of fix_snmp hanging.

_action_fix_snmp() also never returned a result on the legacy path, and
v7 firmware has no snmp-server/show snmp commands at all. It now detects
v7 CLI up front and returns a clear failure message instead of hanging.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-12 19:16:47 +02:00
Christian ManivongandClaude Sonnet 4.6 0ba59750d2 feat: add PoE config and LAG/trunk membership support
get_poe_status()/set_poe() implement PoE port config via the ProSafe CLI's
'power inline' interface sub-commands. get_interfaces() now enriches chN
LAG entries and their member ports with trunk_group/lag_members/lag_mode
by parsing 'show port-channel all'. New set_lag_members() adds/removes
members via addport/deleteport.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-12 14:47:27 +02:00
Christian ManivongandClaude Sonnet 4.6 5e2c6249fb feat: add get_health_metrics() via Netgear proprietary OIDs
SNMP health metrics using Netgear enterprise MIB (OID 4526) for
memory free/total and CPU utilization string parsing, plus IF-MIB counters.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 00:43:43 +02:00
Christian ManivongandClaude Sonnet 4.6 54fe6ddea1 fix: correct module import path and add SNMP_CAPABLE=False for Plus switches
- __init__.py imported from non-existent napalm_netgear_plus module; fixed to napalm_netgear
- NetgearPlusDriver.SNMP_CAPABLE = False signals HTTP-only device — suppresses
  misleading SNMP-not-configured warnings during device polls

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 13:28:04 +02:00
Christian ManivongandClaude Sonnet 4.6 64eb2551a4 feat: SNMP support — get_snmp_config(), fix_snmp for Smart switches
NetgearPlus: get_snmp_config() returns None (SNMP not accessible via HTTP API).
NetgearSmart: get_snmp_config() reads current community, fix_snmp configures
'snmp-server community public ro' via CLI.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 13:10:03 +02:00
Christian Manivong a8ce5a8033 initial commit 2026-05-29 09:13:59 +02:00