public void unlock(String pipelineName, Username username, OperationResult result) { if (canUnlock(pipelineName, username, result)) { pipelineLockService.unlock(pipelineName); result.ok("Pipeline lock released for " + pipelineName); } }
public void onConfigChange(CruiseConfig newCruiseConfig) { for (String lockedPipeline : pipelineStateDao.lockedPipelines()) { if (!newCruiseConfig.hasPipelineNamed(new CaseInsensitiveString(lockedPipeline)) || !newCruiseConfig.isPipelineLockable(lockedPipeline)) { unlock(lockedPipeline); } } }
@Override public void onEntityConfigChange(PipelineConfig pipelineConfig) { for (String lockedPipeline : pipelineStateDao.lockedPipelines()) { if (pipelineConfig.name().equals(new CaseInsensitiveString(lockedPipeline)) && !pipelineConfig.isLockable()) { unlock(lockedPipeline); break; } } } };
public void unlockIfNecessary(Pipeline pipeline, Stage stage) { StageConfig nextStage = stageOrderService.getNextStage(pipeline, stage.getName()); boolean isLastStage = nextStage == null; boolean isUnlockable = goConfigService.isUnlockableWhenFinished(pipeline.getName()); boolean nextStageIsManual = nextStage != null && nextStage.requiresApproval(); boolean pipelineIsConsideredToBeComplete = stage.isCompleted() && (!stage.passed() || nextStageIsManual); if (isLastStage || (isUnlockable && pipelineIsConsideredToBeComplete)) { pipelineLockService.unlock(pipeline.getName()); } }