public List<PipelineConfig> getAllPipelineConfigs() { return cruiseConfig().getAllPipelineConfigs(); }
public void onConfigChange(CruiseConfig newCruiseConfig) { unscheduleAllJobs(); scheduleAllJobs(newCruiseConfig.getAllPipelineConfigs()); }
private void primeForMaterialValidations() { CruiseConfig cruiseConfig = getCruiseConfig(); fingerprintToMaterials = new HashMap<>(); for (PipelineConfig pipelineConfig : cruiseConfig.getAllPipelineConfigs()) { for (MaterialConfig material : pipelineConfig.materialConfigs()) { String fingerprint = material.getFingerprint(); if (!fingerprintToMaterials.containsKey(fingerprint)) { fingerprintToMaterials.put(fingerprint, new MaterialConfigs()); } MaterialConfigs materialsForFingerprint = fingerprintToMaterials.get(fingerprint); materialsForFingerprint.add(material); } } } }
private boolean isValidForDelete(CruiseConfig preprocessedConfig) { List<PipelineConfig> allPipelineConfigs = preprocessedConfig.getAllPipelineConfigs(); List<JobConfigIdentifier> usedByPipelines = new ArrayList<>(); for (PipelineConfig pipelineConfig : allPipelineConfigs) { populateDups(usedByPipelines, pipelineConfig); } List<String> pipelineNames = new ArrayList<>(); for (JobConfigIdentifier usedByPipeline : usedByPipelines) { String toString = usedByPipeline.toString(); pipelineNames.add(toString); } if (!usedByPipelines.isEmpty()) { result.unprocessableEntity(cannotDeleteResourceBecauseOfDependentPipelines(getObjectDescriptor().toLowerCase(), profile.getId(), pipelineNames)); throw new GoConfigInvalidException(preprocessedConfig, String.format("The %s '%s' is being referenced by pipeline(s): %s.", getObjectDescriptor().toLowerCase(), profile.getId(), StringUtils.join(pipelineNames, ", "))); } return true; }
@Override public boolean isValid(CruiseConfig preprocessedConfig) { List<PipelineConfig> allPipelineConfigs = preprocessedConfig.getAllPipelineConfigs(); List<Map<JobConfigIdentifier, List<PluggableArtifactConfig>>> usedByPipelines = new ArrayList<>(); for (PipelineConfig pipelineConfig : allPipelineConfigs) { populateReferences(usedByPipelines, pipelineConfig); } List<String> pipelineNames = new ArrayList<>(); for (Map<JobConfigIdentifier, List<PluggableArtifactConfig>> jobConfigIdentifierListMap : usedByPipelines) { for (JobConfigIdentifier jobConfigIdentifier : jobConfigIdentifierListMap.keySet()) { String toString = jobConfigIdentifier.toString(); pipelineNames.add(toString); } } if (!usedByPipelines.isEmpty()) { result.unprocessableEntity(cannotDeleteResourceBecauseOfDependentPipelines(getObjectDescriptor().toLowerCase(), profile.getId(), pipelineNames)); throw new GoConfigInvalidException(preprocessedConfig, String.format("The %s '%s' is being referenced by pipeline(s): %s.", getObjectDescriptor().toLowerCase(), profile.getId(), StringUtils.join(pipelineNames, ", "))); } return true; }
break; case MATERIAL: for (PipelineConfig pc : config.getAllPipelineConfigs()) { for (MaterialConfig mc : pc.materialConfigs()) { String scope = HealthStateScope.forMaterialConfig(mc).getScope(); for (PipelineConfig pc : config.getAllPipelineConfigs()) { for (MaterialConfig mc : pc.materialConfigs()) { String scope = HealthStateScope.forMaterialConfigUpdate(mc).getScope();
@Override public boolean isValid(CruiseConfig preprocessedConfig) { for (PipelineConfig pipeline : preprocessedConfig.getAllPipelineConfigs()) { if(pipeline.materialConfigs().hasDependencyMaterial(pipelineConfig)){ this.result.unprocessableEntity("Cannot delete pipeline '" + pipelineConfig.name() + "' as pipeline '" + String.format("%s (%s)", pipeline.name(), pipeline.getOriginDisplayName()) + "' depends on it"); return false; } } for (EnvironmentConfig environment : preprocessedConfig.getEnvironments()) { if(environment.getPipelineNames().contains(pipelineConfig.name())){ this.result.unprocessableEntity("Cannot delete pipeline '" + pipelineConfig.name() + "' as it is present in environment '" + environment.name() + "'."); return false; } } return true; }
public void process(CruiseConfig cruiseConfig) { for (PipelineConfig pipelineConfig : cruiseConfig.getAllPipelineConfigs()) { if (pipelineConfig.hasTemplate()) { CaseInsensitiveString templateName = pipelineConfig.getTemplateName(); PipelineTemplateConfig pipelineTemplate = cruiseConfig.findTemplate(templateName); pipelineConfig.validateTemplate(pipelineTemplate); if (pipelineConfig.errors().isEmpty() && !pipelineConfig.hasTemplateApplied()) { pipelineConfig.usingTemplate(pipelineTemplate); } } } } }
long oldestPipelineExecutionTime = jobStateTransition == null ? 0l : jobStateTransition.getStateChangeTime().getTime(); long nonElasticAgentCount = config.agents().parallelStream().filter(agentConfig -> !agentConfig.isElastic()).count(); List<PipelineConfig> pipelineConfigs = config.getAllPipelineConfigs(); long pipelineCount = pipelineConfigs.size(); long configRepoPipelineCount = pipelineConfigs.stream().filter(PipelineConfig::isConfigDefinedRemotely).count();
@Before public void setUp() throws Exception { writer = new MagicalGoConfigXmlWriter(new ConfigCache(), ConfigElementImplementationRegistryMother.withNoPlugins()); loader = new MagicalGoConfigXmlLoader(new ConfigCache(), ConfigElementImplementationRegistryMother.withNoPlugins()); config = GoConfigMother.configWithPipelines("pipeline1", "pipeline2", "pipeline3", "go"); pipelineConfig = config.getAllPipelineConfigs().get(0); }
+ "</pipelines></cruise>"; GoConfigHolder holder = ConfigMigrator.loadWithMigration(xml); assertThat(holder.config.getAllPipelineConfigs().get(0).materialConfigs().get(0).getName().toString(), is("repo_name:pkg_name"));
@Test public void shouldUpdatePipelineConfigsListWhenAPartialIsMerged(){ cruiseConfig = new BasicCruiseConfig(pipelines); PartialConfig partial = PartialConfigMother.withPipeline("pipeline3"); ConfigRepoConfig configRepoConfig = new ConfigRepoConfig(new GitMaterialConfig("http://git"), "myplug"); partial.setOrigins(new RepoConfigOrigin(configRepoConfig,"123")); ConfigReposConfig reposConfig = new ConfigReposConfig(); reposConfig.add(configRepoConfig); cruiseConfig.setConfigRepos(reposConfig); cruiseConfig.merge(Arrays.asList(partial), false); PipelineConfig pipeline3 = partial.getGroups().first().findBy(new CaseInsensitiveString("pipeline3")); assertThat(cruiseConfig.getAllPipelineConfigs().contains(pipeline3), is(true)); assertThat(cruiseConfig.getAllPipelineNames().contains(pipeline3.name()), is(true)); } }
CruiseConfig cruiseConfig = ConfigMigrator.loadWithMigration(configString).configForEdit; PipelineConfig pipelineConfig = cruiseConfig.getAllPipelineConfigs().get(0); JobConfig jobConfig = pipelineConfig.getFirstStageConfig().getJobs().get(0); Tasks tasks = jobConfig.getTasks();
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; }