diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..57db88f --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +# Python 3.12 +Flask>=3.0 +gunicorn>=21.2 +PyYAML>=6.0 diff --git a/site/app.py b/site/app.py new file mode 100644 index 0000000..c5815e9 --- /dev/null +++ b/site/app.py @@ -0,0 +1,66 @@ +""" +polygon v0.1.0 — Mock Nubes API. +Эмулятор REST API облачной платформы Nubes для интеграционных тестов. + +Эндпоинты с префиксом /api/v1/svc притворяются реальным Nubes API. +Состояние инстансов/операций — в памяти (MockState). + +Деплой: Nubes pythonk8s (managed service) с gunicorn: + gunicorn app:app --workers 2 --bind 0.0.0.0:8000 +""" + +import os +from flask import Flask, jsonify, request + +# Версия полигона — независима от app-autotest +VERSION = "0.1.0" + +app = Flask(__name__, template_folder="templates", static_folder="static") + + +@app.route("/health") +def health(): + """Healthcheck для Nubes — всегда возвращает 200 OK.""" + return "OK" + + +@app.route("/") +def index(): + """Корневой эндпоинт — информация о сервисе (HTML).""" + return f""" + +
● running
+Mock Nubes API — эмулятор REST API облачной платформы.
+Эндпоинты: /api/v1/svc/*
Сброс: POST /api/v1/svc/_mock/reset