Wizard: idempotenter WAN-Apply fuer DHCP-Client/PPPoE (Bug 21)

Wizard erneut auf einem Interface durchlaufen, das schon einen
DHCP-Client hat (hier: aus einer zurueckgespielten Sicherung), scheiterte
live mit "failure: dhcp-client on that interface already exists" -
WanConfig.buildCommands() erzeugt fuer DHCP-Client/PPPoE immer .add, ohne
vorher zu pruefen, ob auf dem Interface schon einer existiert.

Fix: SetupViewModel.applyIdempotently faengt einen .add-Fehlschlag auf
/ip dhcp-client bzw. /interface pppoe-client ab und wiederholt ihn als
.set (nach "interface" gematcht) - bewusst nur fuer diese zwei Menues
mit "maximal ein Eintrag pro Interface"-Semantik, nicht generell fuer
jedes .add (z.B. /ip address erlaubt legitim mehrere Adressen pro
Interface).

Gefunden beim Versuch, M8 (Netzwerk-Isolation) live durchzutesten -
dieser Test selbst ist noch nicht abgeschlossen, naechste Session dort
weitermachen (siehe HANDOFF.md Naechste Schritte Punkt 1).

HANDOFF.md/CHATLOG.md aktualisiert: Bug 21, Sessionende-Stand.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CTgRxJTzaQwaRkngbaE1GJ
This commit is contained in:
Kay
2026-09-14 20:43:56 +02:00
co-authored by Claude Sonnet 5
parent e72da84843
commit 0e8d910352
3 changed files with 87 additions and 6 deletions
+20
View File
@@ -676,3 +676,23 @@ Test, WLAN/Bonding/PPPoE-Live-Tests).
- "ja, committen und beides aktualisieren" → dieser Eintrag, HANDOFF.md
(M14, Bug 20, Design-Durchgang, Dark-Mode-Bestätigung) aktualisiert,
Commit erstellt.
## Session: M8-Hardware-Test begonnen (nicht abgeschlossen)
- "was steht als nächstes auf dem Plan?" → HANDOFF-Liste zusammengefasst.
"fangen wir bei 4 an" (M8 Netzwerk-Isolation) → per `AskUserQuestion`
geklärt: voller Wizard-Durchlauf statt nur gezieltem Firewall-Test,
kombiniert damit Punkt 1 (kompletter Wizard-Durchlauf) mit.
- Unterwegs zwei praktische RouterOS-Fragen beantwortet: ether5 aus der
Bridge entfernen (`/interface bridge port remove [find
interface=ether5]` bzw. Experte-Tab), dann "Unerwartete Antwort vom
Router: failure: dhcp-client on that interface already exists" beim
WAN-Schritt — Ursache: Wizard nutzt immer `.add`, aber auf dem
Interface existierte aus der zurückgespielten Sicherung schon ein
DHCP-Client. "fixe es gleich" → Bug 21, `SetupViewModel.
applyIdempotently` (Fallback auf `.set` bei `.add`-Fehlschlag auf
DHCP-Client/PPPoE), deployt.
- "ok, alles speichern, genug für heute" → dieser Eintrag, HANDOFF.md
(Bug 21, Nächste-Schritte Punkt 1 als "in Arbeit" markiert — der
eigentliche M8-Isolationstest ist noch nicht zu Ende geführt, nächste
Session dort fortsetzen) aktualisiert, Commit erstellt. Sitzung beendet.