Commit Graph
10 Commits
Author SHA1 Message Date
Christian Manivong 672bc04261 fix: what bandit and the remaining lint rules found
- Netgear Plus: a failed logout on close() now logs at debug level (B110),
  so a swallowed failure leaves a trace; the module gets its logger.
- nosec for the firmware CDN probe (B310): the URL is built on the fixed
  https base _FW_CDN_BASE, model and version only fill its path, so no
  file:// or custom scheme can reach urlopen.
- nosec for the empty password in get_users (B105): it is NAPALM's field,
  the CLI never shows a password; a false positive.
- The v7 LLDP table in a docstring loses one leading space per line to fit
  line length 100.
- tests: a second TestGetLldpNeighbors class shadowed the first, whose two
  tests never ran; the v7 one is now TestGetLldpNeighborsV7 and both run
  (and pass). raise ... from exc in the netmiko stand-in.
2026-10-23 08:34:17 +02:00
Christian Manivong fa10d6617b style: ruff format and the lint rules of the driver standard
Mechanical: ruff format, and ruff check --fix with the rule set every NAPALM
driver uses (E, F, I, UP, B at line length 100, Python 3.10). What ruff
cannot fix comes in the next commit.
2026-10-23 08:32:43 +02:00
Christian Manivong 4ccb2b5879 feat: report the firmware Netgear offers, not a warning (0.4.0)
CI / test (3.10) (push) Successful in 25s
CI / test (3.11) (push) Successful in 23s
CI / test (3.12) (push) Successful in 26s
CI / test (3.10) (pull_request) Successful in 24s
CI / test (3.11) (pull_request) Successful in 23s
CI / test (3.12) (pull_request) Successful in 25s
The Plus driver looked the newest firmware up in Netgear's download
catalogue and named firmware_update_available itself. It now reports
get_firmware_offer() (napalm-device-types 4.16 FirmwareOfferMixin): what
runs, the newest offered, whether that is newer by Netgear's versioning,
and the download link; netOrk names the warning (netOrk #1111). The Smart
driver's empty get_device_warnings goes too. Requires
napalm-device-types 4.16.0.
2026-10-17 13:04:36 +02:00
Christian Manivong 7103cefc41 refactor!: rename get_dot1x_config to get_dot1x_ports
SwitchDriver and AccessPointDriver both declared get_dot1x_config, but they
meant different things and returned different shapes — Dot1XPortDict per port on
a switch, Dot1XConfigDict per SSID on an access point. A device that is both
could not satisfy both contracts.

napalm-device-types v1.0 names them apart. This is the switch side.

BREAKING CHANGE: get_dot1x_config is now get_dot1x_ports on NetgearPlusDriver.
2026-08-21 12:50:10 +07:00
Christian Manivong 20460e7a5a refactor(warnings): report raw signal only, no severity/presentation
get_device_warnings() now returns only {code, meta} — severity, title,
message, and action are resolved centrally by netork's
WARNING_CATALOG (netork/core/device_warnings.py), not by the driver.
Keeps this driver independent of netork and avoids per-vendor drift in
how the same warning code is presented.
2026-07-20 09:58:21 +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 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