fix(api): expose stockplatform recovery control blocker
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 27s
CD Pipeline / build-and-deploy (push) Failing after 50m32s
CD Pipeline / post-deploy-checks (push) Has been cancelled

This commit is contained in:
Your Name
2026-06-30 16:40:21 +08:00
parent 865a02d5b3
commit 55b625e957
5 changed files with 143 additions and 1 deletions

View File

@@ -104,9 +104,28 @@ def test_awoooi_priority_work_order_readback_overlays_live_stockplatform_drift()
assert evidence["stockplatform_public_api_runtime_ready"] is False
assert evidence["stockplatform_public_api_http_502_count"] == 3
assert evidence["stockplatform_public_api_health_http_status"] == 502
assert (
evidence["stockplatform_recovery_control_path_status"]
== "blocked_recovery_control_path_receipt_missing"
)
assert "stockplatform_recovery_control_path_receipt_missing" in evidence[
"stockplatform_recovery_control_path_active_blockers"
]
assert in_progress["status"] == "blocked_stockplatform_public_api_runtime_drift"
assert "Do not restart Docker daemon" in in_progress["professional_fix"]["action"]
assert payload["rollups"]["stockplatform_public_api_runtime_blocked"] is True
assert (
payload["rollups"][
"stockplatform_public_api_recovery_control_path_status"
]
== "blocked_recovery_control_path_receipt_missing"
)
assert (
payload["rollups"][
"stockplatform_public_api_recovery_control_path_blocker_count"
]
== 2
)
assert (
payload["rollups"]["active_p0_event_gated_by_fresh_reboot_window_only"]
is False
@@ -205,6 +224,8 @@ def _stockplatform_runtime_blocked() -> dict:
"stockplatform_public_api_healthz_http_502",
"stockplatform_freshness_http_502",
"stockplatform_ingestion_http_502",
"stockplatform_recovery_control_path_receipt_missing",
"stockplatform_controlled_deploy_or_ssh_readback_required",
],
"runtime_ready": False,
"live_drift_from_committed_scorecard": True,
@@ -216,4 +237,11 @@ def _stockplatform_runtime_blocked() -> dict:
"rollups": {
"http_502_count": 3,
},
"recovery_control_path": {
"status": "blocked_recovery_control_path_receipt_missing",
"active_blockers": [
"stockplatform_recovery_control_path_receipt_missing",
"stockplatform_controlled_deploy_or_ssh_readback_required",
],
},
}

View File

@@ -32,7 +32,14 @@ def test_stockplatform_public_api_runtime_readback_blocks_live_502():
"stockplatform_public_api_healthz_http_502",
"stockplatform_freshness_http_502",
"stockplatform_ingestion_http_502",
"stockplatform_recovery_control_path_receipt_missing",
"stockplatform_controlled_deploy_or_ssh_readback_required",
]
assert (
payload["recovery_control_path"]["status"]
== "blocked_recovery_control_path_receipt_missing"
)
assert payload["rollups"]["recovery_control_path_blocker_count"] == 2
assert (
payload["operation_boundaries"]["read_only_public_https_probe"] is True
)
@@ -73,7 +80,7 @@ def test_stockplatform_public_api_runtime_endpoint_returns_readback(monkeypatch)
assert response.status_code == 200
data = response.json()
assert data["status"] == "blocked_stockplatform_public_api_runtime_drift"
assert data["active_blocker_count"] == 3
assert data["active_blocker_count"] == 5
def _probe_public_web_ok_api_502(url: str, timeout_seconds: float) -> dict: