public/Suspend-UnraidParityCheck.ps1
|
function Suspend-UnraidParityCheck { <# .SYNOPSIS Pauses a parity check. .PARAMETER Array Array object (auto-retrieves if not provided). .PARAMETER Session Unraid session (defaults to current session). .EXAMPLE Suspend-UnraidParityCheck #> [CmdletBinding(SupportsShouldProcess)] [OutputType('void')] param( [Parameter(ValueFromPipeline)] [UnraidArray]$Array, [Parameter()] [UnraidSession]$Session = $script:DefaultUnraidSession ) process { if (!$Array) { $Array = Get-UnraidArray } # Can only pause a check thats currently running, will throw api error otherwise if ($Array.ParityStatus -ne "RUNNING") { Write-Error "No running parity check found to pause." return } if ($PSCmdlet.ShouldProcess("Unraid Array", "Pause Parity Check")) { $gqlQuery = @" mutation PauseCheck { parityCheck { pause } } "@ $queryResult = Invoke-UnraidQuery -Query $gqlQuery -Session $Session if ($queryResult) { Write-Information "Parity check paused: Progress saved." -InformationAction Continue } } } } |