Merge branch 'worktree-agent-a8a38897ceeaf6694' into wartung/oberflaeche-v4
This commit is contained in:
@@ -90,6 +90,73 @@ def laeufe() -> dict:
|
||||
return {"laeufe": updates.laeufe()}
|
||||
|
||||
|
||||
# --- „Alle aktualisieren“, Protokoll, Einstellungen (24.09.2026) ------------------------------------------------
|
||||
# GET /api/homelab/alle/plan was „Alle aktualisieren“ täte, in dieser Reihenfolge
|
||||
# POST /api/homelab/alle „Alle aktualisieren“ starten
|
||||
# GET /api/homelab/sammellauf der laufende oder der letzte Sammellauf
|
||||
# GET /api/homelab/protokoll?grenze=200&berichte=0 was wann geschah, neueste zuerst
|
||||
# GET /api/homelab/einstellungen Arcane (Schlüssel, echt), Wartezeit, Ausführer
|
||||
# POST /api/homelab/einstellungen/arcane-schluessel {"schluessel": …}: erst gegen Arcane prüfen, dann speichern
|
||||
# DELETE /api/homelab/einstellungen/arcane-schluessel
|
||||
# POST /api/homelab/einstellungen/arcane-echt {"an": bool}: echte Docker-Updates statt Probelauf
|
||||
# Was nicht geht, beantworten sie mit {"ok": false, "detail": …} und HTTP 200, wie der Telegram-Test (die Oberfläche
|
||||
# liest ok). Die Dienste laden die Endpunkte selbst, wie hinweise().
|
||||
|
||||
@router.get("/alle/plan")
|
||||
def alle_plan() -> dict:
|
||||
from services.homelab import sammellauf
|
||||
return sammellauf.plan()
|
||||
|
||||
|
||||
@router.post("/alle")
|
||||
def alle_starten() -> dict:
|
||||
from services.homelab import sammellauf
|
||||
return sammellauf.starten()
|
||||
|
||||
|
||||
@router.get("/sammellauf")
|
||||
def sammellauf_stand() -> dict:
|
||||
from services.homelab import sammellauf
|
||||
return {"sammellauf": sammellauf.aktueller()}
|
||||
|
||||
|
||||
@router.get("/protokoll")
|
||||
def protokoll_lesen(grenze: int = 200, berichte: bool = False) -> dict:
|
||||
from services.homelab import protokoll
|
||||
return {"eintraege": protokoll.eintraege(grenze, berichte)}
|
||||
|
||||
|
||||
@router.get("/einstellungen")
|
||||
def einstellungen_stand() -> dict:
|
||||
from services.homelab import einstellungen as homelab_einstellungen
|
||||
return homelab_einstellungen.stand()
|
||||
|
||||
|
||||
@router.post("/einstellungen/arcane-schluessel")
|
||||
async def arcane_schluessel_setzen(request: Request) -> dict:
|
||||
"""Den Body liest der Dienst selbst: Ein Pydantic-Modell würde bei falscher Form mit 422 antworten und die
|
||||
Eingabe, also den Schlüssel, dabei wiederholen."""
|
||||
from services.homelab import einstellungen as homelab_einstellungen
|
||||
wert = homelab_einstellungen.schluessel_aus_body(await request.body())
|
||||
return await asyncio.to_thread(homelab_einstellungen.arcane_schluessel_setzen, wert)
|
||||
|
||||
|
||||
@router.delete("/einstellungen/arcane-schluessel")
|
||||
def arcane_schluessel_loeschen() -> dict:
|
||||
from services.homelab import einstellungen as homelab_einstellungen
|
||||
return homelab_einstellungen.arcane_schluessel_loeschen()
|
||||
|
||||
|
||||
class ArcaneEcht(BaseModel):
|
||||
an: bool
|
||||
|
||||
|
||||
@router.post("/einstellungen/arcane-echt")
|
||||
def arcane_echt(schalter: ArcaneEcht) -> dict:
|
||||
from services.homelab import einstellungen as homelab_einstellungen
|
||||
return homelab_einstellungen.arcane_echt_setzen(schalter.an)
|
||||
|
||||
|
||||
@router.get("/ausfuehrer")
|
||||
def ausfuehrer() -> dict:
|
||||
zuletzt = kanal.zuletzt()
|
||||
|
||||
Reference in New Issue
Block a user