public boolean isSmtpEnabled() { return currentCruiseConfig().isSmtpEnabled(); }
public List<PipelineConfig> pipelinesForFetchArtifacts(String pipelineName) { return currentCruiseConfig().pipelinesForFetchArtifacts(pipelineName); }
public boolean updateGitMaterial(String branchName, Collection<String> possibleUrls) { final CruiseConfig cruiseConfig = goConfigService.currentCruiseConfig(); Set<Material> allUniquePostCommitSchedulableMaterials = materialConfigConverter.toMaterials(cruiseConfig.getAllUniquePostCommitSchedulableMaterials()); Predicate<Material> predicate = new MaterialPredicate(branchName, possibleUrls); Set<Material> allGitMaterials = allUniquePostCommitSchedulableMaterials.stream().filter(predicate).collect(Collectors.toSet()); allGitMaterials.forEach(MaterialUpdateService.this::updateMaterial); return !allGitMaterials.isEmpty(); }
public GoMailSender createSender() { return GoSmtpMailSender.createSender(goConfigService.currentCruiseConfig().mailHost()); } }
private String getRepositoryDirectory() { ServerConfig serverConfig = goConfigService.currentCruiseConfig().server(); return String.format("%s/%s", systemEnvironment.get(COMMAND_REPOSITORY_DIRECTORY), serverConfig.getCommandRepositoryLocation()); } }
public void call(PipelineTemplateConfig pipelineTemplateConfig) { List<CaseInsensitiveString> pipelines = goConfigService.currentCruiseConfig().pipelinesAssociatedWithTemplate(pipelineTemplateConfig.name()); for (CaseInsensitiveString pipeline : pipelines) { cacheUpdateService.updateCacheForPipeline(pipeline); } } }
public boolean canTriggerManualPipeline(String pipelineName, String username, OperationResult result) { PipelineConfig pipelineConfig = goConfigService.currentCruiseConfig().pipelineConfigByName(new CaseInsensitiveString(pipelineName)); return canTriggerManualPipeline(pipelineConfig, username, result); }
private ValueStreamMap buildValueStreamMap(Material material, MaterialInstance materialInstance, Modification modification, List<PipelineConfig> downstreamPipelines, Username username) { CruiseConfig cruiseConfig = goConfigService.currentCruiseConfig(); ValueStreamMap valueStreamMap = new ValueStreamMap(material, materialInstance, modification); Map<CaseInsensitiveString, List<PipelineConfig>> pipelineToDownstreamMap = cruiseConfig.generatePipelineVsDownstreamMap(); traverseDownstream(new CaseInsensitiveString(material.getFingerprint()), downstreamPipelines, pipelineToDownstreamMap, valueStreamMap, new ArrayList<>()); addInstanceInformationToTheGraph(valueStreamMap); removeRevisionsBasedOnPermissionAndCurrentConfig(valueStreamMap, username); return valueStreamMap; }
public void onMessage(SendEmailMessage message) { CruiseConfig cruiseConfig = goConfigService.currentCruiseConfig(); if (!cruiseConfig.isMailHostConfigured()) { return; } GoMailSender mailSender = factory.createSender(); ValidationBean validationBean = mailSender.send(message.getSubject(), message.getBody(), message.getTo()); if (!validationBean.isValid()) { LOGGER.error(validationBean.getError()); } }
public PipelineInstanceModels latestInstancesForConfiguredPipelines(Username username) { PipelineInstanceModels pipelineInstances = PipelineInstanceModels.createPipelineInstanceModels(); for (PipelineConfigs group : goConfigService.currentCruiseConfig().getGroups()) { for (PipelineConfig pipelineConfig : group) { PipelineInstanceModel pipelineInstanceModel = latest(CaseInsensitiveString.str(pipelineConfig.name()), username); if (pipelineInstanceModel != null) { pipelineInstances.add(pipelineInstanceModel); } } } return pipelineInstances; }
@Override public void onEntityConfigChange(ConfigRepoConfig newConfigRepo) { this.reposConfig.remove(this.reposConfig.getConfigRepo(newConfigRepo.getId())); if(goConfigService.currentCruiseConfig().getConfigRepos().getConfigRepo(newConfigRepo.getId()) != null) { this.reposConfig.add(newConfigRepo); } notifyListeners(this.reposConfig); }
private Object flushArtifactCleanupProhibitions() { List<StageArtifactCleanupProhibited> existingEntries = (List<StageArtifactCleanupProhibited>) getHibernateTemplate().find("from StageArtifactCleanupProhibited"); HashMap<Map.Entry<String, String>, StageArtifactCleanupProhibited> persistentStateMap = new HashMap<>(); for (StageArtifactCleanupProhibited persistentState : existingEntries) { persistentState.setProhibited(false); persistentStateMap.put(new AbstractMap.SimpleEntry<>(persistentState.getPipelineName(), persistentState.getStageName()), persistentState); } List<PipelineConfig> pipelineConfigs = goConfigService.currentCruiseConfig().allPipelines(); for (PipelineConfig pipelineConfig : pipelineConfigs) { for (StageConfig stageConfig : pipelineConfig) { StageArtifactCleanupProhibited stageArtifactCleanupProhibited = persistentStateMap.get(new AbstractMap.SimpleEntry<>(CaseInsensitiveString.str(pipelineConfig.name()), CaseInsensitiveString.str(stageConfig.name()))); if (stageArtifactCleanupProhibited == null) { stageArtifactCleanupProhibited = new StageArtifactCleanupProhibited(CaseInsensitiveString.str(pipelineConfig.name()), CaseInsensitiveString.str(stageConfig.name())); } stageArtifactCleanupProhibited.setProhibited(stageConfig.isArtifactCleanupProhibited()); getHibernateTemplate().saveOrUpdate(stageArtifactCleanupProhibited); } } return null; }
public BuildCause onModifications(MaterialRevisions originalMaterialRevisions, boolean materialConfigurationChanged, MaterialRevisions previousMaterialRevisions) { if (originalMaterialRevisions == null || originalMaterialRevisions.isEmpty()) { throw new RuntimeException("Cannot find modifications, please check your SCM setting or environment."); } if (!originalMaterialRevisions.hasDependencyMaterials()) { return BuildCause.createWithModifications(originalMaterialRevisions, GoConstants.DEFAULT_APPROVED_BY); } CruiseConfig cruiseConfig = goConfigService.currentCruiseConfig(); MaterialRevisions recomputedBasedOnDependencies; if (systemEnvironment.enforceRevisionCompatibilityWithUpstream()) { recomputedBasedOnDependencies = fanInOn(originalMaterialRevisions, cruiseConfig, new CaseInsensitiveString(pipelineName)); } else { recomputedBasedOnDependencies = fanInOffTriangleDependency(originalMaterialRevisions, cruiseConfig); } if (recomputedBasedOnDependencies != null && canRunWithRecomputedRevisions(materialConfigurationChanged, previousMaterialRevisions, recomputedBasedOnDependencies)) { return BuildCause.createWithModifications(recomputedBasedOnDependencies, GoConstants.DEFAULT_APPROVED_BY); } return null; }
public Stage findStageWithIdentifier(String pipelineName, int pipelineCounter, String stageName, String stageCounter, String username, OperationResult result) { if (!goConfigService.currentCruiseConfig().hasPipelineNamed(new CaseInsensitiveString(pipelineName))) { String message = String.format("Pipeline '%s' not found", pipelineName); result.notFound("Not Found", message, HealthStateType.general(HealthStateScope.GLOBAL)); return null; } if (!securityService.hasViewPermissionForPipeline(Username.valueOf(username), pipelineName)) { result.forbidden("Unauthorized", NOT_AUTHORIZED_TO_VIEW_PIPELINE, HealthStateType.general(HealthStateScope.forPipeline(pipelineName))); return null; } Pipeline pipeline = pipelineDao.findPipelineByNameAndCounter(pipelineName, pipelineCounter); if (pipeline == null) { String message = String.format("Pipeline '%s' with counter '%s' not found", pipelineName, pipelineCounter); result.notFound("Not Found", message, HealthStateType.general(HealthStateScope.GLOBAL)); return null; } return findStageWithIdentifier(new StageIdentifier(pipelineName, pipelineCounter, stageName, stageCounter)); }
public StageInstanceModels findDetailedStageHistoryByOffset(String pipelineName, String stageName, Pagination pagination, String username, OperationResult result) { if (!goConfigService.currentCruiseConfig().hasPipelineNamed(new CaseInsensitiveString(pipelineName))) { result.notFound("Not Found", "Pipeline not found", HealthStateType.general(HealthStateScope.GLOBAL)); return null; } if (!securityService.hasViewPermissionForPipeline(Username.valueOf(username), pipelineName)) { result.forbidden("Unauthorized", NOT_AUTHORIZED_TO_VIEW_PIPELINE, HealthStateType.general(HealthStateScope.forPipeline(pipelineName))); return null; } return stageDao.findDetailedStageHistoryByOffset(pipelineName, stageName, pagination); }
public JobInstances findJobHistoryPage(String pipelineName, String stageName, String jobConfigName, Pagination pagination, String username, OperationResult result) { if (!goConfigService.currentCruiseConfig().hasPipelineNamed(new CaseInsensitiveString(pipelineName))) { result.notFound("Not Found", "Pipeline not found", HealthStateType.general(HealthStateScope.GLOBAL)); return null; } if (!securityService.hasViewPermissionForPipeline(Username.valueOf(username), pipelineName)) { result.forbidden("Unauthorized", NOT_AUTHORIZED_TO_VIEW_PIPELINE, HealthStateType.general(HealthStateScope.forPipeline(pipelineName))); return null; } return jobInstanceDao.findJobHistoryPage(pipelineName, stageName, jobConfigName, pagination.getPageSize(), pagination.getOffset()); }
public PipelineInstanceModel load(long id, Username username, OperationResult result) { PipelineInstanceModel pipeline = pipelineDao.loadHistory(id); if (pipeline == null) { result.notFound("Not Found", "Pipeline not found", HealthStateType.general(HealthStateScope.GLOBAL)); return null; } PipelineConfig pipelineConfig = goConfigService.currentCruiseConfig().pipelineConfigByName(new CaseInsensitiveString(pipeline.getName())); if (!securityService.hasViewPermissionForPipeline(username, pipeline.getName())) { result.forbidden("Forbidden", NOT_AUTHORIZED_TO_VIEW_PIPELINE, HealthStateType.general(HealthStateScope.forPipeline(pipeline.getName()))); return null; } populatePipelineInstanceModel(username, false, pipelineConfig, pipeline); return pipeline; }
public PipelineStatusModel getPipelineStatus(String pipelineName, String username, OperationResult result) { PipelineConfig pipelineConfig = goConfigService.currentCruiseConfig().getPipelineConfigByName(new CaseInsensitiveString(pipelineName)); if (pipelineConfig == null) { result.notFound("Not Found", "Pipeline not found", HealthStateType.general(HealthStateScope.GLOBAL)); return null; } if (!securityService.hasViewPermissionForPipeline(Username.valueOf(username), pipelineName)) { result.forbidden("Forbidden", NOT_AUTHORIZED_TO_VIEW_PIPELINE, HealthStateType.general(HealthStateScope.forPipeline(pipelineName))); return null; } PipelinePauseInfo pipelinePauseInfo = pipelinePauseService.pipelinePauseInfo(pipelineName); boolean isCurrentlyLocked = pipelineLockService.isLocked(pipelineName); boolean isSchedulable = schedulingCheckerService.canManuallyTrigger(pipelineConfig, username, new ServerHealthStateOperationResult()); return new PipelineStatusModel(isCurrentlyLocked, isSchedulable, pipelinePauseInfo); }
public PipelineInstanceModels loadMinimalData(String pipelineName, Pagination pagination, Username username, OperationResult result) { if (!goConfigService.currentCruiseConfig().hasPipelineNamed(new CaseInsensitiveString(pipelineName))) { result.notFound("Not Found", "Pipeline " + pipelineName + " not found", HealthStateType.general(HealthStateScope.GLOBAL)); return null; } if (!securityService.hasViewPermissionForPipeline(username, pipelineName)) { result.forbidden("Forbidden", NOT_AUTHORIZED_TO_VIEW_PIPELINE, HealthStateType.general(HealthStateScope.forPipeline(pipelineName))); return null; } PipelineInstanceModels history = pipelineDao.loadHistory(pipelineName, pagination.getPageSize(), pagination.getOffset()); for (PipelineInstanceModel pipelineInstanceModel : history) { populateMaterialRevisionsOnBuildCause(pipelineInstanceModel); populatePlaceHolderStages(pipelineInstanceModel); populateCanRunStatus(username, pipelineInstanceModel); populateStageOperatePermission(pipelineInstanceModel, username); } return history; }
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; }