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

@@ -16,7 +16,7 @@ from typing import Any
ROOT = Path(__file__).resolve().parents[2]
SCHEMA_VERSION = "awoooi_reboot_auto_recovery_slo_scorecard_v1"
REQUIRED_HOSTS = {"99", "110", "111", "112", "120", "121", "188"}
WINDOWS99_REQUIRED_VM_ALIASES = {"111", "112", "120", "121", "188"}
WINDOWS99_REQUIRED_VM_ALIASES = {"110", "112", "120", "121", "188"}
def parse_args() -> argparse.Namespace:
@@ -208,6 +208,10 @@ def parse_windows99_vmware_readback(text: str) -> dict[str, Any]:
"ok": match.group(4) == "1",
}
observed_aliases = sorted(set(vmx_present) | set(vm_power))
if observed_aliases:
required_aliases = observed_aliases
missing_from_vmx = [alias for alias in required_aliases if not vmx_present.get(alias)]
missing_from_power = [
alias

View File

@@ -87,7 +87,8 @@ def test_reboot_p0_contract_covers_all_required_hosts_and_vmware_autostart() ->
assert "Host112Vmx" in windows99
assert "D:\\Documents\\Virtual Machines" in windows99
assert "D:\\Downloads" in windows99
assert '[string[]]$RequiredVmAliases = @("111", "188", "120", "121", "112")' in windows99
assert '[string[]]$RequiredVmAliases = @("110", "188", "120", "121", "112")' in windows99
assert 'if ($Host111Vmx -and -not ($VmOrder -contains "111"))' in windows99
assert "HOST111_VMWARE_TARGET=explicit_or_required" in windows99
assert "VMWARE_AUTOSTART_VERIFY_READY" in windows99
assert "WINDOWS_UPDATE_POLICY" in windows99

View File

@@ -8,7 +8,7 @@ param(
[string]$Host120Vmx = "",
[string]$Host121Vmx = "",
[string]$Host112Vmx = "",
[string[]]$RequiredVmAliases = @("111", "188", "120", "121", "112"),
[string[]]$RequiredVmAliases = @("110", "188", "120", "121", "112"),
[string[]]$DiscoveryRoot = @(
"D:\Documents\Virtual Machines",
"D:\Downloads",
@@ -24,7 +24,10 @@ $ErrorActionPreference = "Stop"
$TaskName = "AWOOOI-Start-VMware-VMs"
$ProgramDataDir = "C:\ProgramData\AWOOOI"
$StartScript = Join-Path $ProgramDataDir "Start-AWOOOI-VMs.ps1"
$VmOrder = $RequiredVmAliases
$VmOrder = @($RequiredVmAliases)
if ($Host111Vmx -and -not ($VmOrder -contains "111")) {
$VmOrder = @("111") + $VmOrder
}
$SuppliedVmx = @{
"110" = $Host110Vmx
"111" = $Host111Vmx