fix(gre): не подменять неизвестные флаги состоянием туннеля

This commit is contained in:
Denozordec committed 2026-10-14 01:39:35 +07:00
1 parent 9c4a0992d7
commit 51a579d370
18 files changed
+877 -17

No files matched your search

+13 -1
View File
@@ -1,6 +1,6 @@
# UX/UI: журнал реализации
Актуальное продолжение 2026-10-14: блок219 завершён. GRE source snapshots больше не подавляет per-device ошибки; повреждённые records/duplicate native IDs отклоняются. BGP observations сохраняются при GRE failure. Четыре профиля, SQL/native10, compiled actual source2own GRE и UI1440/320 прошли; own DB/roles/tunnels удалены. Backend ux-gre219/compiled1052/source486 matched, frontend ux-routing218. Следующий220 — неизвестные/некорректные GRE operational flags в snapshots. Этап12.5 открыт.
Актуальное продолжение 2026-10-14: блок220 завершён. GRE catalog/config snapshots/alert source используют одну модель подтверждённых operational flags. Unknown flags не превращаются в degraded/up. Local49, profiles14+6, production30, real up→down/degraded→up/Ping3/3×2 и source/UI прошли; own objects удалены. Первичный native401104.165.244.7 после перепроверки не повторился, причина неизвестна. Backend ux-gre220/compiled1056/source488 matched, frontend ux-routing218. Следующий221 — native GRE identity/duplicate guards для каталога и snapshots. Этап12.5 открыт.
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
@@ -38,6 +38,18 @@
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–196 и ограничения ниже. Runtime backend/frontend ux-peak196. |
## 12.5.220 — подтверждённые operational flags GRE (2026-10-14)
Общий readGreObservedState используется в live catalog/config snapshot и alert source. true/false/yes/no читаются одинаково; disabled=true подтверждает down независимо от running. При неизвестном disabled или running у enabled interface опрос устройства отклоняется. Достоверные up/down/degraded сохранены; главная API-envelope по-прежнему передаёт failures по устройствам, а source snapshot сообщает GRE error и сохраняет BGP. Unknown metadata больше не выдаётся за подтверждённый operational status. Другие параметры/defaults GRE этим блоком не объявляются полностью проверенными.
Local49 комбинаций проверили оба reader пути. Профили live-maps14 и config-sync6, build прошли; optional SQL branch network-disabled-server без его специального env skipped, не считается новой SQL приёмкой. Первая IPv6 fixture имела running=true, но не имела disabled: дополнена explicit false, повтор passed. Baseline ux-gre219/fixed ux-gre220 по30 production checks:15 flags через compiled snapshot collector и signed reader GRE API. Unknown flags дают sourceError и per-device API failure; здоровое устройство остаётся в catalog. BGP2 control rows сохраняются. Own DB/roles удалены, native writes0.
Backend ux-gre220 compiled1056/source488 matched, healthy; frontend ux-routing218 сохранён. Первая live попытка прервана native401104.165.244.7; точный failed request path не записан. Cleanup созданных own GRE сообщил успех. Шесть последующих native checks200 на обоих CHR с теми же credentials; root cause не установлен. Новый цельный run использовал Connection close в прямых контрольных REST calls; это не causal proof причины401 и не production auth retry.
В повторном run own GRE2/IPv4inner поднялись up, Ping3/3 в обе стороны. Actual compiled collector read lab DB/native и подтвердил own up2/sourceErrors0 без scheduler history write. UI1440/320 показал own rows без page errors/mutations. Disable одного: native/API down + peer degraded; enable: recovery up/up и повторный Ping3/3 обоих. Own interfaces/addresses удалены, absence API/native проверен; пароли не менялись. Это controlled краткая loss/recovery, не physical WAN/SLA/длительная устойчивость.
Протоколы: [baseline](ux-ui/acceptance/gre220-baseline.json), [fixed](ux-ui/acceptance/gre220-fixed.json), [build](ux-ui/acceptance/gre220-build-proof-2026-10-14.json), [deployment](ux-ui/acceptance/gre220-deployment-2026-10-14.json), [initial401](ux-ui/acceptance/gre220-initial-native-failure-2026-10-14.json), [whole native/UI/cleanup](ux-ui/acceptance/gre220-native-live-2026-10-14.json). Следующий221 — отклонять missing/duplicate native GRE identity в каталоге/config snapshots; сейчас mapGreLive допускает выдуманные fallback IDs/names.
## 12.5.219 — ошибки реального GRE source для snapshots (2026-10-14)
fetchGreTunnelLiveRows подавлял native failures через[] и collector принимал пустой/неполный источник без ошибки. Теперь per-device reads settled независимо, все ошибки агрегируются по устройствам и неполный источник отклоняется; collector записывает GRE source error и сохраняет независимо прочитанный BGP. Raw GRE должен быть корректной коллекцией string records с native .id/name; duplicate IDs отклоняются. Правила сигналов/доставки и существующая трактовка running/disabled пока не менялись: неизвестные operational flags — следующий220.