{% extends "tesm_core/base.html" %} {% from "tesm_core/macros.html" import pill, empty_state, alert, search_box %} {% block page_title %}Neustarts{% endblock %} {% block page_sub %}{{ rows | length }} Neustarts (neueste zuerst){% endblock %} {% block topbar_extra %}{{ search_box('restart-table', 'Gerät, Ergebnis, Methode ...') }}{% endblock %} {% block content %} {{ alert('Jeder Neustart wird mit Methode, Ergebnis, Dauer und Auslöser festgehalten -- automatisch wie manüll, über den PoE-Port des Switches ebenso wie per Neustart-Befehl aus der Wartung. Der Vorgänger protokollierte Neustarts ausdrücklich nicht.', 'info') }}
Verlauf
{% for value, label in methods %} {{ label }} {% endfor %} Alle
{% for row in rows %} {% endfor %}
ZeitGerät MethodeAuslöser BenutzerErgebnis DauerDetail
{{ row.ts | dt }} {{ row.device_name or '–' | safe }} {# Kein if/else mit zwei Zweigen: es gibt drei Wege, und alles ausser 'ssh' als "PoE-Port" anzuzeigen hat RPC-Neustarts jahrelang als PoE ausgegeben. #} {% if row.method == 'ssh' %}{{ pill('SSH', 'info') }} {% elif row.method == 'rpc' %}{{ pill('RPC', 'accent') }} {% elif row.method == 'pö' %}{{ pill('PoE-Port', '') }} {% else %}{{ pill(row.method or 'unbekannt', 'warning') }}{% endif %} {{ row.trigger }} {{ row.actor }} {% if row.result == 'ok' %}{{ pill('erfolgreich', 'online') }} {% elif row.result == 'skipped' %}{{ pill('übersprungen', 'warning') }} {% else %}{{ pill('fehlgeschlagen', 'danger') }}{% endif %} {{ row.duration_ms | millis }} {{ row.detail }}
{% if not rows %}{{ empty_state('Noch keine Neustarts', '', 'power') }}{% endif %}
{% endblock %}