@Override public PipelineConfig findBy(CaseInsensitiveString pipelineName) { for (PipelineConfigs part : this.parts) { PipelineConfig found = part.findBy(pipelineName); if(found != null) return found; } return null; }
@Override public PipelineConfig getPipelineConfigByName(CaseInsensitiveString pipelineName) { return pipelinesFromAllGroups().findBy(pipelineName); }
@Override public boolean exist(String groupName, String pipelineName) { PipelineConfigs configs = groups.findGroup(groupName); PipelineConfig pipelineConfig = configs.findBy(new CaseInsensitiveString(pipelineName)); return pipelineConfig != null; }
public void updateCacheForPipeline(CaseInsensitiveString pipelineName) { PipelineConfigs group = goConfigService.findGroupByPipeline(pipelineName); if (group == null) { removePipelineFromCache(pipelineName); return; } PipelineConfig pipelineConfig = group.findBy(pipelineName); updateCache(group, pipelineConfig); }
private int getIndex(String pipelineName) { CaseInsensitiveString caseName = new CaseInsensitiveString(pipelineName); int start =0; for (PipelineConfigs part : this.parts) { int end = start + part.size(); if(part.hasPipeline(caseName)) { int internalIndex = part.indexOf(part.findBy(caseName)); return start + internalIndex; } start = end; } return -1; }
@Test public void shouldReturnIndexOfPipeline_When2Pipelines() { PipelineConfigs group = createWithPipelines(PipelineConfigMother.pipelineConfig("pipeline1"), PipelineConfigMother.pipelineConfig("pipeline2")); PipelineConfig pipelineConfig = group.findBy(new CaseInsensitiveString("pipeline2")); assertThat(group.indexOf(pipelineConfig),is(1)); }
@Test public void shouldReturnIndexOfPipeline() { PipelineConfigs group = new MergePipelineConfigs(new BasicPipelineConfigs( PipelineConfigMother.pipelineConfig("pipeline1"),PipelineConfigMother.pipelineConfig("pipeline2"))); PipelineConfig pipelineConfig = group.findBy(new CaseInsensitiveString("pipeline2")); assertThat(group.indexOf(pipelineConfig),is(1)); } @Test
@Test public void shouldDeserializeGroupXml() throws Exception { String partialXml = "<pipelines group=\"group_name\">\n" + " <pipeline name=\"new_name\">\n" + " <materials>\n" + " <svn url=\"file:///tmp/foo\" />\n" + " </materials>\n" + " <stage name=\"stage_name\">\n" + " <jobs>\n" + " <job name=\"job_name\" />\n" + " </jobs>\n" + " </stage>\n" + " </pipeline>\n" + "</pipelines>"; PipelineConfigs pipelineConfigs = xmlLoader.fromXmlPartial(partialXml, BasicPipelineConfigs.class); PipelineConfig pipeline = pipelineConfigs.findBy(new CaseInsensitiveString("new_name")); assertThat(pipeline, is(notNullValue())); assertThat(pipeline.materialConfigs().size(), is(1)); MaterialConfig material = pipeline.materialConfigs().get(0); assertThat(material, is(Matchers.instanceOf(SvnMaterialConfig.class))); assertThat(material.getUriForDisplay(), is("file:///tmp/foo")); assertThat(pipeline.size(), is(1)); assertThat(pipeline.get(0).getJobs().size(), is(1)); }
@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)); } }