Commit Graph
6 Commits
Author SHA1 Message Date
Christian Manivong e352801a1a chore: adopt the NAPALM driver standard
driver / standard (pull_request) Successful in 17s
driver / lint (pull_request) Successful in 13s
driver / types (pull_request) Successful in 55s
driver / test (3.10) (pull_request) Successful in 5m52s
driver / test (3.11) (pull_request) Successful in 5m58s
driver / test (3.12) (pull_request) Successful in 5m49s
driver / test (3.13) (pull_request) Successful in 5m32s
driver / lowest (pull_request) Successful in 5m19s
driver / security (pull_request) Successful in 47s
driver / build (pull_request) Successful in 22s
CI / driver (pull_request) Successful in 31m5s
driver / publish (pull_request) Skipped
- CI moves to .gitea/workflows/ci.yml and calls the shared driver workflow
  of NAPALM/driver-standard; .github/ is gone.
- napalm-device-types >=4.21.1 from PyPI (the floor was 0.4.0).
- LICENSE, CHANGELOG, py.typed, SPDX license string, setuptools>=77,
  version floors on the dev extra (black is gone), links to git.netork.io;
  the README names Python 3.10 and the Gitea CI.
- mypy strict for the package; napalm_fritzbox.fritzbox is exempt for now
  (6 errors), recorded in the quality baseline with four long getters.
- Coverage floor 81 % (measured 81.36 %).
2026-10-23 09:00:49 +02:00
Christian Manivong b23967417c 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:47:07 +02:00
Christian Manivong ec3e1e9028 feat: report facts, not warnings (0.2.0)
CI / test (3.10) (push) Successful in 5m27s
CI / test (3.11) (push) Successful in 5m24s
CI / test (3.12) (push) Successful in 5m23s
CI / test (3.10) (pull_request) Successful in 5m26s
CI / test (3.11) (pull_request) Successful in 5m18s
CI / test (3.12) (pull_request) Successful in 5m21s
Drop get_device_warnings. The DSL noise margin and the firmware on offer
are already facts in get_system_config (dsl_downstream_noise_margin,
firmware_update_available, firmware_version); netOrk derives
dsl_snr_low and firmware_update_available from them (netOrk #1111).
2026-10-17 09:32:57 +02:00
Christian Manivong 13e0073659 fix: stop deriving NAT translations from IPv6 pinholes
CI / test (3.10) (push) Failing after 7s
CI / test (3.11) (push) Failing after 7s
CI / test (3.9) (push) Failing after 13s
CI / test (3.12) (push) Failing after 5m28s
Closes netork#116.

`get_port_forwards` reports IPv4 mappings and IPv6 pinholes together, which is
right — both are inbound rules someone configured. `get_nat_translations` then
iterated all of them, and that is not: a pinhole is a firewall hole, and IPv6
does not do NAT at all.

The entries it produced were nonsense in two ways. They paired an IPv6 host with
the IPv4 WAN address, and `inside_local` came out as "2001:db8::10:22", where
the last colon is a port separator and everything before it is an address that
also contains colons.

The two failing tests were pulling in opposite directions.
`TestGetNatTranslations` was right and the implementation had drifted past it
when pinhole support landed. `TestGetPortForwards::test_returns_all_rules` was
the opposite: it still expected one rule from before pinholes existed, which put
it in direct contradiction with TestIPv6Pinholes further down the same file.
2026-08-21 13:17:37 +07:00
Christian ManivongandClaude Sonnet 4.6 3b3469daa9 feat: WAN-Status, DSL-Stats, Portfreigaben, Firmware-Warnings, PPPoE-Interface
CI / test (3.10) (push) Failing after 20s
CI / test (3.11) (push) Failing after 13s
CI / test (3.12) (push) Failing after 7s
CI / test (3.9) (push) Failing after 13s
- get_system_config(): DSL-Leitungsqualität, Firmware-Status, DNS, NTP
- get_device_warnings(): dsl_snr_low + firmware_update_available
- get_port_forwards(): IPv6-Pinholes via WANIPv6Firewall1 (TCP6/UDP6)
- get_wan_status(): robuste Service-Iteration, kein Crash bei "Auto"-Bitraten
- get_interfaces(): pppoe0-Interface, Service-Guards für LAN/WAN, "connected"-Status
- _to_float(): Helper für sichere TR-064 Feldkonvertierung
- get_device_warnings() implementiert (war als Stub vorhanden)
- Tests für alle neuen Methoden, PPPoE-Fixture

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 22:21:06 +02:00
Christian Manivong 0ba884c808 init 2026-06-13 03:18:28 +02:00