@Override public void addEnvironment(BasicEnvironmentConfig config) { environments.add(config); }
public void addEnvironment(final EnvironmentConfig environmentConfig) { updateConfig(cruiseConfig -> { cruiseConfig.getEnvironments().add(environmentConfig); return cruiseConfig; }); }
public EnvironmentsConfig getLocal() { EnvironmentsConfig locals = new EnvironmentsConfig(); for(EnvironmentConfig environmentConfig : this) { EnvironmentConfig local = environmentConfig.getLocal(); if(local != null) locals.add(local); } return locals; } }
if (sole.isLocal()) { environments.add(sole); } else { BasicEnvironmentConfig environmentConfigForEdit = new BasicEnvironmentConfig(sole.name()); environmentConfigForEdit.setOrigins(new UIConfigOrigin()); environments.add(new MergeEnvironmentConfig(environmentConfigForEdit, sole)); merge.add(environmentConfigForEdit); environments.add(merge); environments.add(oneEnv.get(0)); else environments.add(new MergeEnvironmentConfig(oneEnv));
@Override public void update(CruiseConfig preprocessedConfig) { EnvironmentsConfig environments = preprocessedConfig.getEnvironments(); EnvironmentConfig envToRemove = environments.find(new CaseInsensitiveString(oldEnvironmentConfigName)); int index = environments.indexOf(envToRemove); environments.remove(index); environments.add(index, environmentConfig); }
private EnvironmentConfig getOrCreateEnvironment(String environmentName) { for (EnvironmentConfig config : this) { if (config.hasName(new CaseInsensitiveString(environmentName))) { return config; } } BasicEnvironmentConfig config = new BasicEnvironmentConfig(new CaseInsensitiveString(environmentName)); add(config); return config; }
public static EnvironmentsConfig environments(String... names) { EnvironmentsConfig environmentsConfig = new EnvironmentsConfig(); for (String name : names) { environmentsConfig.add(environment(name)); } return environmentsConfig; }
private void collectFragments(PartialConfig[] allFragments, PartialConfig partialConfig) { for (PartialConfig frag : allFragments) { for (PipelineConfigs pipesInGroup : frag.getGroups()) { for (PipelineConfig pipe : pipesInGroup) { partialConfig.getGroups().addPipeline(pipesInGroup.getGroup(), pipe); } } for (EnvironmentConfig env : frag.getEnvironments()) { partialConfig.getEnvironments().add(env); } } }
public PartialConfig toPartialConfig(CRParseResult crPartialConfig, PartialConfigLoadContext context) { PartialConfig partialConfig = new PartialConfig(); for (CREnvironment crEnvironment : crPartialConfig.getEnvironments()) { EnvironmentConfig environment = toEnvironmentConfig(crEnvironment); partialConfig.getEnvironments().add(environment); } Map<String, List<CRPipeline>> pipesByGroup = groupPipelinesByGroupName(crPartialConfig.getPipelines()); for (Map.Entry<String, List<CRPipeline>> crPipelineGroup : pipesByGroup.entrySet()) { BasicPipelineConfigs pipelineConfigs = toBasicPipelineConfigs(crPipelineGroup, context); partialConfig.getGroups().add(pipelineConfigs); } return partialConfig; }
public File addFileWithEnvironment(String relativePath, EnvironmentConfig env) throws Exception { PartialConfig partialConfig = new PartialConfig(); partialConfig.getEnvironments().add(env); return this.addFileWithPartialConfig(relativePath,partialConfig); } }
public static PartialConfig withEnvironment(String name, RepoConfigOrigin repoConfigOrigin) { BasicEnvironmentConfig env = EnvironmentConfigMother.environment(name); PartialConfig partialConfig = new PartialConfig(); partialConfig.getEnvironments().add(env); partialConfig.setOrigins(repoConfigOrigin); return partialConfig; } public static PartialConfig withEnvironment(String name) {
@Before public void setUp() throws Exception { configs = new EnvironmentsConfig(); env = new BasicEnvironmentConfig(new CaseInsensitiveString("uat")); env.addPipeline(new CaseInsensitiveString("deployment")); env.addAgent("agent-one"); configs.add(env); }
@Test public void shouldRemoveAgentFromAllEnvironments() throws Exception { BasicEnvironmentConfig env2 = new BasicEnvironmentConfig(new CaseInsensitiveString("prod")); env2.addPipeline(new CaseInsensitiveString("test")); env2.addAgent("agent-one"); env2.addAgent("agent-two"); configs.add(env2); BasicEnvironmentConfig env3 = new BasicEnvironmentConfig(new CaseInsensitiveString("dev")); env3.addPipeline(new CaseInsensitiveString("build")); env3.addAgent("agent-two"); env3.addAgent("agent-three"); configs.add(env3); assertThat(configs.get(0).getAgents().size(), is(1)); assertThat(configs.get(1).getAgents().size(), is(2)); assertThat(configs.environmentsForAgent("agent-one").size(), is(2)); configs.removeAgentFromAllEnvironments("agent-one"); assertThat(configs.get(0).getAgents().size(), is(0)); assertThat(configs.get(1).getAgents().size(), is(1)); assertThat(configs.get(2).getAgents().size(), is(2)); assertThat(configs.environmentsForAgent("agent-one").size(), is(0)); assertThat(configs.environmentsForAgent("agent-two").size(), is(2)); assertThat(configs.environmentsForAgent("agent-three").size(), is(1)); }
@Test public void shouldMergeWhenSameEnvironmentExistsInManyPartials(){ BasicCruiseConfig cruiseConfig = GoConfigMother.configWithPipelines("p1", "p2"); ConfigRepoConfig repoConfig1 = new ConfigRepoConfig(MaterialConfigsMother.gitMaterialConfig("url1"), "plugin"); ConfigRepoConfig repoConfig2 = new ConfigRepoConfig(MaterialConfigsMother.gitMaterialConfig("url2"), "plugin"); cruiseConfig.setConfigRepos(new ConfigReposConfig(repoConfig1, repoConfig2)); PartialConfig partialConfigInRepo1 = PartialConfigMother.withEnvironment("environment", new RepoConfigOrigin(repoConfig1, "repo1_r1")); RepoConfigOrigin configOrigin = new RepoConfigOrigin(repoConfig2, "repo2_r1"); PartialConfig partialConfigInRepo2 = PartialConfigMother.withEnvironment("environment", configOrigin); BasicEnvironmentConfig environment2InRepo2 = EnvironmentConfigMother.environment("environment2_in_repo2"); environment2InRepo2.setOrigins(configOrigin); partialConfigInRepo2.getEnvironments().add(environment2InRepo2); cruiseConfig.merge(new ArrayList<>(Arrays.asList(partialConfigInRepo2, partialConfigInRepo1)), false); assertThat(cruiseConfig.getEnvironments().hasEnvironmentNamed(new CaseInsensitiveString("environment")),is(true)); assertThat(cruiseConfig.getEnvironments().hasEnvironmentNamed(new CaseInsensitiveString("environment2_in_repo2")),is(true)); }
@Test public void shouldGetLocalPartsWhenOriginIsMixed() { env.setOrigins(new FileConfigOrigin()); BasicEnvironmentConfig prodLocalPart = new BasicEnvironmentConfig(new CaseInsensitiveString("PROD")); prodLocalPart.addAgent("1235"); prodLocalPart.setOrigins(new FileConfigOrigin()); BasicEnvironmentConfig prodRemotePart = new BasicEnvironmentConfig(new CaseInsensitiveString("PROD")); prodRemotePart.setOrigins(new RepoConfigOrigin()); MergeEnvironmentConfig pairEnvironmentConfig = new MergeEnvironmentConfig(prodLocalPart, prodRemotePart); configs.add(pairEnvironmentConfig); assertThat(configs.getLocal().size(), is(2)); assertThat(configs.getLocal(), hasItem(env)); assertThat(configs.getLocal(), hasItem(prodLocalPart)); } }
@Test public void getAllLocalPipelineConfigs_shouldExcludePipelinesReferencedByRemoteEnvironmentWhenRequested() { pipelines = new BasicPipelineConfigs("group_main", new Authorization(), PipelineConfigMother.pipelineConfig("local-pipeline-1")); cruiseConfig = new BasicCruiseConfig(pipelines); ConfigReposConfig reposConfig = new ConfigReposConfig(); ConfigRepoConfig configRepoConfig = new ConfigRepoConfig(new GitMaterialConfig("http://git"), "myplug"); reposConfig.add(configRepoConfig); cruiseConfig.setConfigRepos(reposConfig); PartialConfig partialConfig = PartialConfigMother.withPipelineInGroup("remote-pipeline-1", "g2"); BasicEnvironmentConfig remoteEnvironment = new BasicEnvironmentConfig(new CaseInsensitiveString("UAT")); remoteEnvironment.setOrigins(new RepoConfigOrigin()); // remote environment declares a local pipeline as member remoteEnvironment.addPipeline(new CaseInsensitiveString("local-pipeline-1")); partialConfig.getEnvironments().add(remoteEnvironment); partialConfig.setOrigins(new RepoConfigOrigin(configRepoConfig,"123")); cruiseConfig.merge(Arrays.asList(partialConfig),true); assertThat(cruiseConfig.hasPipelineNamed(new CaseInsensitiveString("local-pipeline-1")),is(true)); List<PipelineConfig> localPipelines = cruiseConfig.getAllLocalPipelineConfigs(true); assertThat(localPipelines.size(),is(0)); }