test(reboot): align delivery workbench public maintenance blocker
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 59s
CD Pipeline / build-and-deploy (push) Successful in 4m41s
CD Pipeline / post-deploy-checks (push) Successful in 1m50s

This commit is contained in:
ogt
2026-07-02 21:48:56 +08:00
parent c3442ebe41
commit 758e7e9616
2 changed files with 22 additions and 7 deletions

View File

@@ -22,6 +22,7 @@ REBOOT_ACTIVE_BLOCKERS = [
"wazuh_dashboard_degraded",
"windows99_remote_execution_channel_unavailable",
"windows99_vmware_autostart_readback_missing",
"public_maintenance_fallback_runtime_readback_missing",
]
DRILL_ACTIVE_BLOCKERS = [
"service_green_not_ready",
@@ -253,8 +254,8 @@ def test_delivery_closure_workbench_exposes_p0_006_reboot_slo_lane():
assert lane["source_id"] == "reboot_auto_recovery_slo_scorecard"
assert lane["status"] == "blocked_reboot_auto_recovery_slo_not_ready"
assert lane["blocker_count"] == 11
assert lane["completion_percent"] == 43
assert lane["blocker_count"] == 12
assert lane["completion_percent"] == 40
assert lane["metric"]["kind"] == "reboot_auto_recovery_slo"
assert lane["metric"]["workplan_id"] == "P0-006"
assert lane["metric"]["target_minutes"] == 10
@@ -337,7 +338,7 @@ def _assert_delivery_workbench_shape(data: dict):
)
assert data["readback"]["current_p0_safe_next_step"] == data["safe_next_step"]
assert data["readback"]["current_p0_active_blockers"] == data["active_blockers"]
assert data["readback"]["current_p0_readiness_percent"] == 43
assert data["readback"]["current_p0_readiness_percent"] == 40
assert data["readback"]["current_p0_drill_preflight_status"] == (
"blocked_reboot_drill_preflight_not_ready"
)
@@ -362,8 +363,8 @@ def _assert_delivery_workbench_shape(data: dict):
assert data["rollups"]["high_risk_blocker_count"] == data["summary"][
"high_risk_blocker_count"
]
assert data["rollups"]["current_p0_blocker_count"] == 11
assert data["rollups"]["current_p0_readiness_percent"] == 43
assert data["rollups"]["current_p0_blocker_count"] == 12
assert data["rollups"]["current_p0_readiness_percent"] == 40
assert data["rollups"]["current_p0_blocked_by_fresh_reboot_window_only"] is False
assert data["rollups"]["current_p0_service_green"] is False
assert data["rollups"]["current_p0_product_data_green"] is True
@@ -446,8 +447,8 @@ def _assert_delivery_workbench_shape(data: dict):
"blocked_reboot_auto_recovery_slo_not_ready"
)
assert data["summary"]["reboot_auto_recovery_workplan_id"] == "P0-006"
assert data["summary"]["reboot_auto_recovery_readiness_percent"] == 43
assert data["summary"]["reboot_auto_recovery_active_blocker_count"] == 11
assert data["summary"]["reboot_auto_recovery_readiness_percent"] == 40
assert data["summary"]["reboot_auto_recovery_active_blocker_count"] == 12
assert data["summary"]["reboot_auto_recovery_can_claim_slo"] is False
assert data["summary"]["reboot_auto_recovery_service_green"] is False
assert data["summary"]["reboot_auto_recovery_product_data_green"] is True

View File

@@ -20,6 +20,20 @@
**仍維持**
- 未使用 GitHub / `gh` / GitHub API未讀 secret / token / `.env` / raw sessions / SQLite / auth未 workflow_dispatch未重啟主機 / VM / Docker / Nginx / K3s / DB / firewall未切 DNS / CDN / provider。
## 2026-07-02 — 21:46 P0-006 delivery workbench public maintenance blocker closure
**完成內容**
- Gitea CD `#4453` 失敗點定位為 `apps/api/tests/test_delivery_closure_workbench_api.py::test_delivery_closure_workbench_endpoint_returns_product_summary`Reboot SLO API 已 fail-closed 納入 `public_maintenance_fallback_runtime_readback_missing`,但 Delivery Workbench 測試仍硬期待舊的 11 blockers / readiness `43`
- `apps/api/tests/test_delivery_closure_workbench_api.py` 已同步新的 P0-006 truth`REBOOT_ACTIVE_BLOCKERS` 補上 `public_maintenance_fallback_runtime_readback_missing`Workbench lane / readback / rollups / summary 皆改為 12 blockers / readiness `40`
- 修正目的為讓 Workbench 接受已新增的 runtime fallback evidence gate沒有移除 host / Windows99 / Wazuh / public maintenance blockers也沒有把 source-only fallback 宣稱為 runtime ready。
**驗證**
- `DATABASE_URL=sqlite+aiosqlite:////tmp/awoooi-codex-api-test.db PYTHONPATH=apps/api python3.11 -m pytest -q apps/api/tests/test_delivery_closure_workbench_api.py apps/api/tests/test_reboot_auto_recovery_slo_scorecard_api.py apps/api/tests/test_awoooi_priority_work_order_readback_api.py -p no:cacheprovider``28 passed`
- `DATABASE_URL=sqlite+aiosqlite:////tmp/awoooi-codex-api-test.db PYTHONPATH=apps/api python3.11 -m pytest -q apps/api/tests/test_delivery_closure_workbench_api.py apps/api/tests/test_reboot_auto_recovery_slo_scorecard_api.py apps/api/tests/test_awoooi_priority_work_order_readback_api.py apps/api/tests/test_stockplatform_public_api_runtime_readback.py apps/api/tests/test_stockplatform_public_api_controlled_recovery_preflight.py scripts/reboot-recovery/tests/test_reboot_auto_recovery_slo_scorecard.py scripts/reboot-recovery/tests/test_reboot_p0_operational_contract.py apps/api/tests/test_platform_read_model_fallbacks.py -p no:cacheprovider``65 passed`
**仍維持**
- 未讀 secret / token / `.env` / raw sessions / SQLite / auth未使用 GitHub / gh未 SSH、未 Docker / K8s / firewall / Wazuh 寫入、未重啟 host / VM / service、未 workflow_dispatch、未 DROP / TRUNCATE / restore / prune。
## 2026-07-02 — 21:41 P0-006 public maintenance fallback API readback parity
**完成內容**