3293330cece141f3a38b23df600e8254eb672573
ON CONFLICT требовал уникальный индекс idx_runs_op_uid, который не всегда создавался (мультистейтмент SQL в psycopg2). → save_run падал молча → история пустая. Новый подход: UPDATE по op_uid, если rowcount==0 → INSERT. Не зависит от индексов, работает всегда.
App Autotest
Flask-приложение для автотестов сервисов Nubes. Деплоится как облачный сервис Web-сервер с фреймворком Flask на платформе Nubes.
Документация API
См. основной репо: DOCS/ — стадии операций, поток CREATE, доступ к API.
Архитектура
Полный обзор: ../DOCS/ARCHITECTURE-FULL.md — все файлы, CREATE flow, глобальное состояние, план развития.
Сервис
https://autotest.pythonk8s.dev.nubes.ru/ (test)
Параметры облачного сервиса
appConfiguration:
{
"version": "3.12",
"gitPath": "https://gitea.services.ngcloud.ru/forcloud/app-autotest.git",
"healthPath": ""
}
jsonEnv:
{
"NUBES_API_TOKEN": "...",
"NUBES_API_ENDPOINT": "https://lk-api-gateway-test.ngcloud.ru/api/v1/svc"
}
Структура
app/
├── api/ # HTTP-клиент облака
├── operations/ # Операции API (одна на файл)
├── routes/ # Flask blueprints
├── static/ # CSS, JS, логотип
└── templates/ # Jinja2 шаблоны (дизайн Nubes)
Languages
Python
63.6%
JavaScript
29.9%
HTML
4.3%
CSS
2.2%