homelab: Images ohne Container sind kein Docker-Update; neuer Kernel heißt Neustart
Nach dem ersten echten „Alle aktualisieren“ (25.09., 8 Schritte grün): - 9 veraltete Images, die kein Container benutzt (Basis-Images für Builds/CI), blieben für immer „neu“ – Arcanes Updater tauscht nur Container. Sie zählen jetzt nicht mehr, der Grund nennt sie als Aufräum-Hinweis. - Proxmox legt bei Kernel-Updates kein /var/run/reboot-required an: 7.0.14-19 war installiert, 7.0.14-12 lief, kein Neustart-Knopf. Der Ausführer vergleicht jetzt den neuesten installierten (oder festgepinnten) Kernel mit dem laufenden. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
903fbbfbb9
commit
17d4ee3ea8
@@ -421,3 +421,33 @@ def test_waechter_und_uebersicht_sehen_volle_gastplatten(daten):
|
||||
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
|
||||
|
||||
|
||||
|
||||
def test_images_ohne_container_sind_kein_update(daten, monkeypatch):
|
||||
"""25.09.2026: Nach dem ersten echten Lauf blieben 9 Images „neu“ — Basis-Images, die kein Container benutzt."""
|
||||
monkeypatch.setenv("MC_ARCANE_KEY", "schluessel")
|
||||
ohne = [{"name": n, "aktuell": None, "neu": None, "umgebung": 0, "benutzt": []} for n in ("alpine:latest", "node:22")]
|
||||
monkeypatch.setattr(inventar.arcane, "images_mit_update", lambda url: ohne)
|
||||
docker = {b["id"]: b for b in _ziele(None)["vm-106"]["bausteine"]}["docker"]
|
||||
assert (docker["zustand"], docker["aktion"]) == ("aktuell", None)
|
||||
assert docker["grund"].startswith("2 ältere Images ohne Container (alpine:latest, node:22)")
|
||||
genutzt = {"name": "ghcr.io/tobi/nerdquiz:latest", "aktuell": None, "neu": None, "umgebung": 0, "benutzt": ["quiz"]}
|
||||
monkeypatch.setattr(inventar.arcane, "images_mit_update", lambda url: [*ohne, genutzt])
|
||||
docker = {b["id"]: b for b in _ziele(None)["vm-106"]["bausteine"]}["docker"]
|
||||
assert (docker["zustand"], docker["kurz"]) == ("neu", "1 Images")
|
||||
|
||||
|
||||
def test_neuer_kernel_heisst_neustart(daten):
|
||||
"""25.09.2026: Proxmox legt bei Kernel-Updates kein reboot-required an — der Ausführer vergleicht selbst."""
|
||||
a = _ausfuehrer_modul()
|
||||
vorhanden = ["6.8.12-4-pve", "7.0.14-12-pve", "7.0.14-19-pve"]
|
||||
assert a.neuer_kernel("7.0.14-12-pve", vorhanden) == "7.0.14-19-pve"
|
||||
assert a.neuer_kernel("7.0.14-19-pve", vorhanden) is None
|
||||
assert a.neuer_kernel("7.0.14-12-pve", vorhanden, pin="7.0.14-12-pve") is None # festgepinnt
|
||||
assert a.neuer_kernel(None, vorhanden) is None and a.neuer_kernel("7.0.14-12-pve", []) is None
|
||||
bericht = json.loads(json.dumps(BERICHT))
|
||||
bericht["host"].update(neustart_noetig=True, kernel="7.0.14-12-pve", kernel_neu="7.0.14-19-pve")
|
||||
kanal.bericht_speichern(bericht)
|
||||
host = {b["id"]: b for b in next(z for z in inventar.ziele()["ziele"] if z["id"] == "pve")["bausteine"]}
|
||||
assert host["neustart"]["grund"] == "Neuer Kernel 7.0.14-19-pve ist installiert, es läuft noch 7.0.14-12-pve."
|
||||
assert host["neustart"]["aktion"]["label"] == "Jetzt neu starten"
|
||||
|
||||
Reference in New Issue
Block a user