refactor: decouple — blueprint'ы + CSS/HTML разделение (по шаблону app-autotest)
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
"""
|
||||
routes/root.py — корневые эндпоинты (/health, /).
|
||||
|
||||
Blueprint "root" регистрируется в app.py БЕЗ url_prefix.
|
||||
Отвечает за healthcheck (для Nubes) и HTML-страницу с информацией о сервисе.
|
||||
"""
|
||||
|
||||
from flask import Blueprint, render_template
|
||||
|
||||
import mock_state
|
||||
from config.loader import SERVICES, DELAY
|
||||
from utils.now import now as _now
|
||||
|
||||
# Версия — показывается на HTML-странице и в healthcheck (опционально)
|
||||
VERSION = "0.2.1"
|
||||
|
||||
# Blueprint без префикса — роуты /health и / будут на корне домена
|
||||
bp = Blueprint("root", __name__)
|
||||
|
||||
|
||||
@bp.route("/health")
|
||||
def health():
|
||||
"""Healthcheck для Nubes.
|
||||
|
||||
Платформа периодически дёргает этот эндпоинт. Если вернёт не 200 —
|
||||
контейнер будет перезапущен. Возвращаем просто "OK", без JSON.
|
||||
"""
|
||||
return "OK"
|
||||
|
||||
|
||||
@bp.route("/")
|
||||
def index():
|
||||
"""Корневая HTML-страница с информацией о сервисе.
|
||||
|
||||
Показывает: версию, количество загруженных сервисов, количество инстансов,
|
||||
текущую задержку операций. Использует Jinja2-шаблон templates/index.html
|
||||
и внешний CSS из static/style.css.
|
||||
"""
|
||||
svc_count = len(SERVICES)
|
||||
inst_count = len(mock_state.state.instances)
|
||||
return render_template(
|
||||
"index.html",
|
||||
version=VERSION,
|
||||
svc_count=svc_count,
|
||||
inst_count=inst_count,
|
||||
delay=DELAY,
|
||||
)
|
||||
Reference in New Issue
Block a user