public/Stop-UnraidParityCheck.ps1
|
function Stop-UnraidParityCheck { <# .SYNOPSIS Cancels a parity check. .PARAMETER Array Array object (auto-retrieves if not provided). .PARAMETER Session Unraid session (defaults to current session). .EXAMPLE Stop-UnraidParityCheck #> [CmdletBinding(SupportsShouldProcess)] [OutputType('void')] param( [Parameter(ValueFromPipeline)] [UnraidArray]$Array, [Parameter()] [UnraidSession]$Session = $script:DefaultUnraidSession ) process { if (!$Array) { $Array = Get-UnraidArray } if ($Array.ParityStatus -notin @("RUNNING", "PAUSED")) { Write-Error "No active parity check found to cancel." return } if ($PSCmdlet.ShouldProcess("Unraid Array", "Cancel Parity Check")) { $gqlQuery = @" mutation CancelCheck { parityCheck { cancel } } "@ $result = Invoke-UnraidQuery -Query $gqlQuery -Session $Session if ($result) { Write-Information "Parity check canceled: Progress discarded." -InformationAction Continue } } } } |