From e72676eac53651db5420d9acdf519cdd70f17201 Mon Sep 17 00:00:00 2001 From: Matthew Grotke Date: Sun, 24 May 2026 00:59:15 -0400 Subject: [PATCH] Development --- docker/routlin-dash/app/view_page.py | 8 ++++++++ routlin/status.py | 14 +++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/docker/routlin-dash/app/view_page.py b/docker/routlin-dash/app/view_page.py index 4647b4c..3dc16ac 100644 --- a/docker/routlin-dash/app/view_page.py +++ b/docker/routlin-dash/app/view_page.py @@ -1493,6 +1493,14 @@ def render_layout(view_id, content_html, tokens): if tip: text += f' {e(tip)}' grouped.setdefault(sev, []).append(text) + for item in st.get('services', []): + if item.get('status') == 'problem': + parts = [] + if not item.get('active_ok'): + parts.append(f"active: {item.get('active')} (expected {item.get('expected_active')})") + if not item.get('enabled_ok'): + parts.append(f"enabled: {item.get('enabled')} (expected {item.get('expected_enabled')})") + grouped['error'].append(e(f"{item.get('name')}: {', '.join(parts)}")) for sev, items in grouped.items(): if not items: continue diff --git a/routlin/status.py b/routlin/status.py index 3dffb50..98d8244 100644 --- a/routlin/status.py +++ b/routlin/status.py @@ -739,7 +739,19 @@ def print_table(status): if trigger: print(f"\n Next blocklist update: {trigger}") - problems = [ + svc_problems = [] + for svc in status.get("services", []): + if svc.get("status") == "problem": + parts = [] + if not svc.get("active_ok"): + parts.append(f"active: {svc.get('active')} (expected {svc.get('expected_active')})") + if not svc.get("enabled_ok"): + parts.append(f"enabled: {svc.get('enabled')} (expected {svc.get('expected_enabled')})") + svc_problems.append({ + "severity": "error", + "detail": f"{svc['name']}: {', '.join(parts)}", + }) + problems = svc_problems + [ item for section in ("configurations", "logs") for item in status.get(section, [])