""" 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""" polygon v{VERSION}

polygon v{VERSION}

● running

Mock Nubes API — эмулятор REST API облачной платформы.

Эндпоинты: /api/v1/svc/*

Сброс: POST /api/v1/svc/_mock/reset

""" # --------------------------------------------------------------------------- # Nubes API mock — префикс /api/v1/svc # --------------------------------------------------------------------------- @app.route("/api/v1/svc/instances", methods=["GET"]) def list_instances(): """GET /instances — пока пустой список.""" page_size = request.args.get("pageSize", 200, type=int) return jsonify({ "results": [], "pageSize": min(page_size, 200), }) @app.route("/api/v1/svc/_mock/reset", methods=["POST"]) def mock_reset(): """Сброс состояния (пока ничего нет).""" return jsonify({"reset": "ok"}) # Локальный запуск (без gunicorn) — только для разработки if __name__ == "__main__": app.run(debug=True, host="0.0.0.0", port=5000)