@Override public void update(CruiseConfig preprocessedConfig) { preprocessedConfig.getEnvironments().remove(environmentConfig); }
private CaseInsensitiveString environmentUsedIn(CruiseConfig cruiseConfig, final CaseInsensitiveString pipelineName) { return cruiseConfig.getEnvironments().findEnvironmentNameForPipeline(pipelineName); }
public EnvironmentsConfig getEnvironments() { return cruiseConfig().getEnvironments(); }
public void onConfigChange(CruiseConfig newCruiseConfig) { sync(newCruiseConfig.getEnvironments()); }
public void addEnvironment(final EnvironmentConfig environmentConfig) { updateConfig(cruiseConfig -> { cruiseConfig.getEnvironments().add(environmentConfig); return cruiseConfig; }); }
@Override public Map<String, Object> asJson() { LinkedHashMap<String, Object> json = new LinkedHashMap<>(); CruiseConfig currentConfig = goConfigService.getCurrentConfig(); LinkedHashMap<String, Object> validConfig = new LinkedHashMap<>(); validConfig.put("Number of pipelines", goConfigService.getAllPipelineConfigs().size()); validConfig.put("Number of agents", goConfigService.agents().size()); validConfig.put("Number of environments", currentConfig.getEnvironments().size()); validConfig.put("Number of unique materials", currentConfig.getAllUniqueMaterials().size()); validConfig.put("Number of schedulable materials", goConfigService.getSchedulableMaterials().size()); json.put("Valid Config", validConfig); json.put("Security", securityInformation()); return json; }
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; } }
private boolean isRequestFresh(CruiseConfig cruiseConfig) { EnvironmentConfig config = cruiseConfig.getEnvironments().find(new CaseInsensitiveString(oldEnvironmentConfigName)); if(config instanceof MergeEnvironmentConfig){ config = ((MergeEnvironmentConfig) config).getFirstEditablePart(); } boolean freshRequest = hashingService.md5ForEntity(config).equals(md5); if (!freshRequest) { result.stale(LocalizedMessage.staleResourceConfig("Environment", oldEnvironmentConfigName)); } return freshRequest; } }
@Override public boolean isValid(CruiseConfig preprocessedConfig) { EnvironmentConfig preprocessedEnvironmentConfig = preprocessedConfig.getEnvironments().find(environmentConfig.name()); boolean isValid = validateRemovalOfInvalidEntities(); if (preprocessedEnvironmentConfig instanceof MergeEnvironmentConfig) { isValid = validateRemovalOfRemoteEntities(preprocessedEnvironmentConfig); } return isValid && super.isValid(preprocessedConfig); }
@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); }
@Override public boolean validateTree(ConfigSaveValidationContext validationContext, CruiseConfig preprocessedConfig) { validate(validationContext); preprocessedConfig.getEnvironments().validate(validationContext); validateContainsOnlyUuids(preprocessedConfig.agents().acceptedUuids()); boolean isValid = ErrorCollector.getAllErrors(this).isEmpty(); ValidationContext contextForChildren = validationContext.withParent(this); isValid = isValid && variables.validateTree(contextForChildren); return isValid; }
public CruiseConfig update(CruiseConfig cruiseConfig) { AgentConfig agentConfig = cruiseConfig.agents().getAgentByUuid(uuid); if (agentConfig.isNull()) { bomb("Unable to delete agent; Agent [" + uuid + "] not found."); } cruiseConfig.getEnvironments().removeAgentFromAllEnvironments(uuid); cruiseConfig.agents().remove(agentConfig); return cruiseConfig; }
@Test public void shouldCreateEmptyEnvironmentConfigForEditsWithUIOrigin_WhenFileHasNoEnvironment_AndForEdit() { BasicCruiseConfig mainCruiseConfig = new BasicCruiseConfig(pipelines); PartialConfig partialConfig = PartialConfigMother.withEnvironment("remoteEnv"); partialConfig.setOrigins(new RepoConfigOrigin()); cruiseConfig = new BasicCruiseConfig(mainCruiseConfig, true, partialConfig); assertThat(cruiseConfig.getEnvironments().size(), is(1)); assertThat(cruiseConfig.getEnvironments().get(0) instanceof MergeEnvironmentConfig, is(true)); assertThat(cruiseConfig.getEnvironments().get(0).name(), is(new CaseInsensitiveString("remoteEnv"))); MergeEnvironmentConfig mergedEnv = (MergeEnvironmentConfig) cruiseConfig.getEnvironments().get(0); assertThat(mergedEnv.size(), is(2)); }
@Test public void shouldNotCreateMergeEnvironmentConfig_WhenFileHasNoEnvironment_AndNotForEdit() { BasicCruiseConfig mainCruiseConfig = new BasicCruiseConfig(pipelines); PartialConfig partialConfig = PartialConfigMother.withEnvironment("remoteEnv"); partialConfig.setOrigins(new RepoConfigOrigin()); cruiseConfig = new BasicCruiseConfig(mainCruiseConfig, false, partialConfig); assertThat(cruiseConfig.getEnvironments().size(), is(1)); assertThat(cruiseConfig.getEnvironments().get(0) instanceof MergeEnvironmentConfig, is(false)); assertThat(cruiseConfig.getEnvironments().get(0).name(), is(new CaseInsensitiveString("remoteEnv"))); assertThat(cruiseConfig.getEnvironments().get(0).isLocal(), is(false)); }
@Test public void shouldAllowConfigWithNoAgentsAndNoPipelinesInEnvironment() throws Exception { String content = configWithEnvironments( "<environments>" + " <environment name='uat' />" + "</environments>"); CruiseConfig config = ConfigMigrator.loadWithMigration(content).config; assertThat(config.getEnvironments().size(), is(1)); }
public boolean isValid(CruiseConfig preprocessedConfig) { EnvironmentConfig config = preprocessedConfig.getEnvironments().find(this.environmentConfig.name()); boolean isValid = config.validateTree(ConfigSaveValidationContext.forChain(preprocessedConfig), preprocessedConfig); if (!isValid) { String allErrors = new AllConfigErrors(preprocessedConfig.getAllErrors()).asString(); result.unprocessableEntity(LocalizedMessage.composite(actionFailed, allErrors)); } return isValid; }
@Test public void shouldCreateEmptyEnvironmentConfigForEditsWithUIOrigin_WhenFileHasNoEnvironmentAnd2RemoteParts_AndForEdit() { BasicCruiseConfig mainCruiseConfig = new BasicCruiseConfig(pipelines); PartialConfig partialConfig1 = PartialConfigMother.withEnvironment("remoteEnv"); partialConfig1.setOrigins(new RepoConfigOrigin()); PartialConfig partialConfig2 = PartialConfigMother.withEnvironment("remoteEnv"); partialConfig2.setOrigins(new RepoConfigOrigin()); cruiseConfig = new BasicCruiseConfig(mainCruiseConfig, true, partialConfig1, partialConfig2); assertThat(cruiseConfig.getEnvironments().size(), is(1)); assertThat(cruiseConfig.getEnvironments().get(0) instanceof MergeEnvironmentConfig, is(true)); assertThat(cruiseConfig.getEnvironments().get(0).name(), is(new CaseInsensitiveString("remoteEnv"))); MergeEnvironmentConfig mergedEnv = (MergeEnvironmentConfig) cruiseConfig.getEnvironments().get(0); assertThat(mergedEnv.size(), is(3)); }
@Test public void shouldModifyEmptyEnvironmentConfigWithUIOrigin() { BasicCruiseConfig mainCruiseConfig = new BasicCruiseConfig(pipelines); PartialConfig partialConfig = PartialConfigMother.withEnvironment("remoteEnv"); partialConfig.setOrigins(new RepoConfigOrigin()); cruiseConfig = new BasicCruiseConfig(mainCruiseConfig, true, partialConfig); cruiseConfig.getEnvironments().get(0).addAgent("agent"); MergeEnvironmentConfig mergedEnv = (MergeEnvironmentConfig) cruiseConfig.getEnvironments().get(0); assertThat(mergedEnv.getFirstEditablePart().getAgents(), hasItem(new EnvironmentAgentConfig("agent"))); }
@Test public void shouldModifyEnvironmentConfigWithFileOrigin() { BasicCruiseConfig mainCruiseConfig = new BasicCruiseConfig(pipelines); BasicEnvironmentConfig envInFile = new BasicEnvironmentConfig(new CaseInsensitiveString("Env")); mainCruiseConfig.addEnvironment(envInFile); mainCruiseConfig.setOrigins(new FileConfigOrigin()); PartialConfig partialConfig = PartialConfigMother.withEnvironment("Env"); partialConfig.setOrigins(new RepoConfigOrigin()); cruiseConfig = new BasicCruiseConfig(mainCruiseConfig, true, partialConfig); cruiseConfig.getEnvironments().get(0).addAgent("agent"); assertThat(envInFile.getAgents(), hasItem(new EnvironmentAgentConfig("agent"))); }