private PipelineGroupModels allPipelineInstances(Username username) { CruiseConfig currentConfig = goConfigService.currentCruiseConfig(); PipelineGroups groups = currentConfig.getGroups(); PipelineInstanceModels activePipelines = filterPermissions(pipelineDao.loadActivePipelines(), username); PipelineGroupModels groupModels = new PipelineGroupModels(); for (PipelineConfig pipelineConfig : currentConfig.getAllPipelineConfigs()) { CaseInsensitiveString pipelineName = pipelineConfig.name(); for (PipelineInstanceModel activePipeline : activePipelines.findAll(CaseInsensitiveString.str(pipelineName))) { activePipeline.setTrackingTool(pipelineConfig.getTrackingTool()); activePipeline.setMingleConfig(pipelineConfig.getMingleConfig()); populatePlaceHolderStages(activePipeline); String groupName = groups.findGroupNameByPipeline(pipelineName); if (groupName == null) { throw new RuntimeException("Unable to find group find pipeline " + pipelineName); } populatePreviousStageState(activePipeline); populateLockStatus(activePipeline.getName(), username, activePipeline); boolean canForce = schedulingCheckerService.canManuallyTrigger(CaseInsensitiveString.str(pipelineName), username); PipelinePauseInfo pauseInfo = pipelinePauseService.pipelinePauseInfo(CaseInsensitiveString.str(pipelineName)); groupModels.addPipelineInstance(groupName, activePipeline, canForce, securityService.hasOperatePermissionForPipeline( username.getUsername(), CaseInsensitiveString.str(pipelineName) ), pauseInfo); } } for (PipelineConfigs group : groups) { populateMissingPipelines(username, groupModels, group); } return groupModels; }
public boolean containsPipeline(String groupName, String pipelineName) { return get(groupName).containsPipeline(pipelineName); }
private PipelineModel pipelineModelForPipelineName(String groupName, String pipelineName, boolean canForce, boolean canOperate, PipelinePauseInfo pipelinePauseInfo) { PipelineGroupModel group = get(groupName); return group.pipelineModelForPipelineName(pipelineName, canForce, canOperate, pipelinePauseInfo); }
private void updateGroupAdministrability(Username username, PipelineGroupModels groupModels) { for (PipelineGroupModel groupModel : groupModels.asList()) { if (!goConfigService.isUserAdminOfGroup(username.getUsername(), groupModel.getName())) { continue; } for (PipelineModel pipelineModel : groupModel.getPipelineModels()) { if (goConfigService.isPipelineEditable(pipelineModel.getName())) pipelineModel.updateAdministrability(true); } } }
public List<PipelineGroupModel> getActivePipelineInstance(Username username, String pipeline) { PipelineGroupModels models = allPipelineInstances(username); filterSelections(models, singlePipelineFilter(pipeline)); removeEmptyGroups(models); return models.asList(); }
public List<PipelineGroupModel> allActivePipelineInstances(Username username, PipelineSelections pipelineSelections) { PipelineGroupModels groupModels = allPipelineInstances(username); filterSelections(groupModels, pipelineSelections.defaultFilter()); removeEmptyGroups(groupModels); updateGroupAdministrability(username, groupModels); return groupModels.asList(); }
public void addPipelineInstance(String groupName, PipelineInstanceModel pipelineInstanceModel, boolean canForce, boolean canOperate, PipelinePauseInfo pipelinePauseInfo) { PipelineModel pipelineModel = pipelineModelForPipelineName(groupName, pipelineInstanceModel.getName(), canForce, canOperate, pipelinePauseInfo); pipelineModel.addPipelineInstance(pipelineInstanceModel); }
private void populateMissingPipelines(Username username, PipelineGroupModels groupModels, PipelineConfigs group) { String groupName = group.getGroup(); for (PipelineConfig pipelineConfig : group) { if (!groupModels.containsPipeline(groupName, CaseInsensitiveString.str(pipelineConfig.name()))) { PipelineModel latestPipeline = latestPipelineModel(username, CaseInsensitiveString.str(pipelineConfig.name())); if (latestPipeline != null) { groupModels.addPipelineInstance(groupName, latestPipeline.getLatestPipelineInstance(), latestPipeline.canForce(), latestPipeline.canOperate(), latestPipeline.getPausedInfo()); } } } }
private void filterSelections(PipelineGroupModels groupModels, DashboardFilter filter) { for (PipelineGroupModel groupModel : groupModels.asList()) { for (PipelineModel pipelineModel : groupModel.getPipelineModels()) { if (!filter.isPipelineVisible(new CaseInsensitiveString(pipelineModel.getName()))) { groupModels.removePipeline(groupModel, pipelineModel); } } } }