docs: receive all docs from app-autotest
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
# Архитектура Autotest — полный обзор
|
||||
|
||||
v1.1.44, 2026-07-30
|
||||
|
||||
## Назначение
|
||||
|
||||
Платформа для тестирования Nubes Cloud API — ручное и автоматизированное создание/изменение/удаление инстансов любых сервисов (PostgreSQL, Redis, S3, Kafka, ~35 сервисов).
|
||||
|
||||
## Развёртывание
|
||||
|
||||
- **Платформа:** Nubes pythonk8s (managed Flask + gunicorn)
|
||||
- **URL:** `https://atest.pythonk8s.dev.nubes.ru/`
|
||||
- **БД:** PostgreSQL 17 (Zalando Operator), autotest
|
||||
- **Репозиторий:** `/home/naeel/nubes/autotest/app-autotest`
|
||||
- **Родительский репо:** `/home/naeel/nubes/autotest`
|
||||
|
||||
## Ключевые файлы
|
||||
|
||||
### Бэкенд (Flask)
|
||||
| Файл | Назначение |
|
||||
|------|-----------|
|
||||
| `site/app.py` | Точка входа, регистрация blueprint'ов, VERSION |
|
||||
| `site/routes/api_test.py` | Основной: POST /api/test, GET /api/params, поллинг, _finish_op |
|
||||
| `site/routes/main.py` | GET /, /api/operations/{svc_id} |
|
||||
| `site/routes/api.py` | LEGACY эндпоинты (будет удалён) |
|
||||
| `site/api/http_client.py` | HTTP-клиент Nubes API (GET/POST/raw_delete) |
|
||||
| `site/api/auth.py` | Токены, get_client, get_stand |
|
||||
| `site/operations/get_params.py` | get_params_with_current_values, _normalize_value_list, state.out |
|
||||
| `site/operations/get_instances.py` | GET /instances с пагинацией |
|
||||
| `site/operations/get_services.py` | GET /services, /services/{id} |
|
||||
| `site/operations/service_list.py` | Загрузка services_{stand}.txt |
|
||||
| `site/operations/tracker.py` | fcntl.flock файловый трекер инстансов |
|
||||
| `site/db/pool.py` | psycopg2 ThreadedConnectionPool (lazy-init) |
|
||||
| `site/db/init_db.py` | CREATE TABLE runs + миграции |
|
||||
| `site/db/save_run.py` | INSERT в runs (16 колонок) |
|
||||
| `site/runner.py` | LEGACY runner (будет удалён) |
|
||||
| `site/config.yaml` | LEGACY конфиг (будет удалён) |
|
||||
|
||||
### Фронтенд (vanilla JS)
|
||||
| Файл | Назначение |
|
||||
|------|-----------|
|
||||
| `site/templates/index.html` | Jinja2 шаблон, CSS, window.APP |
|
||||
| `site/static/app.js` | Весь фронтенд (460 строк) |
|
||||
| `site/static/style.css` | Доп. стили |
|
||||
|
||||
### Конфиги
|
||||
| Файл | Назначение |
|
||||
|------|-----------|
|
||||
| `site/config/services_test.txt` | Список сервисов TEST (комментировать # для исключения) |
|
||||
| `site/config/services_dev.txt` | Список сервисов DEV |
|
||||
| `requirements.txt` | Python-зависимости |
|
||||
|
||||
## CREATE flow (9 шагов Nubes API)
|
||||
|
||||
1. POST /instances
|
||||
2. POST /instanceOperations {operation:"create"}
|
||||
3. GET /instanceOperations/{opUid}?fields=cfsParams
|
||||
4. resolveRefSvcParamValues
|
||||
5. POST /instanceOperationCfsParams (пользовательские)
|
||||
6. POST /instanceOperationCfsParams (required+default)
|
||||
7. GET /validate-cfs
|
||||
8. POST /run
|
||||
9. Поллинг dtFinish
|
||||
|
||||
## Фронтенд — глобальное состояние
|
||||
|
||||
```
|
||||
svcInstances — кеш инстансов
|
||||
selectedInst — UID выбранного
|
||||
selectedOp — {opId, opName, svcId}
|
||||
pollTimer — setInterval поллинга
|
||||
currentSvcId — ID сервиса
|
||||
currentSvcName — имя сервиса
|
||||
currentSvcShort— краткое имя (redis, postgres)
|
||||
busy — блокировка параллельных операций
|
||||
```
|
||||
|
||||
## План развития (MVP сценариев)
|
||||
|
||||
Файлы: `/home/naeel/nubes/autotest/TASKS/3007.md` (требования), `/home/naeel/nubes/autotest/DOCS/sol-answers.md` (решения)
|
||||
|
||||
1. Багфиксы аудита
|
||||
2. Удалить legacy (api.py, runner.py, config.yaml)
|
||||
3. Сервисные токены для сценариев
|
||||
4. YAML-сценарии + валидатор
|
||||
5. scenario_runs таблица + runner
|
||||
6. UI: сворачиваемая секция «Сценарии»
|
||||
|
||||
## Документация
|
||||
|
||||
- `/home/naeel/nubes/autotest/DOCS/terraform-operations-full-logic.md` — эталонный Nubes API flow
|
||||
- `/home/naeel/nubes/autotest/DOCS/sol-answers.md` — ответы на 14 вопросов по архитектуре
|
||||
- `/home/naeel/nubes/autotest/DOCS/questions-to-sol.md` — 14 вопросов к Sol
|
||||
- `/home/naeel/nubes/autotest/app-autotest/DOCS/sonnet-final-audit.md` — финальный аудит Соннета
|
||||
- `/home/naeel/nubes/autotest/HISTORY/2026-07-29-session.md` — хронология правок
|
||||
Reference in New Issue
Block a user