Files
checkbot/app/selftest/notify.py
T
patrickandClaude Sonnet 5.5 453c077386 feat: Phase 6d API-Selbsttest gegen Checkmk
Lesender Selbsttest (Version, Services, Hosts, Downtimes) beim Start und
täglich 04:00, Seite /selftest, Teilcheck checkmk_api in /health, Chat-Meldung
bei Wechsel. Toleranter Antwort-Parser (value/members, state_type int/String),
Fallbacks für Host-Abfrage und Downtime-Liste, Fehlerhinweise je HTTP-Status.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-06 12:55:57 +01:00

21 lines
780 B
Python

from .constants import STATUS_OK
from .model import SelftestRun
def _failing_text(run: SelftestRun) -> str:
return ", ".join(f"{c.name}: {c.text}" for c in run.checks if c.status != STATUS_OK)
def message_for(previous: SelftestRun | None, current: SelftestRun) -> str | None:
if previous is None:
return None
if current.version_changed:
return (f"Checkmk-Version von {previous.version or '?'} auf {current.version or '?'}, "
f"Selbsttest: {current.overall_status}")
prev_status, cur_status = previous.overall_status, current.overall_status
if prev_status == cur_status:
return None
if cur_status == STATUS_OK:
return "Selbsttest wieder ok"
return f"Selbsttest {cur_status}: {_failing_text(current)}"