Später · 18 Plattengesundheit: Proxmox-Host, NAS über SNMP, NVMe der KI-Box
- kern/platten.py: SMART aus pvesh, smartctl und SNMP in einer Form; rot bei SMART FAILED, kritischer Warnung, aufgebrauchter Reserve, ≥ 90 % verbraucht; gelb bei ≥ 80 %, Hitze, gewachsenen Fehlerzählern (Ausgangslage je Platte, „Zur Kenntnis genommen“ setzt sie neu) - Ausführer: stündlich disks/list + disks/smart im Bericht (nur lesend) - services/homelab/nas_snmp.py: kleiner SNMPv2c-GetBulk-Leser ohne neue Abhängigkeit, QNAP hdTable/diskTable, Zugang 0600, Einstellungen „Verbindung testen und speichern“ - services/platten.py: NVMe der KI-Box über sudo smartctl (smartmontools am 26.09. nachinstalliert) - Wächter beider Rollen, Plattenfeld in beiden Cockpits, Doku Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
5325544d89
commit
904598031a
@@ -134,6 +134,33 @@ def hinweis_aktion(hinweis_id: str, aktion_id: str) -> dict:
|
||||
return _antwort(waechter.fuehre_aktion_aus(hinweis_id, aktion_id))
|
||||
|
||||
|
||||
@router.get("/platten")
|
||||
def platten() -> dict:
|
||||
"""Plattengesundheit: Proxmox-Host (Ausführer) und NAS (SNMP), bewertet (seit 26.09.2026)."""
|
||||
from services.homelab import platten as homelab_platten
|
||||
return homelab_platten.lage()
|
||||
|
||||
|
||||
@router.post("/einstellungen/nas-snmp")
|
||||
async def nas_snmp_setzen(request: Request) -> dict:
|
||||
"""{"community", "adresse"?}: erst das NAS fragen, dann speichern. Der Body wird selbst gelesen (keine 422 mit
|
||||
dem Zugangsnamen darin), die Abfrage läuft neben dem Ereignis-Takt."""
|
||||
from services.homelab import nas_snmp
|
||||
try:
|
||||
daten = json.loads(await request.body() or b"{}")
|
||||
except ValueError:
|
||||
daten = {}
|
||||
daten = daten if isinstance(daten, dict) else {}
|
||||
return await asyncio.to_thread(nas_snmp.setzen, str(daten.get("community") or ""), str(daten.get("adresse") or ""))
|
||||
|
||||
|
||||
@router.delete("/einstellungen/nas-snmp")
|
||||
def nas_snmp_loeschen() -> dict:
|
||||
from services.homelab import nas_snmp
|
||||
da = nas_snmp.zugang_loeschen()
|
||||
return {"ok": True, "text": "Der SNMP-Zugang des NAS ist gelöscht." if da else "Es war kein SNMP-Zugang hinterlegt."}
|
||||
|
||||
|
||||
@router.get("/netz")
|
||||
def netz() -> dict:
|
||||
"""Die Geräte im Heimnetz aus der Nachbartabelle des Proxmox-Hosts, neue zuerst (seit 26.09.2026)."""
|
||||
|
||||
Reference in New Issue
Block a user