From 555e928e01c61b7e21dc45d5d0385f302d773af3 Mon Sep 17 00:00:00 2001 From: kyle Date: Thu, 8 Oct 2026 09:33:07 -0600 Subject: [PATCH] Cap WSB job history request at 100 Get-WBJob -Previous only accepts 1-100, so asking for 200 failed collector setup on every run ("The 200 argument is greater than the maximum allowed range of 100"). 100 still covers a 30-day backfill at up to 3 backups a day. The mock now enforces the same range. Co-Authored-By: Claude Opus 5.5 --- collectors/wsb/Send-WsbBackupStatus.ps1 | 5 +++-- collectors/wsb/tests/MockWsb.ps1 | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/collectors/wsb/Send-WsbBackupStatus.ps1 b/collectors/wsb/Send-WsbBackupStatus.ps1 index 3b03349..89f87d3 100644 --- a/collectors/wsb/Send-WsbBackupStatus.ps1 +++ b/collectors/wsb/Send-WsbBackupStatus.ps1 @@ -44,8 +44,9 @@ $DataDir = Split-Path -Parent $ConfigPath $LogPath = Join-Path $DataDir 'wsb-collector.log' $StatePath = Join-Path $DataDir 'wsb-collector.state.json' $MaxLogBytes = 5MB -# Covers 30 days at several backups a day -$MaxPreviousJobs = 200 +# Get-WBJob -Previous accepts at most 100. That covers a 30-day backfill at up to 3 backups a day; +# servers backing up more often only get their latest 100 runs backfilled. +$MaxPreviousJobs = 100 $Invariant = [Globalization.CultureInfo]::InvariantCulture # ---------- Helpers ---------- diff --git a/collectors/wsb/tests/MockWsb.ps1 b/collectors/wsb/tests/MockWsb.ps1 index 8689f64..cc18374 100644 --- a/collectors/wsb/tests/MockWsb.ps1 +++ b/collectors/wsb/tests/MockWsb.ps1 @@ -92,7 +92,8 @@ $global:MockWsbSummary = [pscustomobject]@{ CurrentOperationStatus = $(if ($WithRunningJob) { 'BackupInProgress' } else { 'NoOperationInProgress' }) } -function Get-WBJob { param([int]$Previous) if ($PSBoundParameters.ContainsKey('Previous')) { $global:MockWsbPrevious } else { $global:MockWsbRunning } } +# Same limit as the real cmdlet +function Get-WBJob { param([ValidateRange(1, 100)][int]$Previous) if ($PSBoundParameters.ContainsKey('Previous')) { $global:MockWsbPrevious } else { $global:MockWsbRunning } } function Get-WBSummary { $global:MockWsbSummary } function Get-WBPolicy { [pscustomobject]@{ PolicyName = 'Scheduled' } } function Get-WBSchedule { param($Policy) @($global:MockWsbSummary.NextBackupTime) }