Files
onGuard24/onguard24/modules/statusboard.py
Alexandr 89b5983526 v1.5.0: IRM — инциденты, задачи, эскалации
- docs/IRM.md; Alembic 002: incidents, tasks, escalation_policies
- Модули incidents/tasks/escalations: API, UI, register_events(bus, pool)
- Авто-инцидент из alert.received; тесты test_irm_modules.py

Made-with: Cursor
2026-04-03 09:03:16 +03:00

47 lines
1.3 KiB
Python

from fastapi import APIRouter, Request
from fastapi.responses import HTMLResponse
from onguard24.domain.events import EventBus
from onguard24.modules.ui_support import wrap_module_html_page
router = APIRouter(tags=["module-statusboard"])
ui_router = APIRouter(tags=["web-statusboard"], include_in_schema=False)
def register_events(_bus: EventBus, _pool=None) -> None:
pass
async def render_home_fragment(request: Request) -> str:
del request
return (
'<div class="module-fragment">'
"<p>Сводка по сервисам (светофор) — по данным алертов.</p>"
"</div>"
)
@router.get("/")
async def statusboard_root():
return {
"module": "statusboard",
"status": "stub",
"note": "светофор по сервисам — агрегация по алертам",
"demo": [],
}
@ui_router.get("/", response_class=HTMLResponse)
async def statusboard_ui_home(request: Request):
del request
inner = """<h1>Светофор</h1>
<p>Агрегация статусов сервисов по алертам.</p>"""
return HTMLResponse(
wrap_module_html_page(
document_title="Светофор — onGuard24",
current_slug="statusboard",
main_inner_html=inner,
)
)