fix(reboot): surface windows99 vmx execution readiness
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-03 12:01:51 +08:00
parent a7ee6d926e
commit df42c32b22
3 changed files with 103 additions and 1 deletions

View File

@@ -37,6 +37,8 @@ def _with_ui_counts(
missing_vmx_aliases = _strings(payload.get("missing_vmx_aliases"))
powered_off_aliases = _strings(payload.get("powered_off_aliases"))
readback = _dict(scorecard.get("readback"))
windows99_management = _dict(scorecard.get("windows99_management_channel"))
ssh_batch = _dict(windows99_management.get("ssh_batch"))
payload["controlled_restore_required_count"] = len(missing_vmx_aliases)
payload["powered_off_count"] = len(powered_off_aliases)
payload["scorecard_status"] = str(scorecard.get("status") or "unknown")
@@ -44,6 +46,46 @@ def _with_ui_counts(
payload["collector_status"] = str(
readback.get("windows99_no_secret_collector_status") or "unknown"
)
payload["collector_readback_present"] = (
readback.get("windows99_no_secret_collector_readback_present") is True
)
payload["collector_ssh_batchmode_auth_ready"] = (
readback.get("windows99_no_secret_collector_ssh_batchmode_auth_ready")
is True
)
payload["collector_remote_verify_attempted"] = (
readback.get("windows99_no_secret_collector_remote_verify_attempted")
is True
)
payload["collector_safe_next_step"] = str(
readback.get("windows99_no_secret_collector_safe_next_step") or ""
)
payload["management_channel_ready"] = (
windows99_management.get("remote_execution_channel_ready") is True
)
payload["can_collect_vmware_verify_without_secret"] = (
windows99_management.get("can_collect_vmware_verify_without_secret") is True
)
payload["ssh_batch_ready"] = ssh_batch.get("ready") is True
payload["ssh_batch_status"] = str(ssh_batch.get("status") or "unknown")
payload["winrm_http_open"] = windows99_management.get("winrm_http_open") is True
payload["winrm_https_open"] = windows99_management.get("winrm_https_open") is True
payload["local_console_channel_reachable"] = (
windows99_management.get("local_console_channel_reachable") is True
)
payload["console_collection_channels"] = _strings(
windows99_management.get("console_collection_channels")
)
payload["collector_management_channel_conflict"] = bool(
payload["collector_ssh_batchmode_auth_ready"]
and not payload["management_channel_ready"]
)
payload["effective_check_mode_execution_ready"] = bool(
payload.get("package_ready") is True
and payload.get("check_mode_allowed_by_this_package") is True
and payload["management_channel_ready"]
and not payload["collector_management_channel_conflict"]
)
return payload

View File

@@ -23,7 +23,27 @@ def _scorecard() -> dict:
"readback": {
"windows99_no_secret_collector_status": (
"collected_windows99_vmware_verify_stdout"
)
),
"windows99_no_secret_collector_readback_present": True,
"windows99_no_secret_collector_ssh_batchmode_auth_ready": True,
"windows99_no_secret_collector_remote_verify_attempted": True,
"windows99_no_secret_collector_safe_next_step": (
"commit_no_secret_verify_artifact_then_rerun_reboot_auto_"
"recovery_slo_scorecard"
),
},
"windows99_management_channel": {
"remote_execution_channel_ready": False,
"can_collect_vmware_verify_without_secret": False,
"winrm_http_open": False,
"winrm_https_open": False,
"local_console_channel_reachable": True,
"console_collection_channels": ["rdp_console", "hyperv_vmconnect"],
"ssh_batch": {
"checked": True,
"ready": False,
"status": "permission_denied",
},
},
}
@@ -94,6 +114,27 @@ def test_windows99_vmx_source_repair_package_builder_is_check_mode_only() -> Non
assert payload["operation_boundaries"]["secret_value_read"] is False
assert payload["operation_boundaries"]["remote_write_performed"] is False
assert payload["operation_boundaries"]["vm_power_change_performed"] is False
assert payload["collector_status"] == "collected_windows99_vmware_verify_stdout"
assert payload["collector_readback_present"] is True
assert payload["collector_ssh_batchmode_auth_ready"] is True
assert payload["collector_remote_verify_attempted"] is True
assert payload["collector_safe_next_step"] == (
"commit_no_secret_verify_artifact_then_rerun_reboot_auto_recovery_"
"slo_scorecard"
)
assert payload["management_channel_ready"] is False
assert payload["can_collect_vmware_verify_without_secret"] is False
assert payload["ssh_batch_ready"] is False
assert payload["ssh_batch_status"] == "permission_denied"
assert payload["winrm_http_open"] is False
assert payload["winrm_https_open"] is False
assert payload["local_console_channel_reachable"] is True
assert payload["console_collection_channels"] == [
"rdp_console",
"hyperv_vmconnect",
]
assert payload["collector_management_channel_conflict"] is True
assert payload["effective_check_mode_execution_ready"] is False
assert "read_windows_password_or_secret" in payload["forbidden_actions"]
assert "vm_power_change" in payload["forbidden_actions"]
@@ -138,6 +179,10 @@ def test_windows99_vmx_source_repair_package_endpoint_returns_readback(
assert payload["redacted_public_display_only"] is True
assert payload["check_mode_probe_commands_executable"] is False
assert payload["internal_console_package_required_for_execution"] is True
assert payload["management_channel_ready"] is False
assert payload["ssh_batch_status"] == "permission_denied"
assert payload["collector_management_channel_conflict"] is True
assert payload["effective_check_mode_execution_ready"] is False
assert "192.168.0." not in response.text
assert "host:dev-a_Ubuntu_64-bit" in response.text
vm_rows = {row["alias"]: row for row in payload["vm_rows"]}