Neu: Netzwerkeinstellungen des Hosts unter Systemeinstellungen (IP/DNS/DHCP)
Bisher enthielt "Systemeinstellungen" nur das Pruefintervall. Jetzt zusaetzlich Verwaltung der Netzwerkkonfiguration DIESES Hosts (getrennt vom Kea-DHCP-*Server* fuer Clients): - Backend-Erkennung (NetworkManager vs. dhcpcd via systemctl is-active). Kein erkanntes Backend -> Seite bleibt rein lesend statt zu raten. - Status-Anzeige: Interface, IP/Prefix, Gateway, DNS, Modus (DHCP/Statisch). - Aenderung: Interface, Modus, bei Statisch IP/Prefix/Gateway, DNS unabhaengig von Modus setzbar (IP per DHCP + feste DNS moeglich). - Sicherheitsnetz analog "netplan try": Backup vor jeder Aenderung, automatisches Rollback nach 45s ohne explizite Bestaetigung (nur moeglich, wenn die Seite ueber die neue Config noch erreichbar ist) -- verhindert Aussperren durch einen Tippfehler bei IP/Gateway. - Bugfix waehrend der Implementierung gefunden: der Auto-Revert-Timer laeuft in einem Hintergrund-Thread ohne Request-Kontext: log_action() griff auf current_user zu und warf dort einen AttributeError (die Config wurde trotzdem korrekt zurueckgerollt, nur der Audit-Log-Eintrag fehlte und ein Fehler landete im Server-Log). Fix: log_action_system() ohne current_user-Abhaengigkeit fuer Code ausserhalb des Request- Kontexts. - Getestet: Backend-Erkennung + rein lesender Fallback live (WSL hat weder NetworkManager noch dhcpcd aktiv, korrekt erkannt), Rechte-Gating, Anwenden-/Rollback-Logik fuer beide Backends per gemocktem subprocess.run verifiziert (inkl. echtem dhcpcd.conf-Rewrite und vollständigem Anwenden-dann-Auto-Rollback-Durchlauf mit Audit-Log- Eintrag). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -270,6 +270,41 @@ Installation, generierte Konfiguration besteht `kea-dhcp4 -t`, Dienststart
|
||||
sowie Client-spezifischer Override erscheinen korrekt getrennt in der
|
||||
Konfiguration.
|
||||
|
||||
## Netzwerkeinstellungen des Hosts (Systemeinstellungen)
|
||||
|
||||
Eigene, klar getrennte Funktion von obigem DHCP-*Server*: hier geht es um
|
||||
die Netzwerkkonfiguration des Hosts, auf dem der PoE Manager selbst läuft
|
||||
(IP-Adresse, DNS-Server, DHCP-Client vs. statisch) — nicht um Adressen, die
|
||||
er an andere Geräte vergibt.
|
||||
|
||||
- **Backend-Erkennung**: prüft, ob NetworkManager oder dhcpcd aktiv ist
|
||||
(`systemctl is-active`). Ist keins von beiden aktiv, bleibt die Seite
|
||||
bewusst **rein lesend** (Status wird trotzdem angezeigt) — ohne
|
||||
zuverlässige Erkennung des Backends keine Änderung, um nicht ins Blaue zu
|
||||
raten.
|
||||
- **Anzeige**: aktuelles Interface, IP/Prefix, Gateway, DNS-Server sowie
|
||||
Modus (DHCP/Statisch) — Modus wird backend-spezifisch ermittelt
|
||||
(`nmcli ipv4.method` bzw. ein `static ip_address=`-Eintrag im
|
||||
betreffenden `interface`-Block von `/etc/dhcpcd.conf`).
|
||||
- **Änderung**: Interface, Modus (DHCP/Statisch), bei Statisch zusätzlich
|
||||
IP/Prefix/Gateway, sowie unabhängig davon eigene DNS-Server (funktioniert
|
||||
in beiden Modi — z.B. IP per DHCP, aber feste DNS-Server).
|
||||
- **Sicherheitsnetz** (wie `netplan try`): vor jeder Änderung wird die
|
||||
vorherige Konfiguration gesichert. Nach dem Anwenden läuft ein
|
||||
Hintergrund-Timer (Standard 45s) — wird die Änderung nicht **explizit
|
||||
bestätigt** (nur möglich, wenn die Seite über die neue Konfiguration noch
|
||||
erreichbar ist), rollt die App automatisch auf die gesicherte
|
||||
Konfiguration zurück. Verhindert, dass ein Tippfehler bei IP/Gateway den
|
||||
Host von der Web-UI/SSH abschneidet.
|
||||
- Da diese Session ausschließlich in WSL (eigene virtuelle Netzwerkschicht,
|
||||
weder NetworkManager noch dhcpcd) läuft, konnte der Anwenden-Pfad nicht
|
||||
gegen eine echte Instanz verifiziert werden — Erkennung/Statusanzeige
|
||||
sind live getestet (korrekte "kein Backend erkannt"-Erkennung + rein
|
||||
lesender Fallback), Anwenden/Rollback-Logik gegen beide Backends per
|
||||
gemockten `subprocess.run`/Dateizugriffen inkl. eines echten
|
||||
`dhcpcd.conf`-Rewrites und eines vollständigen Anwenden-dann-Auto-
|
||||
Rollback-Durchlaufs verifiziert.
|
||||
|
||||
## Änderungslog
|
||||
|
||||
Jede Anlage, Bearbeitung, Löschung sowie jedes Aktivieren/Deaktivieren von
|
||||
|
||||
Reference in New Issue
Block a user