public/Stop-AzureDatabricksJob.ps1
function Stop-AzureDatabricksJob { <# .SYNOPSIS Stops a running Azure Databricks job. .DESCRIPTION This function will stop an already-running Azure Databricks job by job ID. .PARAMETER Connection An object that represents an Azure Databricks API connection where you want to stop your job. .PARAMETER ClusterID The cluster ID you want to stop. .NOTES Author: Drew Furgiuele (@pittfurg), http://www.port1433.com Website: https://www.igs.com Copyright: (c) 2019 by IGS, licensed under MIT License: MIT https://opensource.org/licenses/MIT .LINK .EXAMPLE PS C:\> Stop-AzureDatabricksJob -Connection $Connection -JobID 1 Stops job id 1 on the Azure Databricks instance defined in $Connection #> Param ( [Parameter(Mandatory=$true)] [object] $Connection, [Parameter(Mandatory=$true)] [int] $RunID, [Parameter(Mandatory=$false)] [switch] $Force ) begin { $TargetURI = $Connection.BaseURI.AbsoluteUri + "api/2.0/jobs/runs/cancel" } process { $RunStatus = Get-AzureDatabricksJobRun -Connection $Connection -RunID $RunID if (($RunStatus.Status -eq "PENDING" -or $RunStatus.Status -eq "RUNNING") -or $Force) { $StopJob = New-AzureDatabricksRequest -Uri $TargetURI -AccessToken $Connection.AccessToken -RequestMethod POST -ExpectingNoReply $StopJob.AddBody("run_id","$RunID") $StopJob.Submit() $CancelResult.RequestBody $CancelledJob = New-Object AzureDatabricksCancelledJob $CancelledJob.JobID = $JobID $CancelledJob.RunID = $RunID } else { Write-Warning "Job not in a RUNNING or PENDING state; to force stop command anyway, use -Force" } } } |