diff --git a/scripts/reboot-recovery/agent99-remote-atomic-deploy-receiver.ps1 b/scripts/reboot-recovery/agent99-remote-atomic-deploy-receiver.ps1 index 3f9803aec..e5aff93fc 100644 --- a/scripts/reboot-recovery/agent99-remote-atomic-deploy-receiver.ps1 +++ b/scripts/reboot-recovery/agent99-remote-atomic-deploy-receiver.ps1 @@ -259,12 +259,13 @@ function Invoke-AgentLivePreflight { try { $payload = $match.Groups["json"].Value | ConvertFrom-Json } catch { $payload = $null } } $summary = if ($payload -and $payload.PSObject.Properties["summary"]) { $payload.summary } else { $null } - [string[]]$blockingReasons = if ($processResult.timedOut) { - @("preflight_process_timeout") - } elseif ($summary) { - @($summary.blockingReasons | ForEach-Object { [string]$_ }) - } else { - @("preflight_output_unparseable") + [string[]]$blockingReasons = @() + if ($processResult.timedOut) { + $blockingReasons = @("preflight_process_timeout") + } elseif (-not $summary) { + $blockingReasons = @("preflight_output_unparseable") + } elseif ($null -ne $summary.blockingReasons) { + $blockingReasons = @($summary.blockingReasons | ForEach-Object { [string]$_ }) } [string[]]$externalBlockingReasons = @($blockingReasons | Where-Object { $_ -eq "self_health_not_ok" }) [string[]]$runtimePlaneBlockingReasons = @($blockingReasons | Where-Object { $_ -ne "self_health_not_ok" }) diff --git a/scripts/reboot-recovery/tests/test_agent99_remote_atomic_deploy_transport_contract.py b/scripts/reboot-recovery/tests/test_agent99_remote_atomic_deploy_transport_contract.py index 81a229433..0eb6e16cd 100644 --- a/scripts/reboot-recovery/tests/test_agent99_remote_atomic_deploy_transport_contract.py +++ b/scripts/reboot-recovery/tests/test_agent99_remote_atomic_deploy_transport_contract.py @@ -502,6 +502,9 @@ def test_receiver_scopes_deploy_health_separately_from_external_asset_health() - assert '[int]$summary.alertRunningCount -eq 0' in preflight assert '[int]$summary.pendingCommandCount -eq 0' in preflight assert '$runtimePlaneBlockingReasons.Count -eq 0' in preflight + assert '[string[]]$blockingReasons = @()' in preflight + assert '$null -ne $summary.blockingReasons' in preflight + assert '$summary.blockingReasons | ForEach-Object' in preflight assert 'externalDegraded = [bool](' in preflight