public override PipelineRunStatus CancelPipeline(PipelineRunRequest request) { _logger.LogInformation("Getting SYN pipeline current status."); PipelineRun pipelineRun; pipelineRun = _pipelineRunClient.GetPipelineRun ( request.RunId ); //Defensive check PipelineNameCheck(request.PipelineName, pipelineRun.PipelineName); if (pipelineRun.Status == "InProgress" || pipelineRun.Status == "Queued") { _logger.LogInformation("Attempting to cancel SYN pipeline."); _pipelineRunClient.CancelPipelineRun ( request.RunId, isRecursive: request.RecursivePipelineCancel ); } else { _logger.LogInformation("ADF pipeline status: " + pipelineRun.Status); throw new InvalidRequestException("Target pipeline is not in a state that can be cancelled."); } //wait for cancelled state _logger.LogInformation("Checking ADF pipeline status after cancel request."); while (true) { pipelineRun = _pipelineRunClient.GetPipelineRun ( request.RunId ); _logger.LogInformation("Waiting for pipeline to cancel, current status: " + pipelineRun.Status); if (pipelineRun.Status == "Cancelled") { break; } Thread.Sleep(internalWaitDuration); } //Final return detail return(new PipelineRunStatus() { PipelineName = request.PipelineName, RunId = request.RunId, ActualStatus = pipelineRun.Status }); }
public void CancelPipelineRun(string runId) { _pipelineRunClient.CancelPipelineRun(runId); }