Files
autotest/HISTORY/2026-07-24-all-failures.md

82 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2026-07-24 — Полная хронология провалов (v1.0.6 — v1.0.25)
## v1.0.6 — Трёхколоночный UI, auto-selectService
- **Что:** три колонки, сервисы грузятся, auto-select на dummy
- **Результат:** «Сервисы: Загрузка...» висит
- **Причина:** заменён ВЕСЬ шаблон вместо добавления. auto-selectService вызывал API до готовности страницы.
## v1.0.7 — HttpClient.post не существовал
- **Ошибка:** `'HttpClient' object has no attribute 'post'`
- **Причина:** в http_client.py только get(), а api_test.py использовал post()
- **Исправление:** добавлен post()
## v1.0.8 — r.json() на пустом ответе
- **Ошибка:** `'str' object has no attribute 'get'`
- **Причина:** POST /instances → 201 с пустым телом. r.json() падает.
- **Исправление:** try/except, возвращаем {}
## v1.0.9 — instanceUid из Location
- **Ошибка:** не находился UUID инстанса
- **Причина:** POST /instances возвращает UID в заголовке Location, не в теле
- **Исправление:** парсинг Location → UUID
## v1.0.10 — cfsParams в POST /instances
- **Ошибка:** 400 Bad Request
- **Причина:** cfsParams нельзя в POST /instances
- **Исправление:** убраны cfsParams из create
## v1.0.11 — descr обязателен
- **Ошибка:** 400 Bad Request
- **Причина:** поле descr нужно в POST /instances
- **Исправление:** добавлен descr: "autotest"
## v1.0.12 — тело ошибки в ответе
- **Добавлено:** показ тела ответа API при ошибке
## v1.0.13 — displayName не уникален
- **Ошибка:** 400 "Instance Display Name not unique"
- **Причина:** имя autotest-1 уже занято
- **Исправление:** timestamp в имени
## v1.0.14 — displayName редактируемый
- **Добавлено:** поле ввода displayName в параметрах
## v1.0.15-1.0.16 — авто-selectService + сломанный шаблон
- **Ошибка:** «Сервисы: Загрузка...»
- **Причина:** заменён рабочий шаблон новым с багами
- **Исправление:** откат к v1.0.12
## v1.0.17-1.0.19 — восстановление + displayName
- Восстановлен рабочий шаблон, добавлен только displayName
## v1.0.20 — traceback в ошибках
- **Добавлено:** traceback для отладки
## v1.0.21 — r.json() возвращает строку "201"
- **Ошибка:** `'str' object does not support item assignment`
- **Причина:** POST /instances → тело "201" → r.json() = "201" → result = "201" (строка)
- **Исправление:** isinstance(parsed, dict)
## v1.0.22 — двухшаговый create (без cfsParams)
- **Ошибка:** инстанс создан, но статус "not created"
- **Причина:** только POST /instances, операция create не запущена
- **Исправление:** добавлен POST /instanceOperations
## v1.0.23 — cfsParams в POST /instanceOperations
- **Ошибка:** 422 "required CFS parameter failInProgress (200) is missing"
- **Причина:** cfsParams нельзя в POST /instanceOperations — они отдельно
- **Исправление:** убраны cfsParams из вызова, добавлены через /params
## v1.0.24 — /params без instanceOperationUid
- **Ошибка:** /params ожидает {instanceOperationUid, svcOperationCfsParamId, paramValue}
- **Причина:** поле instanceOperationUid пропущено
- **Исправление:** добавлено
## v1.0.25 — пропущен /validate
- **Ошибка:** операция не запускается
- **Причина:** в Go-клиенте есть шаг validate перед run
- **Исправление:** добавлен POST /validate
## Итого: 13 итераций, 9 багов
Каждый раз — новый баг, потому что не сверял с Go-клиентом посимвольно.