fix(runner): expose ssh session timeout in closure verifier
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 33s
CD Pipeline / build-and-deploy (push) Failing after 28s
CD Pipeline / post-deploy-checks (push) Has been skipped

This commit is contained in:
Your Name
2026-07-01 12:55:14 +08:00
parent 8e4b96b60a
commit 5285bcd8aa
2 changed files with 31 additions and 1 deletions

View File

@@ -30,6 +30,7 @@ def _queue(
harbor_110_no_matching: bool = False, harbor_110_no_matching: bool = False,
harbor_110_remote_control_unavailable: bool = False, harbor_110_remote_control_unavailable: bool = False,
harbor_110_publickey_auth_stalled: bool = False, harbor_110_publickey_auth_stalled: bool = False,
harbor_110_session_timeout: bool = False,
) -> dict: ) -> dict:
status = ( status = (
"blocked_harbor_110_remote_ssh_publickey_auth_stalled" "blocked_harbor_110_remote_ssh_publickey_auth_stalled"
@@ -67,6 +68,9 @@ def _queue(
"latest_visible_harbor_110_repair_remote_ssh_publickey_reply_timeout_seen": ( "latest_visible_harbor_110_repair_remote_ssh_publickey_reply_timeout_seen": (
harbor_110_publickey_auth_stalled harbor_110_publickey_auth_stalled
), ),
"latest_visible_harbor_110_repair_remote_ssh_server_accepts_key_then_session_timeout": (
harbor_110_session_timeout
),
}, },
"rollups": { "rollups": {
"harbor_110_repair_remote_control_channel_unavailable": ( "harbor_110_repair_remote_control_channel_unavailable": (
@@ -79,6 +83,9 @@ def _queue(
"harbor_110_repair_remote_ssh_publickey_reply_timeout_seen": ( "harbor_110_repair_remote_ssh_publickey_reply_timeout_seen": (
harbor_110_publickey_auth_stalled harbor_110_publickey_auth_stalled
), ),
"harbor_110_repair_remote_ssh_server_accepts_key_then_session_timeout": (
harbor_110_session_timeout
),
}, },
"operation_boundaries": { "operation_boundaries": {
"workflow_dispatch_performed": False, "workflow_dispatch_performed": False,
@@ -251,7 +258,11 @@ def test_closure_verifier_blocks_harbor_110_publickey_auth_stalled() -> None:
module = _load_module() module = _load_module()
payload = module.build_closure_verifier( payload = module.build_closure_verifier(
readiness_text=_readiness(ready=True), readiness_text=_readiness(ready=True),
queue=_queue(no_matching=False, harbor_110_publickey_auth_stalled=True), queue=_queue(
no_matching=False,
harbor_110_publickey_auth_stalled=True,
harbor_110_session_timeout=True,
),
production_workbench=_workbench(image_current=True, governance_ready=True), production_workbench=_workbench(image_current=True, governance_ready=True),
) )
@@ -263,6 +274,12 @@ def test_closure_verifier_blocks_harbor_110_publickey_auth_stalled() -> None:
payload["readback"]["harbor_110_remote_ssh_publickey_reply_timeout_seen"] payload["readback"]["harbor_110_remote_ssh_publickey_reply_timeout_seen"]
is True is True
) )
assert (
payload["readback"][
"harbor_110_remote_ssh_server_accepts_key_then_session_timeout"
]
is True
)
assert payload["progress"]["next_blocked_step_id"] == "public_queue_runner_match" assert payload["progress"]["next_blocked_step_id"] == "public_queue_runner_match"
assert payload["ordered_steps"][2]["status"] == "blocked" assert payload["ordered_steps"][2]["status"] == "blocked"
assert "repair_110_ssh_publickey_auth_local_check" in payload["next_actions"][0] assert "repair_110_ssh_publickey_auth_local_check" in payload["next_actions"][0]

View File

@@ -349,6 +349,16 @@ def build_closure_verifier(
) )
is True is True
) )
harbor_110_remote_ssh_server_accepts_key_then_session_timeout = (
queue_readback.get(
"latest_visible_harbor_110_repair_remote_ssh_server_accepts_key_then_session_timeout"
)
is True
or queue_rollups.get(
"harbor_110_repair_remote_ssh_server_accepts_key_then_session_timeout"
)
is True
)
queue_runner_match_next_action = ( queue_runner_match_next_action = (
"run_sudo_usr_local_bin_repair_110_ssh_publickey_auth_local_check_on_110_" "run_sudo_usr_local_bin_repair_110_ssh_publickey_auth_local_check_on_110_"
"local_console_then_apply_if_metadata_only_then_rerun_public_queue_and_" "local_console_then_apply_if_metadata_only_then_rerun_public_queue_and_"
@@ -476,6 +486,9 @@ def build_closure_verifier(
"harbor_110_remote_ssh_publickey_reply_timeout_seen": ( "harbor_110_remote_ssh_publickey_reply_timeout_seen": (
harbor_110_remote_ssh_publickey_reply_timeout_seen harbor_110_remote_ssh_publickey_reply_timeout_seen
), ),
"harbor_110_remote_ssh_server_accepts_key_then_session_timeout": (
harbor_110_remote_ssh_server_accepts_key_then_session_timeout
),
"production_workbench_present": production_workbench_present, "production_workbench_present": production_workbench_present,
"production_workbench_source_count": _int(production.get("source_count")), "production_workbench_source_count": _int(production.get("source_count")),
"production_deploy_image_tag_matches_main": ( "production_deploy_image_tag_matches_main": (