docs: ARCHITECTURE-FULL.md + README link

This commit is contained in:
2026-07-30 13:36:35 +04:00
parent b6808423da
commit acc28351c5
2 changed files with 99 additions and 0 deletions
+95
View File
@@ -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` — хронология правок
+4
View File
@@ -6,6 +6,10 @@ Flask-приложение для автотестов сервисов Nubes.
См. основной репо: [DOCS/](../DOCS/) — [стадии операций](../DOCS/api-operation-stages.md), [поток CREATE](../DOCS/api-create-flow.md), [доступ к API](../DOCS/api-access.md). См. основной репо: [DOCS/](../DOCS/) — [стадии операций](../DOCS/api-operation-stages.md), [поток CREATE](../DOCS/api-create-flow.md), [доступ к API](../DOCS/api-access.md).
## Архитектура
**Полный обзор:** [DOCS/ARCHITECTURE-FULL.md](DOCS/ARCHITECTURE-FULL.md) — все файлы, CREATE flow, глобальное состояние, план развития.
## Сервис ## Сервис
`https://autotest.pythonk8s.dev.nubes.ru/` (test) `https://autotest.pythonk8s.dev.nubes.ru/` (test)