public PipelineConfigs getPipelineGroup() { if (cruiseConfig.hasPipelineGroup(groupName)) return cruiseConfig.findGroup(groupName); else return null; }
@Override public PipelineConfigs findGroupOfPipeline(PipelineConfig pipelineConfig) { String groupName = getGroups().findGroupNameByPipeline(pipelineConfig.name()); return findGroup(groupName); }
@Test public void shouldNotCloneAllPipelineConfigs() { BasicCruiseConfig config = GoConfigMother.configWithPipelines("p1", "p2"); //to prime cache config.getAllPipelineConfigs(); //change state config.findGroup("defaultGroup").remove(0); BasicCruiseConfig cloned = new GoConfigCloner().deepClone(config); assertThat(ReflectionUtil.getField(config, "allPipelineConfigs"), is(not((nullValue())))); assertThat(ReflectionUtil.getField(cloned, "allPipelineConfigs"), is(nullValue())); assertThat(cloned.getAllPipelineConfigs().size(), is(1)); }
@Test public void shouldNotClonePipelineNameToConfigMap() { BasicCruiseConfig config = GoConfigMother.configWithPipelines("p1", "p2"); //to prime cache config.pipelineConfigByName(new CaseInsensitiveString("p1")); //change state config.findGroup("defaultGroup").remove(0); BasicCruiseConfig cloned = new GoConfigCloner().deepClone(config); assertThat(ReflectionUtil.getField(config, "pipelineNameToConfigMap"), is(not((nullValue())))); assertThat(ReflectionUtil.getField(cloned, "pipelineNameToConfigMap"), is(nullValue())); assertThat(cloned.pipelineConfigsAsMap().size(), is(1)); }
@Test public void shouldGetPipelineGroupForPipelineInContext(){ String pipelineName = "p1"; BasicCruiseConfig cruiseConfig = GoConfigMother.configWithPipelines(pipelineName); PipelineConfig p1 = cruiseConfig.pipelineConfigByName(new CaseInsensitiveString(pipelineName)); PipelineConfigSaveValidationContext context = PipelineConfigSaveValidationContext.forChain(true, PipelineConfigs.DEFAULT_GROUP, cruiseConfig, p1); assertThat(context.getPipelineGroup(), is(cruiseConfig.findGroup(PipelineConfigs.DEFAULT_GROUP))); }
@Test public void shouldNotCloneAllTemplatesWithAssociatedPipelines() { PipelineTemplateConfig template = PipelineTemplateConfigMother.createTemplate("template-1"); BasicCruiseConfig config = GoConfigMother.defaultCruiseConfig(); config.addTemplate(template); config.addPipelineWithoutValidation("g1", PipelineConfigMother.pipelineConfigWithTemplate("p1", template.name().toString())); //to prime cache config.templatesWithAssociatedPipelines(); //change state config.findGroup("g1").remove(0); config.getTemplates().removeTemplateNamed(template.name()); BasicCruiseConfig cloned = new GoConfigCloner().deepClone(config); assertThat(ReflectionUtil.getField(config, "allTemplatesWithAssociatedPipelines"), is(not((nullValue())))); assertThat(ReflectionUtil.getField(cloned, "allTemplatesWithAssociatedPipelines"), is(nullValue())); assertThat(cloned.templatesWithAssociatedPipelines().size(), is(0)); }
@Test public void shouldValidateStagePermissionsOfATemplateStageInTheContextOfPipelineUsingTheTemplate() { StageConfig stageConfig = StageConfigMother.custom("stage", new JobConfigs(new JobConfig(new CaseInsensitiveString("defaultJob")))); stageConfig.setApproval(new Approval(new AuthConfig(new AdminUser(new CaseInsensitiveString("non-admin-non-operate"))))); PipelineTemplateConfig template = PipelineTemplateConfigMother.createTemplate("template", stageConfig); PipelineConfig pipelineConfig = PipelineConfigMother.pipelineConfigWithTemplate("pipeline", "template"); pipelineConfig.usingTemplate(template); BasicCruiseConfig cruiseConfig = GoConfigMother.defaultCruiseConfig(); cruiseConfig.addTemplate(template); cruiseConfig.addPipelineWithoutValidation("group", pipelineConfig); PipelineConfigs group = cruiseConfig.findGroup("group"); group.setAuthorization(new Authorization(new ViewConfig(), new OperationConfig(new AdminUser(new CaseInsensitiveString("foo"))), new AdminsConfig())); cruiseConfig.server().security().securityAuthConfigs().add(new SecurityAuthConfig()); cruiseConfig.server().security().adminsConfig().add(new AdminUser(new CaseInsensitiveString("super-admin"))); template.validateTree(ConfigSaveValidationContext.forChain(cruiseConfig), cruiseConfig, false); assertThat(template.errors().getAllOn("name"), is(Arrays.asList("User \"non-admin-non-operate\" who is not authorized to operate pipeline group `group` can not be authorized to approve stage"))); }