fix(agent): separate registry-ready deploy marker 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) Failing after 21s
CD Pipeline / build-and-deploy (push) Has been skipped
CD Pipeline / post-deploy-checks (push) Has been skipped
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Failing after 21s
CD Pipeline / build-and-deploy (push) Has been skipped
CD Pipeline / post-deploy-checks (push) Has been skipped
This commit is contained in:
@@ -83,6 +83,15 @@ def _assert_executor_readback(payload: dict, *, public_endpoint: bool = False):
|
||||
]
|
||||
== 8
|
||||
)
|
||||
assert payload["rollups"]["current_blocker_registry_v2_ready_count"] == 1
|
||||
assert (
|
||||
payload["rollups"]["current_blocker_deploy_marker_readback_required_count"]
|
||||
== 1
|
||||
)
|
||||
assert (
|
||||
payload["rollups"]["current_blocker_cd_failure_after_registry_ready_count"]
|
||||
== 1
|
||||
)
|
||||
assert payload["rollups"]["runtime_dispatch_performed"] is False
|
||||
|
||||
batches = {batch["target"]: batch for batch in payload["execution_batches"]}
|
||||
@@ -150,7 +159,27 @@ def _assert_executor_readback(payload: dict, *, public_endpoint: bool = False):
|
||||
assert current_queue[0]["runner_label"] == "awoooi-non110-host"
|
||||
assert current_queue[0]["node_load_classifier"] == "load_not_high"
|
||||
assert current_queue[0]["node_load_high"] is False
|
||||
assert current_queue[0]["registry_v2_status"] == 502
|
||||
assert current_queue[0]["registry_v2_status"] == 401
|
||||
assert current_queue[0]["registry_v2_ready"] is True
|
||||
assert current_queue[0]["registry_v2_status_classifier"] == (
|
||||
"ready_auth_required_http_401"
|
||||
)
|
||||
assert current_queue[0]["deployment_closure_state"] == (
|
||||
"blocked_latest_visible_cd_failure_after_registry_ready"
|
||||
)
|
||||
assert current_queue[0]["deploy_marker_readback_required"] is True
|
||||
assert current_queue[0]["current_cd_run_id"] == "4258"
|
||||
assert current_queue[0]["current_cd_run_status"] == "Failure"
|
||||
assert current_queue[0]["current_cd_commit_sha"] == (
|
||||
"06819ea96c058e7987811e853242390eaced7f91"
|
||||
)
|
||||
assert current_queue[0]["cd_failed_after_registry_ready"] is True
|
||||
assert current_queue[0]["harbor_110_repair_run_id"] == "4255"
|
||||
assert current_queue[0]["harbor_110_repair_run_status"] == "Failure"
|
||||
assert current_queue[0]["harbor_110_repair_failed_after_registry_ready"] is True
|
||||
assert current_queue[0]["harbor_110_repair_failure_classifier"] == (
|
||||
"harbor_110_remote_ssh_publickey_auth_stalled"
|
||||
)
|
||||
assert current_queue[0]["log_source_tag_count"] == 10
|
||||
source_tags = {
|
||||
item["tag_key"]: item for item in current_queue[0]["log_source_tags"]
|
||||
@@ -231,7 +260,7 @@ def _assert_executor_readback(payload: dict, *, public_endpoint: bool = False):
|
||||
]
|
||||
for item in current_queue[0]["harbor_recovery_receipt_output_contract"]
|
||||
)
|
||||
assert current_queue[0]["queue_readback_normalizer_contract_count"] == 11
|
||||
assert current_queue[0]["queue_readback_normalizer_contract_count"] == 14
|
||||
assert [
|
||||
item["field_id"]
|
||||
for item in current_queue[0]["queue_readback_normalizer_contract"]
|
||||
@@ -244,6 +273,9 @@ def _assert_executor_readback(payload: dict, *, public_endpoint: bool = False):
|
||||
"latest_visible_harbor_110_repair_remote_ssh_publickey_offer_timeout",
|
||||
"latest_visible_harbor_110_repair_remote_ssh_server_accepts_key_then_session_timeout",
|
||||
"current_cd_workflow_runner_readiness",
|
||||
"current_cd_deploy_marker_closure",
|
||||
"registry_v2_ready_state",
|
||||
"harbor_110_repair_failure_after_registry_ready",
|
||||
"harbor_110_repair_visible_running_jobs_api_stale",
|
||||
"current_cd_waiting_behind_harbor_110_repair_running",
|
||||
"controlled_profile_no_matching_runner_labels",
|
||||
|
||||
@@ -112,19 +112,28 @@ def test_awoooi_priority_work_order_readback_endpoint_returns_snapshot(
|
||||
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
assert data["status"] == "p0_006_blocked_reboot_auto_recovery_slo_not_ready"
|
||||
assert data["status"] == "p0_006_blocked_ai_loop_current_blocker_execution_queue"
|
||||
assert data["mainline_execution_state"]["active_p0_workplan_id"] == "P0-006"
|
||||
assert data["mainline_execution_state"]["active_p0_state"] == (
|
||||
"blocked_reboot_auto_recovery_slo_not_ready"
|
||||
"blocked_ai_loop_current_blocker_execution_queue"
|
||||
)
|
||||
assert data["mainline_execution_state"][
|
||||
"next_executable_mainline_workplan_id"
|
||||
] == "P0-006-REBOOT-AUTO-RECOVERY-SLO-SCORECARD"
|
||||
] == "P0-006-AI-LOOP-CURRENT-BLOCKER-EXECUTION-QUEUE"
|
||||
assert (
|
||||
data["mainline_execution_state"]["ai_loop_current_blocker_registry_v2_ready"]
|
||||
is True
|
||||
)
|
||||
assert data["mainline_execution_state"][
|
||||
"ai_loop_current_blocker_deploy_marker_readback_required"
|
||||
] is True
|
||||
assert data["mainline_execution_state"]["p0_004_template_copy_apply_gate_runtime_readback_state"] == "ready"
|
||||
assert data["mainline_execution_state"]["reboot_drill_preflight_runtime_readback_state"] == "blocked"
|
||||
assert data["rollups"]["stockplatform_public_api_runtime_ready"] is True
|
||||
assert data["next_execution_order"][0].startswith("P0-006:")
|
||||
assert "reboot SLO scorecard is blocked" in data["next_execution_order"][0]
|
||||
assert data["next_execution_order"][0].startswith(
|
||||
"P0-006-AI-LOOP-CURRENT-BLOCKER-EXECUTION-QUEUE"
|
||||
)
|
||||
assert "do not reopen Harbor 502" in data["next_execution_order"][0]
|
||||
|
||||
|
||||
def test_awoooi_priority_work_order_readback_endpoint_redacts_ai_loop_queue(
|
||||
@@ -265,12 +274,61 @@ def test_awoooi_priority_work_order_readback_overlays_ai_loop_current_blocker_qu
|
||||
)
|
||||
assert state["ai_loop_current_blocker_control_path_pressure_blocker"] == ""
|
||||
assert state["ai_loop_current_blocker_node_load_classifier"] == "load_not_high"
|
||||
assert state["ai_loop_current_blocker_registry_v2_ready"] is True
|
||||
assert state["ai_loop_current_blocker_registry_v2_status_classifier"] == (
|
||||
"ready_auth_required_http_401"
|
||||
)
|
||||
assert state["ai_loop_current_blocker_deployment_closure_state"] == (
|
||||
"blocked_latest_visible_cd_failure_after_registry_ready"
|
||||
)
|
||||
assert state["ai_loop_current_blocker_deploy_marker_readback_required"] is True
|
||||
assert state["ai_loop_current_blocker_current_cd_run_id"] == "4258"
|
||||
assert state["ai_loop_current_blocker_current_cd_run_status"] == "Failure"
|
||||
assert state["ai_loop_current_blocker_cd_failed_after_registry_ready"] is True
|
||||
assert state["ai_loop_current_blocker_harbor_110_repair_run_id"] == "4255"
|
||||
assert state["ai_loop_current_blocker_harbor_110_repair_run_status"] == (
|
||||
"Failure"
|
||||
)
|
||||
assert state["ai_loop_current_blocker_harbor_110_repair_failure_classifier"] == (
|
||||
"harbor_110_remote_ssh_publickey_auth_stalled"
|
||||
)
|
||||
assert evidence["ai_loop_current_blocker_execution_queue_count"] == 1
|
||||
assert evidence["ai_loop_current_blocker_id"] == (
|
||||
"harbor_110_remote_ssh_publickey_auth_stalled"
|
||||
)
|
||||
assert evidence["ai_loop_current_blocker_runner_label"] == "awoooi-non110-host"
|
||||
assert evidence["ai_loop_current_blocker_registry_v2_status"] == 502
|
||||
assert evidence["ai_loop_current_blocker_registry_v2_status"] == 401
|
||||
assert evidence["ai_loop_current_blocker_registry_v2_ready"] is True
|
||||
assert evidence["ai_loop_current_blocker_registry_v2_status_classifier"] == (
|
||||
"ready_auth_required_http_401"
|
||||
)
|
||||
assert evidence["ai_loop_current_blocker_deployment_closure_state"] == (
|
||||
"blocked_latest_visible_cd_failure_after_registry_ready"
|
||||
)
|
||||
assert (
|
||||
evidence["ai_loop_current_blocker_deploy_marker_readback_required"]
|
||||
is True
|
||||
)
|
||||
assert evidence["ai_loop_current_blocker_current_cd_run_id"] == "4258"
|
||||
assert evidence["ai_loop_current_blocker_current_cd_run_status"] == "Failure"
|
||||
assert (
|
||||
evidence["ai_loop_current_blocker_current_cd_commit_sha"]
|
||||
== "06819ea96c058e7987811e853242390eaced7f91"
|
||||
)
|
||||
assert evidence["ai_loop_current_blocker_cd_failed_after_registry_ready"] is True
|
||||
assert evidence["ai_loop_current_blocker_harbor_110_repair_run_id"] == "4255"
|
||||
assert evidence["ai_loop_current_blocker_harbor_110_repair_run_status"] == (
|
||||
"Failure"
|
||||
)
|
||||
assert evidence["ai_loop_current_blocker_harbor_110_repair_failure_classifier"] == (
|
||||
"harbor_110_remote_ssh_publickey_auth_stalled"
|
||||
)
|
||||
assert (
|
||||
evidence[
|
||||
"ai_loop_current_blocker_harbor_110_repair_failed_after_registry_ready"
|
||||
]
|
||||
is True
|
||||
)
|
||||
assert evidence["ai_loop_current_blocker_controlled_recovery_package"] == (
|
||||
"recover-110-control-path-and-harbor-local.sh --check"
|
||||
)
|
||||
@@ -370,6 +428,9 @@ def test_awoooi_priority_work_order_readback_overlays_ai_loop_current_blocker_qu
|
||||
"latest_visible_harbor_110_repair_remote_ssh_publickey_offer_timeout",
|
||||
"latest_visible_harbor_110_repair_remote_ssh_server_accepts_key_then_session_timeout",
|
||||
"current_cd_workflow_runner_readiness",
|
||||
"current_cd_deploy_marker_closure",
|
||||
"registry_v2_ready_state",
|
||||
"harbor_110_repair_failure_after_registry_ready",
|
||||
"harbor_110_repair_visible_running_jobs_api_stale",
|
||||
"current_cd_waiting_behind_harbor_110_repair_running",
|
||||
"controlled_profile_no_matching_runner_labels",
|
||||
@@ -433,6 +494,26 @@ def test_awoooi_priority_work_order_readback_overlays_ai_loop_current_blocker_qu
|
||||
assert payload["summary"]["ai_loop_current_blocker_id"] == (
|
||||
"harbor_110_remote_ssh_publickey_auth_stalled"
|
||||
)
|
||||
assert payload["summary"]["ai_loop_current_blocker_registry_v2_ready"] is True
|
||||
assert payload["summary"]["ai_loop_current_blocker_deployment_closure_state"] == (
|
||||
"blocked_latest_visible_cd_failure_after_registry_ready"
|
||||
)
|
||||
assert (
|
||||
payload["summary"][
|
||||
"ai_loop_current_blocker_deploy_marker_readback_required"
|
||||
]
|
||||
is True
|
||||
)
|
||||
assert payload["summary"]["ai_loop_current_blocker_current_cd_run_status"] == (
|
||||
"Failure"
|
||||
)
|
||||
assert (
|
||||
payload["summary"]["ai_loop_current_blocker_cd_failed_after_registry_ready"]
|
||||
is True
|
||||
)
|
||||
assert payload["summary"][
|
||||
"ai_loop_current_blocker_harbor_110_repair_failure_classifier"
|
||||
] == "harbor_110_remote_ssh_publickey_auth_stalled"
|
||||
assert payload["summary"]["ai_loop_current_blocker_control_path_pressure_blocker"] == ""
|
||||
assert payload["summary"]["ai_loop_current_blocker_node_load_classifier"] == (
|
||||
"load_not_high"
|
||||
@@ -466,7 +547,7 @@ def test_awoooi_priority_work_order_readback_overlays_ai_loop_current_blocker_qu
|
||||
payload["summary"][
|
||||
"ai_loop_current_blocker_queue_readback_normalizer_contract_count"
|
||||
]
|
||||
== 11
|
||||
== 14
|
||||
)
|
||||
assert payload["summary"][
|
||||
"ai_loop_current_blocker_queue_readback_normalizer_field_ids"
|
||||
@@ -483,9 +564,9 @@ def test_awoooi_priority_work_order_readback_overlays_ai_loop_current_blocker_qu
|
||||
assert payload["next_execution_order"][0].startswith(
|
||||
"P0-006-AI-LOOP-CURRENT-BLOCKER-EXECUTION-QUEUE"
|
||||
)
|
||||
assert "5 ordered local-console phases" in payload["next_execution_order"][0]
|
||||
assert "Harbor receipt inputs" in payload["next_execution_order"][0]
|
||||
assert "normalized queue classifiers" in payload["next_execution_order"][0]
|
||||
assert "already 401" in payload["next_execution_order"][0]
|
||||
assert "do not reopen Harbor 502" in payload["next_execution_order"][0]
|
||||
assert "P0-006-CD-DEPLOY-MARKER-READBACK" in payload["next_execution_order"][1]
|
||||
|
||||
|
||||
def test_awoooi_priority_work_order_readback_overlays_live_stockplatform_drift():
|
||||
|
||||
Reference in New Issue
Block a user