fix(reboot): reconcile windows99 vm target truth
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 1s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 1m0s
CD Pipeline / build-and-deploy (push) Successful in 4m46s
CD Pipeline / post-deploy-checks (push) Successful in 1m46s

This commit is contained in:
Your Name
2026-07-03 13:38:36 +08:00
parent 59e8e4b32c
commit 26663a68cf
8 changed files with 51 additions and 12 deletions

View File

@@ -112,8 +112,11 @@ _WINDOWS99_POWERED_OFF_NEXT_SAFE_ACTION = (
"build_windows99_vmware_autostart_check_mode_package_for_powered_off_aliases_"
"then_rerun_no_secret_collector_no_vm_power_change"
)
_WINDOWS99_REQUIRED_VM_ALIASES = ["111", "188", "120", "121", "112"]
_WINDOWS99_REQUIRED_VM_ALIASES = ["110", "188", "120", "121", "112"]
_WINDOWS99_EXPECTED_VMX_CANDIDATES = {
"110": [
r"D:\Documents\Virtual Machines\Ubuntu 64-bit (3)\Ubuntu 64-bit (3).vmx",
],
"111": [
r"D:\Documents\Virtual Machines\192.168.0.111_Ubuntu_64-bit\192.168.0.111_Ubuntu_64-bit.vmx",
],
@@ -1602,6 +1605,8 @@ def _build_payload(scorecard: dict[str, Any], path: Path) -> dict[str, Any]:
scorecard.get("public_maintenance_fallback")
)
windows99 = _dict(scorecard.get("windows99_vmware_autostart"))
if windows99.get("readback_present") is not True:
windows99["required_vm_aliases"] = _WINDOWS99_REQUIRED_VM_ALIASES
windows99_management = _dict(scorecard.get("windows99_management_channel"))
windows99_ssh_batch = _dict(windows99_management.get("ssh_batch"))
windows99_collector = _dict(scorecard.get("windows99_vmware_verify_collector"))
@@ -2377,7 +2382,7 @@ def _build_windows99_verify_collection_packet(
),
"no_secret_collector": windows99_collector,
"required_vm_aliases": _strings(windows99.get("required_vm_aliases"))
or ["111", "112", "120", "121", "188"],
or _WINDOWS99_REQUIRED_VM_ALIASES,
"expected_no_secret_output_fields": [
"VMRUN_PRESENT",
"VMX alias=<alias> present=<0|1>",
@@ -2588,6 +2593,9 @@ def _build_windows99_vmx_source_repair_package(
_strings(windows99.get("required_vm_aliases"))
or _WINDOWS99_REQUIRED_VM_ALIASES
)
row_aliases = _unique_strings(
[*required_aliases, *missing_vmx_aliases, *powered_off_aliases]
)
package_ready = bool(missing_vmx_aliases or powered_off_aliases)
if missing_vmx_aliases:
status = "check_mode_package_ready_windows99_vmx_source_repair_required"
@@ -2600,7 +2608,7 @@ def _build_windows99_vmx_source_repair_package(
safe_next_step = "rerun_no_secret_collector_and_reboot_slo_scorecard_verify_only"
rows: list[dict[str, Any]] = []
for alias in required_aliases:
for alias in row_aliases:
candidates = _WINDOWS99_EXPECTED_VMX_CANDIDATES.get(alias, [])
rows.append(
{