homelab: „Rückweg testen“ — Snapshot anlegen, absichtlich rot werten, zurück, nachprüfen
Neuer Baustein „probe“ (POST /api/homelab/ziele/{id}/rueckweg-probe): legt den
Rückweg an wie vor einem Update, wertet die Prüfung absichtlich als rot, geht
zurück und prüft danach, ob das Gerät läuft und antwortet. Kein Update dabei;
Meldung grün bzw. dringend rot. Die Probe steht im Protokoll, nicht im
Update-Verlauf und nicht unter „Zuletzt eingespielt“. Der Snapshot bleibt
liegen (wie nach einem echten Rückweg).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
b816fe6d32
commit
77ecb35a6d
@@ -222,6 +222,30 @@ def test_update_ohne_neue_version_ist_rot(ausfuehrer):
|
||||
assert lauf["ergebnis"] == "zurueckgerollt" and "unverändert" in lauf["text"]
|
||||
|
||||
|
||||
def test_rueckweg_probe_gruen(ausfuehrer):
|
||||
starten, protokoll, meldungen, verlauf = ausfuehrer
|
||||
starten("1.27.2")
|
||||
lauf = _auf_ende(updates.starten("ct-104", "probe")["lauf"])
|
||||
# Kein Update: Snapshot, zurück auf ihn, frischer Bericht — und die Probe steht nicht im Update-Verlauf.
|
||||
assert protokoll == ["snapshot", "zurueck", "bericht"]
|
||||
assert lauf["ergebnis"] == "probe-gruen" and "zurück auf den Snapshot mc2-20260924-190000" in lauf["text"]
|
||||
assert meldungen == [(lauf["text"], False)] and verlauf == []
|
||||
|
||||
|
||||
def test_rueckweg_probe_rot_meldet_dringend(ausfuehrer, monkeypatch):
|
||||
starten, _, meldungen, _ = ausfuehrer
|
||||
monkeypatch.setattr(inventar, "erreichbar", lambda url: False)
|
||||
starten("1.27.2")
|
||||
lauf = _auf_ende(updates.starten("ct-104", "probe")["lauf"])
|
||||
assert lauf["ergebnis"] == "fehler" and "Rückweg-Probe rot" in lauf["text"] and "antwortet nicht" in lauf["text"]
|
||||
assert meldungen[0][1] is True
|
||||
|
||||
|
||||
def test_rueckweg_probe_nur_mit_rueckweg(ausfuehrer):
|
||||
assert updates.starten("pve", "probe")["detail"].startswith("Für den Proxmox-Host")
|
||||
assert updates.starten("vm-106", "probe")["detail"].startswith("Dieses Gerät ist nicht freigegeben")
|
||||
|
||||
|
||||
def test_nicht_freigegeben_und_unbekannt(ausfuehrer):
|
||||
assert updates.starten("vm-106", "app")["detail"].startswith("Dieses Gerät ist nicht freigegeben")
|
||||
assert updates.starten("ct-999", "app")["ok"] is False
|
||||
|
||||
Reference in New Issue
Block a user