homelab: Wächter und Geräteliste sehen volle Gastplatten (AdGuard stand bei 100 %)

Der Ausfuehrer schickt die Belegung der rootfs laufender Container mit; ab 85 % gelb, ab 95 % rot, in der
Geraeteliste als eigene Spalte und auf der Lampe des Geraets. Anlass: AdGuard (2 GB) war voll, das
Abfrageprotokoll schrieb nicht mehr und die Paketsuche scheiterte, ohne dass es eine Anzeige sagte.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-09-24 21:00:44 +02:00
co-authored by Claude Opus 5.5
parent eed36e9764
commit c08a144006
30 changed files with 146 additions and 32 deletions
+22
View File
@@ -361,3 +361,25 @@ def test_ausfuehrer_erkennt_beide_formate_von_update():
assert a.app_kennung_aus(alt) == "adguard"
assert a.app_kennung_aus(neu) == "gitea"
assert a.app_kennung_aus("") is None
def test_waechter_und_uebersicht_sehen_volle_gastplatten(daten):
"""24.09.2026: AdGuard stand bei 100 % seiner 2 GB — jetzt sagen es Wächter und Geräteliste."""
from services import waechter
bericht = json.loads(json.dumps(BERICHT))
for g in bericht["gaeste"]:
if g["vmid"] == 100:
g["platte"] = {"belegt": 2_000_000_000, "gesamt": 2_040_000_000}
if g["vmid"] == 104:
g["platte"] = {"belegt": 1_800_000_000, "gesamt": 2_000_000_000}
if g["vmid"] == 101:
g["platte"] = {"belegt": 500_000_000, "gesamt": 2_000_000_000}
kanal.bericht_speichern(bericht)
befunde = {b.id: b for b in waechter.pruefe_gast_platten()}
assert set(befunde) == {"gast-platte:100", "gast-platte:104"}
assert (befunde["gast-platte:100"].stufe, befunde["gast-platte:104"].stufe) == ("rot", "gelb")
assert befunde["gast-platte:100"].titel == "Platte von AdGuard Home zu 98 % voll"
assert "2,0 von 2,0 GB" in befunde["gast-platte:100"].text
z = {z["id"]: z for z in inventar.ziele()["ziele"]}
assert z["ct-100"]["platte"] == {"belegt": 2_000_000_000, "gesamt": 2_040_000_000} and z["pve"]["platte"] is None
+1 -1
View File
@@ -220,7 +220,7 @@ from services import waechter
print(json.dumps({"pruefungen": [p.__name__ for p in waechter.PRUEFUNGEN], "daten": str(waechter.DATEN_DIR)}))
""")
assert ergebnis["pruefungen"] == ["pruefe_platte", "pruefe_partner", "pruefe_ausfuehrer", "pruefe_gaeste",
"pruefe_paketlisten"]
"pruefe_gast_platten", "pruefe_paketlisten"]
def test_homelab_rolle_hat_die_homelab_schnittstellen(tmp_path):