fix(containers): учитывать фактические состояния контейнеров

This commit is contained in:
Denozordec committed 2026-10-14 18:35:07 +07:00
1 parent 0cc8fe5572
commit b3d11276dd
14 files changed
+357 -14

No files matched your search

+18 -4
View File
@@ -1,10 +1,24 @@
# Оставшаяся внешняя приёмка — 2026-10-14
Актуальное продолжение 2026-10-14:246 — по user correction подготовлен container7.24.5 сmikrotik.ltd→MikroTikPatch release:archive29,675,363bytes/digest matched, selected NPK1,163,409bytes/SHA70f1c528…, official244 rejected/no apply. Main/option/python/keygen scripts не выбраны. Procedure обновлена; установка/reboot ждут согласия на новый комплект. CI245 passed; runtime ux-geoip242/ux-backups237 unchanged. Следующий247 — positive container lifecycle после согласия; до него независимый аудит границ текущего deployment. Этап12.5 открыт.
Актуальное продолжение 2026-10-14: 247 — разрешённый container-пакет из источника mikrotik.ltd установлен и удалён на 104.165.244.7 с двумя перезагрузками. Исправлена обработка native running/stopped flags. Через реальный Portal/UI прошли start, stop, повторный start и restart; remove работающего контейнера вернул 502 и остаётся открытым. Собственные объекты удалены через native API, исходный экспорт и пакеты совпали. Backend ux-containers247, frontend ux-backups237. Следующий 248 — исправление и приёмка удаления контейнера; отдельно выяснить расхождение авторизации REST/SSH. Этап 12.5 открыт.
Это актуальная матрица после 12.5.246. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии.
Это актуальная матрица после 12.5.247. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии.
Стенд: Debian13/Compose, PostgreSQL18.6, два CHR RouterOS7.24.5. Backend `ux-geoip242`, frontend `ux-backups237`; production lab с195 использует AUTH_REQUIRED=true и Portal1.3.1. Подписанные JWT/RBAC проверялись в изолированных процессах. Все собственные объекты112 удалены, исходные13 коллекций×2 (включая logging/certificates/files/routes) проверены; пароли не менялись.
Стенд: Debian13/Compose, PostgreSQL18.6, два CHR RouterOS7.24.5. Backend `ux-containers247`, frontend `ux-backups237`; production lab с195 использует AUTH_REQUIRED=true и Portal1.3.1. Подписанные JWT/RBAC проверялись в изолированных процессах. Все собственные объекты112 удалены, исходные13 коллекций×2 (включая logging/certificates/files/routes) проверены; пароли не менялись.
## 12.5.247 — фактические состояния и жизненный цикл контейнера (2026-10-14)
Пользователь разрешил конкретный пакет 246 и две перезагрузки. На 104.165.244.7 установлен только container-7.24.5.npk из указанного источника mikrotik.ltd → MikroTikPatch, с ранее проверенным SHA256. Core/option/python/keygen/patch scripts не применялись; версия RouterOS осталась 7.24.5. Образ BusyBox 1.37.0 linux/amd64 закреплён digest busybox@sha256:bdf57e528e45e4433820e045b29b45978255a1c9e38353532d90a01445013f82e. Созданы только собственные контейнер mmc247-busybox, veth mmc247-39da5c21 и каталог; bridge, IP, NAT, маршруты и глобальные registry credentials не изменялись.
Реальный REST отдаёт stopped/running флаги вместо status и envlists вместо envlist. Общая обработка теперь поддерживает эти поля, сохраняет unknown при переходе, неверном значении или противоречии; отсутствие статуса не считается stopped. Для envlists проверена backend-фикстура, отдельное live создание envlist не выполнялось. test:containers (service + HTTP), сборка contracts/backend и профильный ESLint прошли. Добавлены девять проверок native флагов и проверка alias. E2E containers-data/containers-operations не стартовали: тестовый webServer :3100 превысил 120 секунд; успешной E2E приёмки этот блок не заявляет.
Через настоящий Portal без моков в UI 1440×1000 получены start 200 → stop 200 → start 200 → restart 200 с ok=true и проверкой rosId. Native состояния независимо подтвердили running → stopped → running. Удаление работающего контейнера через UI вернуло 502/ok=false; причина не доказана, сценарий НЕ принят. Ошибок JavaScript нет. [UI-протокол](ux-ui/acceptance/containers247-live-ui.json).
Очистка выполнена native API: собственный контейнер остановлен и удалён, veth/image/root/NPK отсутствуют. Container package удалён второй однократной перезагрузкой; оба reboot получили подтверждение. Доступные, но не установленные пакеты RouterOS имеют пустую version — при сравнении учитываются только установленные. После reboot автоматическое определение часового пояса временно отличалось от исходного, затем вернулось к Europe/Warsaw. Попытка PATCH singleton clock получила 400 и ничего не изменила; manual clock restore не применён. Итоговый нормализованный export и исходные installed routeros/option 7.24.5 совпали. Приватный baseline удалён. [Native-проверка и очистка](ux-ui/acceptance/containers247-native.json).
Backend ux-containers247 развёрнут и healthy; frontend ux-backups237 сохранён. При сборке совпали 521 исходный файл и 1076 compiled файлов; последующие исправления только CLI helper для cleanup не входят в замороженный source audit. [Deployment](ux-ui/acceptance/containers247-deployment.json). Агент не менял passwords/device-mode/keys. С Debian REST работает после обеих перезагрузок; прямой REST с рабочего компьютера возвращал 401, SSH с прежним паролем сначала прошёл, повторный вход не прошёл. Причина расхождения неизвестна; глобальную исправность SSH/пароля не заявляем. Контрольный CHR 194.226.121.150 доступен.
Следующий блок 248: понятная и безопасная обработка удаления работающего контейнера, приёмка удаления остановленного через UI и повторного действия, затем диагностика запуска E2E и корреляция авторизации без изменения паролей. RBAC/повторное действие в live 247 не проверены. ACME, внешняя публикация релизов и другие ранее записанные ограничения остаются открытыми. Полная регрессия не повторялась.
## 12.5.246 — пакет контейнеров из указанного пользователем источника (2026-10-14)
@@ -168,7 +182,7 @@ Portal offline JWT действует доexp после logout/role change; э
## Следующая последовательность — 2026-10-14
1. **Контейнеры247:** requested-source246artifact/digest и процедураготовы; применение/перезапуски нового комплекта ещё ждутсогласия. CI245 принят; ACME и remote Gitea publishing требуютсвоихдоступов/разрешённогоscope.
1. **Контейнеры248:** start/stop/restart подтверждены в 247; remove работающего контейнера вернул 502 и требует исправления/приёмки UI. Очистка и исходная конфигурация подтверждены. Отдельно выяснить REST/SSH авторизацию и запуск E2E. CI245 принят; ACME и remote Gitea publishing требуют своих доступов/разрешённого scope.
2. **Профильный контроль:** для новых изменений выполнять затронутые SQL/API/UI проверки. Общая регрессия192 выполнена; не повторять её без изменений общей основы или нового основания.
3. **Внешние зависимости:** Portal issuer/login/revoke, Telegram bot/chat/разрешённое сообщение, клиентские ОС, независимые WAN/public IPv6 и scale/multi-instance — отдельные группы по таблице выше. Ограничения текущего стенда не превращать в обещание приёмки всех конфигураций.