public void pause(String pipelineName, String pauseCause, Username pausedBy, LocalizedOperationResult result) {
String pauseByUserName = pausedBy == null ? "" : pausedBy.getUsername().toString();
if (pipelineDoesNotExist(pipelineName, result) || notAuthorized(pipelineName, pauseByUserName, result)) {
return;
}
if (StringUtils.isBlank(pauseCause)) {
pauseCause = "";
}
if (isPipelinePaused(pipelineName)) {
result.conflict("Failed to pause pipeline '" +pipelineName + "'. Pipeline '" +pipelineName + "' is already paused.");
return;
}
try {
pausePipeline(pipelineName, pauseCause, pausedBy);
result.setMessage("Pipeline '" + pipelineName + "' paused successfully.");
} catch (Exception e) {
LOGGER.error("[Pipeline Pause] Failed to pause pipeline", e);
result.internalServerError("Server error occured. Check log for details.");
}
}