public JobPlan createJobPlan(JobConfig config, SchedulingContext context) { JobIdentifier identifier = new JobIdentifier(); String elasticProfileId = config.getElasticProfileId(); ElasticProfile elasticProfile = null; if (elasticProfileId != null) { elasticProfile = context.getElasticProfile(elasticProfileId); } final EnvironmentVariables variables = EnvironmentVariables.toEnvironmentVariables(context.overrideEnvironmentVariables(config.getVariables()).getEnvironmentVariablesConfig()); return new DefaultJobPlan(new Resources(config.resourceConfigs()), ArtifactPlan.toArtifactPlans(config.artifactConfigs()), ArtifactPropertiesGenerator.toArtifactProperties(config.getProperties()), -1, identifier, null, variables, new EnvironmentVariables(), elasticProfile); } }
public static void toJSON(OutputWriter jsonWriter, JobConfig jobConfig) { if (!jobConfig.errors().isEmpty()) { jsonWriter.addChild("errors", errorWriter -> { HashMap<String, String> errorMapping = new HashMap<>(); errorMapping.put("runType", "run_instance_count"); new ErrorGetter(errorMapping).toJSON(errorWriter, jobConfig); }); } jsonWriter.addIfNotNull("name", jobConfig.name()); addRunInstanceCount(jsonWriter, jobConfig); addTimeout(jsonWriter, jobConfig); jsonWriter.addIfNotNull("elastic_profile_id", jobConfig.getElasticProfileId()); jsonWriter.addChildList("environment_variables", envVarsWriter -> EnvironmentVariableRepresenter.toJSON(envVarsWriter, jobConfig.getVariables())); jsonWriter.addChildList("resources", getResourceNames(jobConfig)); jsonWriter.addChildList("tasks", tasksWriter -> TaskRepresenter.toJSONArray(tasksWriter, jobConfig.getTasks())); jsonWriter.addChildList("tabs", tabsWriter -> TabConfigRepresenter.toJSONArray(tabsWriter, jobConfig.getTabs())); jsonWriter.addChildList("artifacts", getArtifacts(jobConfig)); if (jobConfig.getProperties().isEmpty()) { jsonWriter.renderNull("properties"); } else { jsonWriter.addChildList("properties", propertiesWriter -> PropertyConfigRepresenter.toJSONArray(propertiesWriter, jobConfig.getProperties())); } }
public static void toJSON(OutputWriter jsonWriter, JobConfig jobConfig) { if (!jobConfig.errors().isEmpty()) { jsonWriter.addChild("errors", errorWriter -> { HashMap<String, String> errorMapping = new HashMap<>(); errorMapping.put("runType", "run_instance_count"); new ErrorGetter(errorMapping).toJSON(errorWriter, jobConfig); }); } jsonWriter.addIfNotNull("name", jobConfig.name()); addRunInstanceCount(jsonWriter, jobConfig); addTimeout(jsonWriter, jobConfig); jsonWriter.addIfNotNull("elastic_profile_id", jobConfig.getElasticProfileId()); jsonWriter.addChildList("environment_variables", envVarsWriter -> EnvironmentVariableRepresenter.toJSON(envVarsWriter, jobConfig.getVariables())); jsonWriter.addChildList("resources", getResourceNames(jobConfig)); jsonWriter.addChildList("tasks", tasksWriter -> TaskRepresenter.toJSONArray(tasksWriter, jobConfig.getTasks())); jsonWriter.addChildList("tabs", tabsWriter -> TabConfigRepresenter.toJSONArray(tabsWriter, jobConfig.getTabs())); jsonWriter.addChildList("artifacts", getArtifacts(jobConfig)); if (jobConfig.getProperties().isEmpty()) { jsonWriter.renderNull("properties"); } else { jsonWriter.addChildList("properties", propertiesWriter -> PropertyConfigRepresenter.toJSONArray(propertiesWriter, jobConfig.getProperties())); } }
@Test public void shouldCloneStagesSoThatMutationDoesnotAffectTemplate() throws Exception { PipelineConfig pipelineConfig = new PipelineConfig(new CaseInsensitiveString("pipelineName"), new MaterialConfigs(MaterialConfigsMother.hgMaterialConfig("http://google.com"))); pipelineConfig.setTemplateName(new CaseInsensitiveString("templateName")); PipelineTemplateConfig template = new PipelineTemplateConfig(); JobConfig jobConfigFromTemplate = new JobConfig("job-1"); StageConfig stageConfigFromTemplate = new StageConfig(new CaseInsensitiveString("stage-1"), new JobConfigs(jobConfigFromTemplate)); template.add(stageConfigFromTemplate); pipelineConfig.usingTemplate(template); StageConfig stageConfigFromPipeline = pipelineConfig.get(0); EnvironmentVariablesConfig variablesConfig = new EnvironmentVariablesConfig(); variablesConfig.add("FOO", "BAR"); stageConfigFromPipeline.setVariables(variablesConfig); JobConfig jobConfigFromPipeline = stageConfigFromPipeline.jobConfigByConfigName(new CaseInsensitiveString("job-1")); EnvironmentVariablesConfig jobVariablesConfigFromPipeline = new EnvironmentVariablesConfig(); jobVariablesConfigFromPipeline.add("BAZ", "QUUX"); jobConfigFromPipeline.setVariables(jobVariablesConfigFromPipeline); assertThat(stageConfigFromPipeline.getVariables().isEmpty(), is(false)); assertThat(jobConfigFromPipeline.getVariables().isEmpty(), is(false)); assertThat(stageConfigFromTemplate.getVariables().isEmpty(), is(true)); assertThat(jobConfigFromTemplate.getVariables().isEmpty(), is(true)); }
public static JobPlan createJobPlan(JobConfig jobConfig, JobIdentifier jobIdentifier, SchedulingContext schedulingContext) { final EnvironmentVariables environmentVariables = EnvironmentVariables.toEnvironmentVariables(schedulingContext.overrideEnvironmentVariables(jobConfig.getVariables()).getEnvironmentVariablesConfig()); final List<ArtifactPropertiesGenerator> artifactPropertiesGenerators = ArtifactPropertiesGenerator.toArtifactProperties(jobConfig.getProperties()); final List<ArtifactPlan> artifactPlans = ArtifactPlan.toArtifactPlans(jobConfig.artifactConfigs()); return new DefaultJobPlan(new Resources(jobConfig.resourceConfigs()), artifactPlans, artifactPropertiesGenerators, -1, jobIdentifier, null, environmentVariables, new EnvironmentVariables(), null); }
copyCollectionErrors(fromJob.getTabs(), toJob.getTabs()); copyCollectionErrors(fromJob.getProperties(), toJob.getProperties()); copyCollectionErrors(fromJob.getVariables(), toJob.getVariables()); Tasks toTasks = toJob.getTasks(); Tasks fromTasks = fromJob.getTasks();
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; }
if (crJob.getEnvironmentVariables() != null) for (CREnvironmentVariable crEnvironmentVariable : crJob.getEnvironmentVariables()) { jobConfig.getVariables().add(toEnvironmentVariableConfig(crEnvironmentVariable));