fix(reboot): surface windows99 console artifact blockers
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 2m13s
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
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 2m13s
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
This commit is contained in:
@@ -1471,6 +1471,7 @@ def _build_payload(scorecard: dict[str, Any], path: Path) -> dict[str, Any]:
|
||||
active_blockers = _unique_strings(
|
||||
_strings(scorecard.get("active_blockers"))
|
||||
+ _strings(public_maintenance.get("blockers"))
|
||||
+ _strings(windows99_management.get("console_artifact_blockers"))
|
||||
)
|
||||
required_checks = {
|
||||
"source_controls_present": all(source_controls.values()),
|
||||
@@ -1701,6 +1702,18 @@ def _build_payload(scorecard: dict[str, Any], path: Path) -> dict[str, Any]:
|
||||
"windows99_available_collection_channels": _strings(
|
||||
windows99_verify_collection.get("available_collection_channels")
|
||||
),
|
||||
"windows99_console_artifact_status": str(
|
||||
windows99_verify_collection.get("console_artifact_status") or "unknown"
|
||||
),
|
||||
"windows99_console_artifact_reliable": (
|
||||
windows99_verify_collection.get("console_artifact_reliable") is True
|
||||
),
|
||||
"windows99_console_artifact_blockers": _strings(
|
||||
windows99_verify_collection.get("console_artifact_blockers")
|
||||
),
|
||||
"windows99_console_artifact_safe_next_step": str(
|
||||
windows99_verify_collection.get("console_artifact_safe_next_step") or ""
|
||||
),
|
||||
"windows99_host99_reachable": (
|
||||
windows99_verify_collection["host99_reachable"] is True
|
||||
),
|
||||
@@ -1864,6 +1877,18 @@ def _build_payload(scorecard: dict[str, Any], path: Path) -> dict[str, Any]:
|
||||
"windows99_available_collection_channels": rollups[
|
||||
"windows99_available_collection_channels"
|
||||
],
|
||||
"windows99_console_artifact_status": rollups[
|
||||
"windows99_console_artifact_status"
|
||||
],
|
||||
"windows99_console_artifact_reliable": rollups[
|
||||
"windows99_console_artifact_reliable"
|
||||
],
|
||||
"windows99_console_artifact_blockers": rollups[
|
||||
"windows99_console_artifact_blockers"
|
||||
],
|
||||
"windows99_console_artifact_safe_next_step": rollups[
|
||||
"windows99_console_artifact_safe_next_step"
|
||||
],
|
||||
"windows99_remote_execution_channel_ready": rollups[
|
||||
"windows99_remote_execution_channel_ready"
|
||||
],
|
||||
@@ -2089,6 +2114,15 @@ def _build_windows99_verify_collection_packet(
|
||||
windows99_management.get("local_console_channel_reachable") is True
|
||||
)
|
||||
console_channels = _strings(windows99_management.get("console_collection_channels"))
|
||||
console_artifact_status = str(
|
||||
windows99_management.get("console_artifact_status") or "unknown"
|
||||
)
|
||||
console_artifact_reliable = (
|
||||
windows99_management.get("console_artifact_reliable") is True
|
||||
)
|
||||
console_artifact_blockers = _strings(
|
||||
windows99_management.get("console_artifact_blockers")
|
||||
)
|
||||
collector_present = windows99_collector.get("readback_present") is True
|
||||
collector_status = str(windows99_collector.get("status") or "unknown")
|
||||
collector_ssh_ready = (
|
||||
@@ -2106,6 +2140,9 @@ def _build_windows99_verify_collection_packet(
|
||||
for blocker in _strings(windows99_collector.get("blockers")):
|
||||
if blocker not in collection_blockers:
|
||||
collection_blockers.append(blocker)
|
||||
for blocker in console_artifact_blockers:
|
||||
if blocker not in collection_blockers:
|
||||
collection_blockers.append(blocker)
|
||||
if not host99_uptime_known:
|
||||
collection_blockers.append("windows99_uptime_unknown")
|
||||
available_channels: list[str] = []
|
||||
@@ -2144,6 +2181,12 @@ def _build_windows99_verify_collection_packet(
|
||||
)
|
||||
),
|
||||
"available_collection_channels": available_channels,
|
||||
"console_artifact_status": console_artifact_status,
|
||||
"console_artifact_reliable": console_artifact_reliable,
|
||||
"console_artifact_blockers": console_artifact_blockers,
|
||||
"console_artifact_safe_next_step": str(
|
||||
windows99_management.get("console_artifact_safe_next_step") or ""
|
||||
),
|
||||
"no_secret_collector_readback_present": collector_present,
|
||||
"no_secret_collector_status": collector_status,
|
||||
"no_secret_collector_safe_next_step": str(
|
||||
@@ -2278,6 +2321,9 @@ def _reboot_sop_current_phase(active_blockers: list[str], can_claim_slo: bool) -
|
||||
"windows99_vmware_autostart_config_not_ready",
|
||||
"windows99_vmware_guest_power_not_ready",
|
||||
"windows99_update_no_auto_reboot_policy_not_ready",
|
||||
"windows99_console_clipboard_unreliable",
|
||||
"windows99_console_focus_unreliable",
|
||||
"windows99_console_verify_output_truncated",
|
||||
}
|
||||
if any(blocker in host_boot_blockers for blocker in active_blockers):
|
||||
return "host_boot_detection_blocked"
|
||||
@@ -2329,6 +2375,9 @@ def _reboot_sop_primary_blocker(active_blockers: list[str]) -> str:
|
||||
"windows99_vmware_autostart_config_not_ready",
|
||||
"windows99_vmware_guest_power_not_ready",
|
||||
"windows99_update_no_auto_reboot_policy_not_ready",
|
||||
"windows99_console_clipboard_unreliable",
|
||||
"windows99_console_focus_unreliable",
|
||||
"windows99_console_verify_output_truncated",
|
||||
"public_route_raw_5xx_without_maintenance_fallback",
|
||||
"public_route_unreachable_without_external_l1_fallback",
|
||||
"public_maintenance_fallback_runtime_readback_missing",
|
||||
@@ -2450,6 +2499,15 @@ def _active_blocker_action_row(
|
||||
"restore_windows99_no_secret_management_channel_or_collect_local_"
|
||||
"console_verify_readback_then_rerun_reboot_scorecard_no_reboot"
|
||||
)
|
||||
elif blocker in {
|
||||
"windows99_console_clipboard_unreliable",
|
||||
"windows99_console_focus_unreliable",
|
||||
"windows99_console_verify_output_truncated",
|
||||
}:
|
||||
next_safe_action = (
|
||||
"stop_unreliable_rdp_clipboard_path_and_use_authorized_no_secret_"
|
||||
"management_channel_or_validated_console_stdout_artifact"
|
||||
)
|
||||
post_verifier = (
|
||||
"bash scripts/reboot-recovery/collect-windows99-vmware-verify.sh "
|
||||
"--check && rerun_reboot_auto_recovery_slo_scorecard"
|
||||
|
||||
Reference in New Issue
Block a user