@Override public void addEnvironmentVariable(EnvironmentVariableConfig variableConfig) { variables.add(variableConfig); }
public EnvironmentVariablesConfig overrideWith(EnvironmentVariablesConfig environmentVariablesConfig) { EnvironmentVariablesConfig variablesConfig = new EnvironmentVariablesConfig(); variablesConfig.addAll(this); for (EnvironmentVariableConfig environmentVariableConfig : environmentVariablesConfig) { variablesConfig.removeIfExists(environmentVariableConfig.getName()); variablesConfig.add(environmentVariableConfig); } return variablesConfig; }
public ScheduleOptions(GoCipher goCipher, Map<String, String> specifiedRevisions, Map<String, String> variables, Map<String, String> secureVariables) { this.specifiedRevisions = specifiedRevisions; this.variables = new EnvironmentVariablesConfig(); for (Map.Entry<String, String> nameValue : variables.entrySet()) { this.variables.add(new EnvironmentVariableConfig(nameValue.getKey(), nameValue.getValue())); } for (Map.Entry<String, String> nameValue : secureVariables.entrySet()) { this.variables.add(new EnvironmentVariableConfig(goCipher,nameValue.getKey(), nameValue.getValue(), true)); } }
public EnvironmentVariablesConfig getSecureVariables() { EnvironmentVariablesConfig result = new EnvironmentVariablesConfig(); for (EnvironmentVariableConfig environmentVariableConfig : this) { if (environmentVariableConfig.isSecure()) { result.add(environmentVariableConfig); } } return result; }
private SchedulingContext setEnvironmentVariables(SchedulingContext context, JobConfig config, String jobName, int counter) { EnvironmentVariablesConfig environmentVariablesConfig = new EnvironmentVariablesConfig(); int index = context.isRerun() ? getOldJobIndex(jobName) : counter; environmentVariablesConfig.add(new EnvironmentVariableConfig("GO_JOB_RUN_INDEX", Integer.toString(index))); environmentVariablesConfig.add(new EnvironmentVariableConfig("GO_JOB_RUN_COUNT", Integer.toString(config.getRunInstanceCountValue()))); context = context.overrideEnvironmentVariables(environmentVariablesConfig); return context; }
@Override public EnvironmentVariablesConfig getVariables() { EnvironmentVariablesConfig allVariables = new EnvironmentVariablesConfig(); for (EnvironmentConfig part : this) { for (EnvironmentVariableConfig partVariable : part.getVariables()) { if (!allVariables.contains(partVariable)) allVariables.add(partVariable); } } return allVariables; }
@Override public EnvironmentVariablesConfig getPlainTextVariables() { EnvironmentVariablesConfig allVariables = new EnvironmentVariablesConfig(); for (EnvironmentConfig part : this) { for (EnvironmentVariableConfig partVariable : part.getPlainTextVariables()) { if (!allVariables.contains(partVariable)) allVariables.add(partVariable); } } return allVariables; }
@Override public EnvironmentVariablesConfig getSecureVariables() { EnvironmentVariablesConfig allVariables = new EnvironmentVariablesConfig(); for (EnvironmentConfig part : this) { for (EnvironmentVariableConfig partVariable : part.getSecureVariables()) { if (!allVariables.contains(partVariable)) allVariables.add(partVariable); } } return allVariables; }
public static EnvironmentVariablesConfig env(String name, String value) { EnvironmentVariablesConfig config = new EnvironmentVariablesConfig(); config.add(name, value); return config; }
public static EnvironmentVariablesConfig fromJSONArray(JsonReader jsonReader) { EnvironmentVariablesConfig variables = new EnvironmentVariablesConfig(); jsonReader.readArrayIfPresent("environment_variables", environmentVariables -> { environmentVariables.forEach(variable -> variables.add(EnvironmentVariableRepresenter.fromJSON(new JsonReader(variable.getAsJsonObject())))); }); return variables; }
public static EnvironmentVariablesConfig fromJSONArray(JsonReader jsonReader) { EnvironmentVariablesConfig variables = new EnvironmentVariablesConfig(); jsonReader.readArrayIfPresent("environment_variables", environmentVariables -> { environmentVariables.forEach(variable -> variables.add(EnvironmentVariableRepresenter.fromJSON(new JsonReader(variable.getAsJsonObject())))); }); return variables; }
@Override public void build(ScheduleOptions scheduleOptions, HttpOperationResult result, String pipelineName, PipelineScheduleOptions pipelineScheduleOptions, HealthStateType healthStateType) { for (EnvironmentVariableConfig environmentVariable : pipelineScheduleOptions.getPlainTextEnvironmentVariables()) { if (!goConfigService.hasVariableInScope(pipelineName, environmentVariable.getName())) { String variableUnconfiguredMessage = String.format("Variable '%s' has not been configured for pipeline '%s'", environmentVariable.getName(), pipelineName); result.unprocessibleEntity("Request to schedule pipeline rejected", variableUnconfiguredMessage, healthStateType); return; } scheduleOptions.getVariables().add(environmentVariable); } } }
@Test public void shouldClearEnvironmentVariablesWhenTheMapIsNull() { environmentVariablesConfig = new EnvironmentVariablesConfig(); EnvironmentVariableConfig one = new EnvironmentVariableConfig("FOO", "BAR"); environmentVariablesConfig.add(one); environmentVariablesConfig.setConfigAttributes(null); assertThat(environmentVariablesConfig.size(), is(0)); }
@Test public void shouldAddEnvironmentVariablesToJobPlan() { EnvironmentVariablesConfig variablesConfig = new EnvironmentVariablesConfig(); variablesConfig.add("blahVar", "blahVal"); JobConfig jobConfig = new JobConfig("foo"); jobConfig.setVariables(variablesConfig); SchedulingContext context = new DefaultSchedulingContext(); JobPlan plan = instanceFactory.createJobPlan(jobConfig, context); assertThat(plan.getVariables(), hasItem(new EnvironmentVariable("blahVar", "blahVal"))); }
@Test public void shouldAddEnvironmentVariablesPresentInTheScheduleContextToJobPlan() { JobConfig jobConfig = new JobConfig("foo"); EnvironmentVariablesConfig variablesConfig = new EnvironmentVariablesConfig(); variablesConfig.add("blahVar", "blahVal"); SchedulingContext context = new DefaultSchedulingContext("Loser"); context = context.overrideEnvironmentVariables(variablesConfig); JobPlan plan = instanceFactory.createJobPlan(jobConfig, context); assertThat(plan.getVariables(), hasItem(new EnvironmentVariable("blahVar", "blahVal"))); }
public StageConfig toStage(CRStage crStage) { Approval approval = toApproval(crStage.getApproval()); StageConfig stageConfig = new StageConfig(new CaseInsensitiveString(crStage.getName()), crStage.isFetchMaterials(), crStage.isCleanWorkingDir(), approval, crStage.isArtifactCleanupProhibited(), toJobConfigs(crStage.getJobs())); EnvironmentVariablesConfig environmentVariableConfigs = stageConfig.getVariables(); for (CREnvironmentVariable crEnvironmentVariable : crStage.getEnvironmentVariables()) { environmentVariableConfigs.add(toEnvironmentVariableConfig(crEnvironmentVariable)); } return stageConfig; }
@Test public void shouldPopulateErrorWhenVariableNameIsEmpty() { environmentVariablesConfig = new EnvironmentVariablesConfig(); EnvironmentVariableConfig one = new EnvironmentVariableConfig("", "BAR"); environmentVariablesConfig.add(one); environmentVariablesConfig.validate(context); assertThat(one.errors().isEmpty(), is(false)); assertThat(one.errors().on(EnvironmentVariableConfig.NAME), contains("Environment Variable cannot have an empty name for pipeline 'some-pipeline'.")); }
@Test public void shouldPopulateErrorWhenVariableNameContainsLeadingAndTrailingSpaces() { environmentVariablesConfig = new EnvironmentVariablesConfig(); EnvironmentVariableConfig one = new EnvironmentVariableConfig(" FOO ", "BAR"); environmentVariablesConfig.add(one); environmentVariablesConfig.validate(context); assertThat(one.errors().isEmpty(), is(false)); assertThat(one.errors().on(EnvironmentVariableConfig.NAME), contains("Environment Variable cannot start or end with spaces for pipeline 'some-pipeline'.")); }
@Test public void shouldPopulateErrorWhenVariableNameStartsWithSpace() { environmentVariablesConfig = new EnvironmentVariablesConfig(); EnvironmentVariableConfig one = new EnvironmentVariableConfig(" foo", "BAR"); environmentVariablesConfig.add(one); environmentVariablesConfig.validate(context); assertThat(one.errors().isEmpty(), is(false)); assertThat(one.errors().on(EnvironmentVariableConfig.NAME), contains("Environment Variable cannot start or end with spaces for pipeline 'some-pipeline'.")); }
@Test public void shouldPopulateErrorWhenVariableNameEndsWithSpace() { environmentVariablesConfig = new EnvironmentVariablesConfig(); EnvironmentVariableConfig one = new EnvironmentVariableConfig("FOO ", "BAR"); environmentVariablesConfig.add(one); environmentVariablesConfig.validate(context); assertThat(one.errors().isEmpty(), is(false)); assertThat(one.errors().on(EnvironmentVariableConfig.NAME), contains("Environment Variable cannot start or end with spaces for pipeline 'some-pipeline'.")); }