Подробные комментарии ко всем JS-файлам фронтенда
This commit is contained in:
+37
-11
@@ -1,12 +1,24 @@
|
||||
"""
|
||||
app-autotest — точка входа Flask-приложения для автотестов Nubes.
|
||||
|
||||
Регистрирует три blueprint'а:
|
||||
- main_bp → / (главная, токен, инфраструктура)
|
||||
- api_bp → /api/run, /api/status, /api/config [LEGACY]
|
||||
- api_test_bp → /api/test, /api/params, /api/log (основная логика)
|
||||
Это приложение позволяет:
|
||||
1. Тестировать операции с сервисами Nubes (create/modify/delete/...) через UI
|
||||
2. Создавать и запускать сценарии (последовательности операций)
|
||||
3. Просматривать историю запусков и логи
|
||||
|
||||
Деплой: Nubes pythonk8s (gunicorn, несколько воркеров).
|
||||
Blueprint'ы (каждый — отдельный файл в routes/):
|
||||
- main_bp → / (главная: токен, инфраструктура, сервисы)
|
||||
- api_test_bp → /api/test, /api/params, /api/log (ручной режим)
|
||||
- api_scenario_run_bp → /api/scenario/run, /api/scenario/status (запуск сценариев)
|
||||
- api_scenario_defs_bp → /api/scenario/definitions (CRUD сценариев)
|
||||
|
||||
Деплой: Nubes pythonk8s (managed service) с gunicorn:
|
||||
gunicorn app:app --workers 2 --bind 0.0.0.0:8000
|
||||
|
||||
Конфигурация:
|
||||
NUBES_API_ENDPOINT — URL API (по умолчанию test)
|
||||
NUBES_API_TOKEN — сервисный токен (из переменных окружения k8s)
|
||||
VERSION — версия приложения (меняется при КАЖДОМ изменении кода)
|
||||
"""
|
||||
|
||||
import os
|
||||
@@ -18,23 +30,37 @@ from routes.api_test import bp as api_test_bp
|
||||
from routes.api_scenario_run import bp_run as api_scenario_run_bp
|
||||
from routes.api_scenario_defs import bp_defs as api_scenario_defs_bp
|
||||
|
||||
# Версия — меняется при КАЖДОМ изменении кода. Показывается в топбаре UI.
|
||||
# Версия — показывается в топбаре UI. Меняется при КАЖДОМ изменении кода.
|
||||
# Нужна для фильтрации истории (пользователь видит только записи своей версии).
|
||||
VERSION = "1.2.16"
|
||||
|
||||
# Flask-приложение с Jinja2-шаблонами из папки templates/
|
||||
app = Flask(__name__, template_folder="templates", static_folder="static")
|
||||
app.config["NUBES_API_ENDPOINT"] = os.getenv("NUBES_API_ENDPOINT", "https://lk-api-gateway-test.ngcloud.ru/api/v1/svc")
|
||||
|
||||
# Конфигурация из переменных окружения (задаются в Nubes UI при создании сервиса)
|
||||
app.config["NUBES_API_ENDPOINT"] = os.getenv(
|
||||
"NUBES_API_ENDPOINT",
|
||||
"https://lk-api-gateway-test.ngcloud.ru/api/v1/svc"
|
||||
)
|
||||
app.config["NUBES_API_TOKEN"] = os.getenv("NUBES_API_TOKEN", "")
|
||||
app.config["VERSION"] = VERSION
|
||||
app.register_blueprint(main_bp)
|
||||
app.register_blueprint(api_test_bp)
|
||||
app.register_blueprint(api_scenario_run_bp)
|
||||
app.register_blueprint(api_scenario_defs_bp)
|
||||
|
||||
# Регистрируем blueprint'ы — каждый отвечает за свою группу маршрутов
|
||||
app.register_blueprint(main_bp) # /
|
||||
app.register_blueprint(api_test_bp) # /api/test, /api/params, ...
|
||||
app.register_blueprint(api_scenario_run_bp) # /api/scenario/run, ...
|
||||
app.register_blueprint(api_scenario_defs_bp) # /api/scenario/definitions, ...
|
||||
|
||||
|
||||
@app.route("/health")
|
||||
def health():
|
||||
"""Healthcheck — всегда возвращает 200 OK.
|
||||
|
||||
Используется Nubes для проверки живости сервиса.
|
||||
Если не ответит — сервис будет перезапущен."""
|
||||
return "OK"
|
||||
|
||||
|
||||
# Локальный запуск (без gunicorn) — только для разработки
|
||||
if __name__ == "__main__":
|
||||
app.run(debug=True, host="0.0.0.0", port=5000)
|
||||
|
||||
Reference in New Issue
Block a user