public boolean isRunMultipleInstanceType() { return getRunInstanceCountValue() > 0; }
public void createJobInstances(JobInstances jobs, SchedulingContext context, JobConfig config, String stageName, final JobNameGenerator nameGenerator, final Clock clock, InstanceFactory instanceFactory) { Integer totalInstances = context.isRerun() ? 1 : config.getRunInstanceCountValue(); for (int counter = 1; counter <= totalInstances; counter++) { String jobName = nameGenerator.generateName(counter); context = setEnvironmentVariables(context, config, jobName, counter); instanceFactory.reallyCreateJobInstance(config, jobs, null, jobName, false, true, context, clock); } }
private static void addRunInstanceCount(OutputWriter outputWriter, JobConfig jobConfig) { if (jobConfig.isRunOnAllAgents()) { outputWriter.add("run_instance_count", "all"); } else if (jobConfig.getRunInstanceCount() != null && !jobConfig.getRunInstanceCount().isEmpty()) { outputWriter.add("run_instance_count", jobConfig.getRunInstanceCountValue()); } else { outputWriter.add("run_instance_count", (String) null); } }
private static void addRunInstanceCount(OutputWriter outputWriter, JobConfig jobConfig) { if (jobConfig.isRunOnAllAgents()) { outputWriter.add("run_instance_count", "all"); } else if (jobConfig.getRunInstanceCount() != null && !jobConfig.getRunInstanceCount().isEmpty()) { outputWriter.add("run_instance_count", jobConfig.getRunInstanceCountValue()); } else { outputWriter.add("run_instance_count", (String) null); } }
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; }
@Test public void shouldResetJobRunTypeCorrectly() { HashMap map1 = new HashMap(); map1.put(JobConfig.RUN_TYPE, JobConfig.RUN_MULTIPLE_INSTANCE); map1.put(JobConfig.RUN_INSTANCE_COUNT, "10"); JobConfig jobConfig = new JobConfig(); jobConfig.setConfigAttributes(map1); assertThat(jobConfig.getRunInstanceCountValue(), is(10)); assertThat(jobConfig.isRunMultipleInstanceType(), is(true)); assertThat(jobConfig.isRunOnAllAgents(), is(false)); // should not reset value when correct key not present HashMap map2 = new HashMap(); jobConfig.setConfigAttributes(map2); assertThat(jobConfig.getRunInstanceCountValue(), is(10)); assertThat(jobConfig.isRunMultipleInstanceType(), is(true)); assertThat(jobConfig.isRunOnAllAgents(), is(false)); // reset value for same job config HashMap map3 = new HashMap(); map3.put(JobConfig.RUN_TYPE, JobConfig.RUN_SINGLE_INSTANCE); jobConfig.setConfigAttributes(map3); assertThat(jobConfig.isRunMultipleInstanceType(), is(false)); assertThat(jobConfig.getRunInstanceCount(), is(nullValue())); assertThat(jobConfig.isRunOnAllAgents(), is(false)); }
assertThat(jobConfig3.getRunInstanceCountValue(), is(10)); assertThat(jobConfig3.isRunOnAllAgents(), is(false));
CRJob jobToCRJob(JobConfig jobConfig) { CRJob job = new CRJob(); job.setName(jobConfig.name().toString()); job.setResources(jobConfig.resourceConfigs().resourceNames()); job.setElasticProfileId(jobConfig.getElasticProfileId()); for (EnvironmentVariableConfig var: jobConfig.getVariables()) { job.addEnvironmentVariable(environmentVariableConfigToCREnvironmentVariable(var)); } for (ArtifactPropertyConfig prop: jobConfig.getProperties()) { job.addProperty(new CRPropertyGenerator(prop.getName(), prop.getSrc(), prop.getXpath())); } for(Tab tab: jobConfig.getTabs()) { job.addTab(new CRTab(tab.getName(), tab.getPath())); } for (ArtifactConfig artifactConfig: jobConfig.artifactConfigs()) { job.addArtifact(artifactConfigToCRArtifact(artifactConfig)); } if (jobConfig.isRunOnAllAgents()) { job.setRunOnAllAgents(jobConfig.isRunOnAllAgents()); } else { job.setRunInstanceCount(jobConfig.getRunInstanceCountValue()); } for (Task task: jobConfig.tasks()) { job.addTask(taskToCRTask(task)); } if (jobConfig.getTimeout() != null) { job.setTimeout(Integer.valueOf(jobConfig.getTimeout())); } return job; }