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>
21 lines
780 B
Python
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)}"
|