From ed1d24ee4f81e6531b2e902dd85294b302f41f4e Mon Sep 17 00:00:00 2001 From: StuartFerguson Date: Wed, 14 Oct 2026 15:42:49 +0100 Subject: [PATCH 1/2] remove scavenge scheduled task and daily check --- ScheduledTasks/AutoScavenge/Scavenge.xml | Bin 3830 -> 0 bytes ScheduledTasks/AutoScavenge/scavenge.ps1 | 36 ------------------ .../daily-support-check.json | 5 --- 3 files changed, 41 deletions(-) delete mode 100644 ScheduledTasks/AutoScavenge/Scavenge.xml delete mode 100644 ScheduledTasks/AutoScavenge/scavenge.ps1 diff --git a/ScheduledTasks/AutoScavenge/Scavenge.xml b/ScheduledTasks/AutoScavenge/Scavenge.xml deleted file mode 100644 index 71db543131295047eef3b387008f9d91cdc323e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3830 zcmbW4-EJC55QXb{rF{qFdoY-d9a)43$N913Y^($)H@@-01S12s7`%j+-`($2Gt4xD z*-3<8hOX*URi~?~y8r#BW3TOpO>JT|``Z$mTWVu_u$jHG18Z5snmlVrW;S4ah;(Kn zmtI@n-dP>3V{~3y*M7I(ti$LnDEH4I9ywyLIzv;I?rg#5(N67MSzm9#z$_RuM`5cV} z?~49{?|0rpOwtYd=dP15E;~m=UiW96_ZE>i?Ikg^?8JXx;AhL_FOk2%-l63PVk<}P z*%Q|9usH|)3s^mSj~{>X`_(?$jr;h7{kh}B`Z3luab19N1I~aMT3M}H;xjX8Hb-7n z=RxZ`hozC@DPOiZdV|G@TO7K#v3{%_SpDLwGw1h=_@D4K%v|l^xdp>o>F}!<_Mv34 z=6t`!%B}t7o({32^?zD3v@I*o7O%?CA#)V#nXT*_&xE`$N0{f%3cfy(S^IS}Rx&15 zFVs_u-El=%(unPKB3;Uy%w~| zNbUY(>VT?)sze=Gi%*mPZDzF57K%ostw>{AWtK157bCtiI9U;|D$o^Cr+k)PGlq_{ zORtRf+4tBbD5?xv`47IMmC>q%JgXQln`UCg<3N9wd2e8ydK0>03novg*n35MiixNk94tnbOHUW8A zs5%$y>rdD_L#im0J7f1Mt}efZ5PP9o_W%pB`JT7HSQYC(H#4@{gWC}G2V$JFFZv#( z`m?I3Vvb|2HY2to4~4#<5-B5RJMyth++oj$o>py6Y$xQiIGd0yVp2J>SnsF%3RZsw zA@)JFMVY)m^Rs>s)?6NE^VF%fyH~ctyY!0I1FAZIx?#LHXPe`FnnhggvCO~yadqH0 z%cy(><-<8%>GW5QuG);)pY48LwbysNE)HQ>S-8!IYGy8rEtWGQV`Lj;pJt5t4LO2UN3bkr<)wOAo%-_NJyLfVb=QPA!f3d0gr0G`j#Rx_@-qL$E?4uj zr%pgR3rPRn2KxY(PPqjv;Alp-&<$$f|8>{V-7B*tE;G66fo_57!8eSSxzJrCzE?ER zOF7FNxCiQhDc)aWQ8&x&`<;4-=1=^-qv~@?w&{%2Mpv1zi@zev#k|Z{G|VjKNswtg IyOnnBKasOqd;kCd diff --git a/ScheduledTasks/AutoScavenge/scavenge.ps1 b/ScheduledTasks/AutoScavenge/scavenge.ps1 deleted file mode 100644 index a730b8b..0000000 --- a/ScheduledTasks/AutoScavenge/scavenge.ps1 +++ /dev/null @@ -1,36 +0,0 @@ -param( - [string]$BaseUrl = "http://localhost:2113", - [string]$Username, - [System.Security.SecureString]$Password, - [System.Management.Automation.PSCredential]$Credential -) - -$BaseUrl = $BaseUrl.TrimEnd('/') -$uri = "$BaseUrl/admin/scavenge" - -$headers = @{ - Accept = 'application/json' - 'Content-Type' = 'application/json' -} - -if ($Credential) { - $pair = "$($Credential.UserName)`:$($Credential.GetNetworkCredential().Password)" - $bytes = [System.Text.Encoding]::ASCII.GetBytes($pair) - $encoded = [Convert]::ToBase64String($bytes) - $headers['Authorization'] = "Basic $encoded" -} -elseif (-not [string]::IsNullOrWhiteSpace($Username) -and -not [string]::IsNullOrWhiteSpace($Password)) { - $usernameCredential = [System.Management.Automation.PSCredential]::new($Username, $Password) - $pair = "$($usernameCredential.UserName)`:$($usernameCredential.GetNetworkCredential().Password)" - $bytes = [System.Text.Encoding]::ASCII.GetBytes($pair) - $encoded = [Convert]::ToBase64String($bytes) - $headers['Authorization'] = "Basic $encoded" -} - -try { - Invoke-RestMethod -Method Post -Uri $uri -Headers $headers -} -catch { - Write-Error "POST to $uri failed: $($_.Exception.Message)" - exit 1 -} diff --git a/ScheduledTasks/DailySupportCheck/daily-support-check.json b/ScheduledTasks/DailySupportCheck/daily-support-check.json index 1f2989b..1984d75 100644 --- a/ScheduledTasks/DailySupportCheck/daily-support-check.json +++ b/ScheduledTasks/DailySupportCheck/daily-support-check.json @@ -39,11 +39,6 @@ "Name": "Replay Parked Queues", "Path": "\\", "ExpectedRunIntervalMinutes": 1440 - }, - { - "Name": "Scavenge", - "Path": "\\", - "ExpectedRunIntervalMinutes": 10080 } ] }, From c6fcd6b0ad69e3922a1cebdfb1a033c13dffacc3 Mon Sep 17 00:00:00 2001 From: StuartFerguson Date: Wed, 14 Oct 2026 15:46:47 +0100 Subject: [PATCH 2/2] fix powershell tests --- .github/workflows/pullrequest.yml | 3 +- ScheduledTasks/Tests/Scavenge.Tests.ps1 | 102 ------------------------ 2 files changed, 1 insertion(+), 104 deletions(-) delete mode 100644 ScheduledTasks/Tests/Scavenge.Tests.ps1 diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml index 64aba97..050dfb1 100644 --- a/.github/workflows/pullrequest.yml +++ b/.github/workflows/pullrequest.yml @@ -51,8 +51,7 @@ jobs: - name: Run Pester Tests shell: pwsh run: | - Invoke-Pester -Path @( - './ScheduledTasks/Tests' + Invoke-Pester -Path @( './ScheduledTasks/ReplayParkedQueue/Tests' './ScheduledTasks/SettlementProcessing/Tests' './ScheduledTasks/DailySupportCheck/Tests' diff --git a/ScheduledTasks/Tests/Scavenge.Tests.ps1 b/ScheduledTasks/Tests/Scavenge.Tests.ps1 deleted file mode 100644 index c023ac5..0000000 --- a/ScheduledTasks/Tests/Scavenge.Tests.ps1 +++ /dev/null @@ -1,102 +0,0 @@ -BeforeAll { - $script:scriptUnderTest = (Resolve-Path (Join-Path (Join-Path (Split-Path $PSScriptRoot -Parent) 'AutoScavenge') 'scavenge.ps1')).Path -} - -Describe 'AutoScavenge\scavenge.ps1' { - It 'posts to /admin/scavenge after trimming a trailing slash from BaseUrl' { - $expectedUri = 'http://localhost:2113/admin/scavenge' - $captured = [pscustomobject]@{ - Count = 0 - Uri = $null - Headers = $null - } - - Mock Invoke-RestMethod { - $captured.Count++ - $captured.Uri = $Uri - $captured.Headers = $Headers - @{ status = 'ok' } - } -ParameterFilter { - $Method -eq 'Post' - } - - & $script:scriptUnderTest -BaseUrl 'http://localhost:2113/' - - $captured.Count | Should -Be 1 - $captured.Uri | Should -Be $expectedUri - $captured.Headers.Accept | Should -Be 'application/json' - $captured.Headers.'Content-Type' | Should -Be 'application/json' - $captured.Headers.ContainsKey('Authorization') | Should -BeFalse - } - - It 'adds a Basic Authorization header when username and password are both provided' { - $expectedUri = 'http://localhost:2113/admin/scavenge' - $expectedAuth = 'Basic ' + [Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes('alice:secret')) - $captured = [pscustomobject]@{ - Count = 0 - Uri = $null - Headers = $null - } - - Mock Invoke-RestMethod { - $captured.Count++ - $captured.Uri = $Uri - $captured.Headers = $Headers - @{ status = 'ok' } - } -ParameterFilter { - $Method -eq 'Post' - } - - & $script:scriptUnderTest -BaseUrl 'http://localhost:2113' -Username 'alice' -Password (ConvertTo-SecureString 'secret' -AsPlainText -Force) - - $captured.Count | Should -Be 1 - $captured.Uri | Should -Be $expectedUri - $captured.Headers.Authorization | Should -Be $expectedAuth - } - - It 'does not add an Authorization header when only one credential is supplied' { - $captured = [pscustomobject]@{ - Count = 0 - Uri = $null - Headers = $null - } - - Mock Invoke-RestMethod { - $captured.Count++ - $captured.Uri = $Uri - $captured.Headers = $Headers - @{ status = 'ok' } - } -ParameterFilter { - $Method -eq 'Post' - } - - & $script:scriptUnderTest -BaseUrl 'http://localhost:2113' -Username 'alice' - - $captured.Count | Should -Be 1 - $captured.Uri | Should -Be 'http://localhost:2113/admin/scavenge' - $captured.Headers.ContainsKey('Authorization') | Should -BeFalse - } - - It 'does not add an Authorization header when only a password is supplied' { - $captured = [pscustomobject]@{ - Count = 0 - Uri = $null - Headers = $null - } - - Mock Invoke-RestMethod { - $captured.Count++ - $captured.Uri = $Uri - $captured.Headers = $Headers - @{ status = 'ok' } - } -ParameterFilter { - $Method -eq 'Post' - } - - & $script:scriptUnderTest -BaseUrl 'http://localhost:2113' -Password (ConvertTo-SecureString 'secret' -AsPlainText -Force) - - $captured.Count | Should -Be 1 - $captured.Uri | Should -Be 'http://localhost:2113/admin/scavenge' - $captured.Headers.ContainsKey('Authorization') | Should -BeFalse - } -}