4.4 KiB
4.4 KiB
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-клиентом посимвольно.