35 lines
1.7 KiB
Markdown
35 lines
1.7 KiB
Markdown
# Архитектура app-autotest — рефакторинг (2026-07-31)
|
|
|
|
> План: `DOCS/opus-plan-2026-07-31.md` | Ревью: `DOCS/opus-review-v1.2.0.md`
|
|
> Текущая версия: **v1.2.1** ✅
|
|
|
|
## ✅ Реализовано (Фазы 1-3)
|
|
|
|
### Новые модули
|
|
- `api/utils.py` — find_uid(), uid_from_location() (вместо 2 дублей)
|
|
- `operations/poll.py` — poll_until_done() (общий поллинг)
|
|
- `operations/executor.py` — execute_operation() (единый CREATE/non-CREATE флоу, tracker_add внутри)
|
|
|
|
### Рефакторинг
|
|
- `api_test.py` — через executor + poll_until_done, CMDB delete отдельно
|
|
- `scenario.py` — через executor + poll, output/ref/bindings резолвинг
|
|
- `api_scenario_defs.py` — _validate_steps: output/instance_ref/instance_uid
|
|
- `init_db.py` — startup cleanup зависших scenario_runs (>1ч)
|
|
- `params-render.js` — общий рендер параметров (вынесен из operations.js)
|
|
|
|
### Формат шагов (JSONB, без изменений схемы)
|
|
```json
|
|
{"service_id": 1, "operation": "create", "params": {}, "output": "d1"}
|
|
{"service_id": 1, "operation": "modify", "params": {}, "instance_ref": "d1"}
|
|
```
|
|
Старый формат (без output/ref) — обратная совместимость через fallback.
|
|
|
|
## ❌ Не реализовано (Фаза 4)
|
|
|
|
### Модальный редактор сценариев
|
|
- `scenario-form.js` — нужна полная переделка
|
|
- `index.html` — разметка модала
|
|
- Дропдауны сервисов/операций, автоподгрузка параметров
|
|
- Поля output/instance_ref
|
|
- [↑][↓] перестановка шагов
|