fix(api): accept combined 110 local console receipt
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / build-and-deploy (push) Has been cancelled
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / tests (push) Has been cancelled

This commit is contained in:
Your Name
2026-07-01 21:33:09 +08:00
parent 95a68a170d
commit d045db3e9f
2 changed files with 53 additions and 7 deletions

View File

@@ -24,6 +24,7 @@ def validate_harbor_registry_controlled_recovery_receipt(
ssh_diagnosis_output = _text(
receipt_payload.get("ssh_publickey_diagnosis_output")
)
local_console_output = _text(receipt_payload.get("local_console_recovery_output"))
ssh_local_output = _text(receipt_payload.get("ssh_local_repair_output"))
watchdog_check_output = _text(receipt_payload.get("watchdog_check_output"))
watchdog_repair_output = _text(receipt_payload.get("watchdog_repair_output"))
@@ -34,14 +35,24 @@ def validate_harbor_registry_controlled_recovery_receipt(
receipt_payload.get("non110_runner_readiness_output")
)
ssh_diagnosis = _parse_ssh_publickey_diagnosis_output(ssh_diagnosis_output)
ssh_local = _parse_ssh_local_repair_output(ssh_local_output)
watchdog_check = _parse_watchdog_output(watchdog_check_output)
watchdog_repair = _parse_watchdog_output(watchdog_repair_output)
controlled_cd_lane = _parse_controlled_cd_lane_readiness_output(
controlled_cd_lane_output
ssh_diagnosis = _parse_ssh_publickey_diagnosis_output(
_receipt_output(ssh_diagnosis_output, local_console_output)
)
ssh_local = _parse_ssh_local_repair_output(
_receipt_output(ssh_local_output, local_console_output)
)
watchdog_check = _parse_watchdog_output(
_receipt_output(watchdog_check_output, local_console_output)
)
watchdog_repair = _parse_watchdog_output(
_receipt_output(watchdog_repair_output, local_console_output)
)
controlled_cd_lane = _parse_controlled_cd_lane_readiness_output(
_receipt_output(controlled_cd_lane_output, local_console_output)
)
non110_runner = _parse_non110_runner_readiness_output(
_receipt_output(non110_runner_output, local_console_output)
)
non110_runner = _parse_non110_runner_readiness_output(non110_runner_output)
verifier = _post_apply_verifier(receipt_payload)
gitea_queue = _gitea_queue_readback(
receipt_payload.get("gitea_actions_queue_readback")
@@ -105,6 +116,7 @@ def validate_harbor_registry_controlled_recovery_receipt(
ssh_diagnosis_output
),
"ssh_local_repair_output": _text_stats(ssh_local_output),
"local_console_recovery_output": _text_stats(local_console_output),
"watchdog_check_output": _text_stats(watchdog_check_output),
"watchdog_repair_output": _text_stats(watchdog_repair_output),
"controlled_cd_lane_readiness_output": _text_stats(
@@ -2142,6 +2154,12 @@ def _text(value: Any) -> str:
return value if isinstance(value, str) else ""
def _receipt_output(specific_output: str, local_console_output: str) -> str:
if specific_output.strip():
return specific_output
return local_console_output
def _text_stats(value: str) -> dict[str, Any]:
return {
"provided": bool(value),

View File

@@ -147,6 +147,34 @@ def test_harbor_recovery_receipt_surfaces_ssh_local_metadata_blockers() -> None:
assert "secret-token-like-content" not in str(payload)
def test_harbor_recovery_receipt_accepts_combined_local_console_output() -> None:
payload = validate_harbor_registry_controlled_recovery_receipt(
{
"local_console_recovery_output": "\n".join(
[
"AWOOOI_110_CONTROL_PATH_AND_HARBOR_LOCAL_RECOVERY mode=check requested_mode=--check target_user=wooo",
"operation_boundary_secret_value_read=false",
"operation_boundary_docker_daemon_restart_performed=false",
_ssh_local_apply_output(),
]
)
}
)
assert payload["status"] == (
"ssh_local_repair_receipt_waiting_harbor_watchdog_check"
)
assert payload["readback"]["ssh_local_repair"]["receipt_seen"] is True
assert payload["readback"]["ssh_local_repair"][
"control_channel_metadata_ready"
] is True
assert payload["input_redaction"]["ssh_local_repair_output"]["provided"] is False
assert payload["input_redaction"]["local_console_recovery_output"][
"provided"
] is True
assert payload["input_redaction"]["raw_output_returned"] is False
def test_harbor_recovery_receipt_routes_unhealthy_check_to_repair_once() -> None:
payload = validate_harbor_registry_controlled_recovery_receipt(
{