Welle 3 · Wartungsfenster und Update-Regel je Gerät (So 03:00–04:15, Start: Sicherheitsupdates automatisch)
Der Steward des Homelab-Teils prüft jede Minute, ob das Fenster offen ist, und arbeitet dann einmal je Tag den Plan ab: je Gerät nach seiner Regel — nur melden, Sicherheitsupdates automatisch (Standard, User-Entscheid) oder alles im Fenster —, mit den bekannten Update-Läufen (Rückweg vorher, Prüfung danach, bei Rot zurück). Nach dem Fenster beginnt kein Schritt mehr, Erfolge kommen als eine Meldung am Ende, Fehler sofort; der Proxmox-Host startet nie von selbst neu. Der Ausführer meldet dafür die Namen der Sicherheitspakete und spielt auf Wunsch nur diese ein (Gäste und Host); neuer Baustein „sicherheit“. Dazu „Version überspringen“ je App, die Einstellungen unter Einstellungen → Homelab und „Wartung“ statt „Störung“ im Cockpit, solange das Fenster läuft. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
363bc211e1
commit
9da666d04e
@@ -14,6 +14,9 @@
|
||||
POST /api/homelab/sicherungen/probe Probe-Wiederherstellung jetzt (nur lesend, sonst einmal die Woche)
|
||||
GET /api/homelab/zertifikate https-Zertifikate (NPMplus, Proxmox-Host, PBS) mit Stufe
|
||||
GET /api/homelab/neu „Neu entdeckt“: Geräte und Docker-Stacks, die er noch nicht kennt
|
||||
GET /api/homelab/wartung Wartungsfenster, Regel je Gerät, übersprungene Versionen, letzter Lauf
|
||||
POST /api/homelab/wartung {"fenster"?, "standard"?, "regeln"?} ändern
|
||||
POST /api/homelab/ziele/{id}/ueberspringen {"baustein": "app", "version": …}; DELETE bietet sie wieder an
|
||||
GET /api/homelab/docker Docker-Dienste unter Arcane je Stack: Zustand, Gesundheit, Update
|
||||
POST /api/homelab/neu/{id} {"wahl": freigeben | beobachten | ausschliessen} — übernehmen
|
||||
GET /api/homelab/hinweise Hinweise des Wächters dieser Instanz
|
||||
@@ -183,6 +186,36 @@ def neuerungen(ziel_id: str, baustein: str = "app") -> dict:
|
||||
return neu.fuer(ziel_id, baustein)
|
||||
|
||||
|
||||
@router.get("/wartung")
|
||||
def wartung_lage() -> dict:
|
||||
"""Wartungsfenster und Update-Regel je Gerät (seit 25.09.2026)."""
|
||||
from services.homelab import wartung
|
||||
return wartung.lage()
|
||||
|
||||
|
||||
@router.post("/wartung")
|
||||
def wartung_setzen(daten: dict) -> dict:
|
||||
from services.homelab import wartung
|
||||
return _antwort(wartung.setzen(daten))
|
||||
|
||||
|
||||
class Ueberspringen(BaseModel):
|
||||
baustein: str = "app"
|
||||
version: str
|
||||
|
||||
|
||||
@router.post("/ziele/{ziel_id}/ueberspringen")
|
||||
def version_ueberspringen(ziel_id: str, u: Ueberspringen) -> dict:
|
||||
from services.homelab import wartung
|
||||
return _antwort(wartung.ueberspringen(ziel_id, u.baustein, u.version))
|
||||
|
||||
|
||||
@router.delete("/ziele/{ziel_id}/ueberspringen")
|
||||
def version_wieder_anbieten(ziel_id: str, baustein: str = "app") -> dict:
|
||||
from services.homelab import wartung
|
||||
return _antwort(wartung.ueberspringen(ziel_id, baustein, None))
|
||||
|
||||
|
||||
@router.get("/neu")
|
||||
def neu_entdeckt() -> dict:
|
||||
"""Geräte, die der Orchestrator noch nicht kennt, mit Vorschlägen (seit 25.09.2026)."""
|
||||
|
||||
Reference in New Issue
Block a user