public boolean hasEnvironmentNamed(final CaseInsensitiveString environmentName) { return getCurrentConfig().getEnvironments().hasEnvironmentNamed(environmentName); }
public CruiseConfig update(CruiseConfig cruiseConfig) throws Exception { EnvironmentsConfig allEnvironments = cruiseConfig.getEnvironments(); for (String environment : environments.split(",")) { String environmentName = environment.trim(); if (allEnvironments.hasEnvironmentNamed(new CaseInsensitiveString(environmentName))) { allEnvironments.named(new CaseInsensitiveString(environmentName)).addAgent(uuid); } else { LOGGER.warn("[Agent Auto Registration] Agent with uuid {} could not be assigned to environment {} as it does not exist.", uuid, environmentName); } } return cruiseConfig; } }
@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)); }
@Override public CruiseConfig update(CruiseConfig cruiseConfig) { if (partial != null && fingerprint != null) { PartialConfig config = resolver.findPartialByFingerprint(cruiseConfig, fingerprint); if (null != config) { cruiseConfig.getPartials().remove(config); } cruiseConfig.getPartials().add(CLONER.deepClone(partial)); for (PartialConfig partial : cruiseConfig.getPartials()) { for (EnvironmentConfig environmentConfig : partial.getEnvironments()) { if (!cruiseConfig.getEnvironments().hasEnvironmentNamed(environmentConfig.name())) { cruiseConfig.addEnvironment(new BasicEnvironmentConfig(environmentConfig.name())); } } for (PipelineConfigs pipelineConfigs : partial.getGroups()) { if (!cruiseConfig.getGroups().hasGroup(pipelineConfigs.getGroup())) { cruiseConfig.getGroups().add(new BasicPipelineConfigs(pipelineConfigs.getGroup(), new Authorization())); } } } } return cruiseConfig; } }