public PipelineConfigs removePipeline(String pipelineName, CruiseConfig cruiseConfig) { String groupName = cruiseConfig.getGroups().findGroupNameByPipeline(new CaseInsensitiveString(pipelineName)); PipelineConfigs groups = cruiseConfig.getGroups().findGroup(groupName); groups.remove(cruiseConfig.pipelineConfigByName(new CaseInsensitiveString(pipelineName))); return groups; }
public void addParamToPipeline(String pipeline, String paramName, String paramValue) { CruiseConfig cruiseConfig = loadForEdit(); PipelineConfig pipelineConfig = cruiseConfig.pipelineConfigByName(new CaseInsensitiveString(pipeline)); pipelineConfig.addParam(new ParamConfig(paramName, paramValue)); writeConfigFile(cruiseConfig); }
public void setPipelineLabelTemplate(String pipelineName, String labelTemplate) { CruiseConfig config = loadForEdit(); config .pipelineConfigByName(new CaseInsensitiveString(pipelineName)) .setLabelTemplate(labelTemplate); writeConfigFile(config); }
public void addMingleConfigToPipeline(String pipelineName, MingleConfig mingleConfig) { CruiseConfig config = loadForEdit(); PipelineConfig pipelineConfig = config.pipelineConfigByName(new CaseInsensitiveString(pipelineName)); pipelineConfig.setMingleConfig(mingleConfig); writeConfigFile(config); }
private void updateApproval(String pipelineName, String ftStage, Approval manualApproval) { CruiseConfig cruiseConfig = loadForEdit(); PipelineConfig pipelineConfig = cruiseConfig.pipelineConfigByName(new CaseInsensitiveString(pipelineName)); StageConfig config = pipelineConfig.findBy(new CaseInsensitiveString(ftStage)); config.updateApproval(manualApproval); writeConfigFile(cruiseConfig); }
public void requireApproval(String pipelineName, String stageName) { CruiseConfig cruiseConfig = loadForEdit(); cruiseConfig .pipelineConfigByName(new CaseInsensitiveString(pipelineName)) .findBy(new CaseInsensitiveString(stageName)) .updateApproval(Approval.manualApproval()); writeConfigFile(cruiseConfig); }
public void addEnvironmentVariableToPipeline( String pipelineName, EnvironmentVariablesConfig envVars) { CruiseConfig cruiseConfig = loadForEdit(); PipelineConfig pipelineConfig = cruiseConfig.pipelineConfigByName(new CaseInsensitiveString(pipelineName)); pipelineConfig.setVariables(envVars); writeConfigFile(cruiseConfig); }
public PipelineConfig addStageToPipeline(String pipelineName, StageConfig stageConfig) { CruiseConfig cruiseConfig = loadForEdit(); PipelineConfig pipelineConfig = cruiseConfig.pipelineConfigByName(new CaseInsensitiveString(pipelineName)); pipelineConfig.add(stageConfig); writeConfigFile(cruiseConfig); return pipelineConfig; }
public void removeJob(String pipelineName, String stageName, String jobName) { CruiseConfig cruiseConfig = loadForEdit(); PipelineConfig pipelineConfig = cruiseConfig.pipelineConfigByName(new CaseInsensitiveString(pipelineName)); StageConfig stageConfig = pipelineConfig.findBy(new CaseInsensitiveString(stageName)); JobConfig job = stageConfig.getJobs().getJob(new CaseInsensitiveString(jobName)); stageConfig.getJobs().remove(job); writeConfigFile(cruiseConfig); }
public PipelineConfig removeMaterialFromPipeline( String pipelineName, MaterialConfig materialConfig) { CruiseConfig config = loadForEdit(); PipelineConfig pipelineConfig = config.pipelineConfigByName(new CaseInsensitiveString(pipelineName)); pipelineConfig.removeMaterialConfig(materialConfig); writeConfigFile(config); return pipelineConfig; }
public StageConfig removeStage(String pipelineName, String stageName) { CruiseConfig cruiseConfig = loadForEdit(); PipelineConfig pipelineConfig = cruiseConfig.pipelineConfigByName(new CaseInsensitiveString(pipelineName)); StageConfig stageConfig = pipelineConfig.findBy(new CaseInsensitiveString(stageName)); pipelineConfig.remove(stageConfig); writeConfigFile(cruiseConfig); return stageConfig; }
public void addEnvironmentVariableToJob( String pipelineName, String stageName, String jobName, EnvironmentVariablesConfig envVars) { CruiseConfig cruiseConfig = loadForEdit(); PipelineConfig pipelineConfig = cruiseConfig.pipelineConfigByName(new CaseInsensitiveString(pipelineName)); StageConfig stageConfig = pipelineConfig.findBy(new CaseInsensitiveString(stageName)); JobConfig jobConfig = stageConfig.jobConfigByConfigName(new CaseInsensitiveString(jobName)); jobConfig.setVariables(envVars); writeConfigFile(cruiseConfig); }
public void setOperatePermissionForStage(String pipelineName, String stageName, String username) { CruiseConfig cruiseConfig = loadForEdit(); StageConfig stageConfig = cruiseConfig .pipelineConfigByName(new CaseInsensitiveString(pipelineName)) .findBy(new CaseInsensitiveString(stageName)); stageConfig.updateApproval( new Approval(new AuthConfig(new AdminUser(new CaseInsensitiveString(username))))); writeConfigFile(cruiseConfig); }
private PipelineConfig replaceMaterialConfigForPipeline( String pipelinename, MaterialConfigs materialConfigs) { CruiseConfig cruiseConfig = loadForEdit(); PipelineConfig pipelineConfig = cruiseConfig.pipelineConfigByName(new CaseInsensitiveString(pipelinename)); pipelineConfig.setMaterialConfigs(materialConfigs); writeConfigFile(cruiseConfig); return pipelineConfig; }
public PipelineConfig addMaterialToPipeline(String pipelineName, MaterialConfig materialConfig) { CruiseConfig config = loadForEdit(); PipelineConfig pipelineConfig = config.pipelineConfigByName(new CaseInsensitiveString(pipelineName)); for (MaterialConfig materialConfig1 : new MaterialConfig[] {materialConfig}) { pipelineConfig.addMaterialConfig(materialConfig1); } writeConfigFile(config); return pipelineConfig; }
public void setRunOnAllAgents( String pipelineName, String stageName, String jobName, boolean runOnAllAgents) { CruiseConfig config = loadForEdit(); PipelineConfig pipelineConfig = config.pipelineConfigByName(new CaseInsensitiveString(pipelineName)); pipelineConfig .findBy(new CaseInsensitiveString(stageName)) .jobConfigByInstanceName(jobName, true) .setRunOnAllAgents(runOnAllAgents); writeConfigFile(config); }
public void setRunMultipleInstance( String pipelineName, String stageName, String jobName, Integer runInstanceCount) { CruiseConfig config = loadForEdit(); PipelineConfig pipelineConfig = config.pipelineConfigByName(new CaseInsensitiveString(pipelineName)); pipelineConfig .findBy(new CaseInsensitiveString(stageName)) .jobConfigByInstanceName(jobName, true) .setRunInstanceCount(runInstanceCount); writeConfigFile(config); }
public void addResourcesFor( String pipelineName, String stageName, String jobName, String... resources) { CruiseConfig config = loadForEdit(); PipelineConfig pipelineConfig = config.pipelineConfigByName(new CaseInsensitiveString(pipelineName)); for (String resource : resources) { pipelineConfig .findBy(new CaseInsensitiveString(stageName)) .jobConfigByConfigName(new CaseInsensitiveString(jobName)) .addResource(resource); } writeConfigFile(config); }
private StageConfig pushJobIntoStage( String pipelineName, String stageName, JobConfig jobConfig, boolean clearExistingJobs) { CruiseConfig cruiseConfig = loadForEdit(); PipelineConfig pipelineConfig = cruiseConfig.pipelineConfigByName(new CaseInsensitiveString(pipelineName)); StageConfig stageConfig = pipelineConfig.findBy(new CaseInsensitiveString(stageName)); if (clearExistingJobs) { stageConfig.allBuildPlans().clear(); } stageConfig.allBuildPlans().add(jobConfig); writeConfigFile(cruiseConfig); return stageConfig; }
public void addAssociatedEntitiesForAJob( String pipelineName, String stageName, String jobName, Resources resources, ArtifactPlans artifactPlans, ArtifactPropertiesGenerators artifactPropertiesGenerators) { CruiseConfig config = loadForEdit(); JobConfig jobConfig = config .pipelineConfigByName(new CaseInsensitiveString(pipelineName)) .findBy(new CaseInsensitiveString(stageName)) .jobConfigByConfigName(new CaseInsensitiveString(jobName)); ReflectionUtil.setField(jobConfig, "resources", resources); ReflectionUtil.setField(jobConfig, "artifactPlans", artifactPlans); ReflectionUtil.setField( jobConfig, "artifactPropertiesGenerators", artifactPropertiesGenerators); writeConfigFile(config); }
public PipelineConfig changeStagenameForToPipeline( String pipelineName, String oldStageName, String newStageName) { CruiseConfig config = loadForEdit(); PipelineConfig pipelineConfig = config.pipelineConfigByName(new CaseInsensitiveString(pipelineName)); StageConfig stage = pipelineConfig.getStage(new CaseInsensitiveString(oldStageName)); int index = pipelineConfig.indexOf(stage); stage = StageConfigMother.custom( newStageName, stage.isFetchMaterials(), stage.isCleanWorkingDir(), stage.getJobs(), stage.getApproval()); pipelineConfig.set(index, stage); writeConfigFile(config); return pipelineConfig; }
@Test public void shouldSetAServerHealthMessageWhenMaterialForPipelineWithBuildCauseIsNotFound() throws IllegalArtifactLocationException, IOException { PipelineConfig pipelineConfig = PipelineConfigMother.pipelineConfig( "last", new StageConfig( new CaseInsensitiveString("stage"), new JobConfigs(new JobConfig("job-one")))); pipelineConfig.materialConfigs().clear(); SvnMaterialConfig onDirOne = MaterialConfigsMother.svnMaterialConfig( "google.com", "dirOne", "loser", "boozer", false, "**/*.html"); final P4MaterialConfig onDirTwo = MaterialConfigsMother.p4MaterialConfig( "host:987654321", "zoozer", "secret", "through-the-window", true); onDirTwo.setConfigAttributes(Collections.singletonMap(ScmMaterialConfig.FOLDER, "dirTwo")); pipelineConfig.addMaterialConfig(onDirOne); pipelineConfig.addMaterialConfig(onDirTwo); configHelper.addPipeline(pipelineConfig); Pipeline building = PipelineMother.building(pipelineConfig); final Pipeline pipeline = dbHelper.savePipelineWithMaterials(building); CruiseConfig cruiseConfig = configHelper.currentConfig(); PipelineConfig cfg = cruiseConfig.pipelineConfigByName(new CaseInsensitiveString("last")); cfg.removeMaterialConfig(cfg.materialConfigs().get(1)); configHelper.writeConfigFile(cruiseConfig); assertThat( serverHealthService.filterByScope(HealthStateScope.forPipeline("last")).size(), is(0)); final long jobId = pipeline.getStages().get(0).getJobInstances().get(0).getId(); Date currentTime = new Date(System.currentTimeMillis() - 1); Pipeline loadedPipeline = (Pipeline) transactionTemplate.execute( new TransactionCallback() { public Object doInTransaction(TransactionStatus status) { Pipeline loadedPipeline = null; try { loadedPipeline = loader.pipelineWithPasswordAwareBuildCauseByBuildId(jobId); fail( "should not have loaded pipeline with build-cause as one of the necessary materials was not found"); } catch (Exception e) { assertThat(e, is(instanceOf(StaleMaterialsOnBuildCause.class))); assertThat( e.getMessage(), is( "Cannot load job 'last/" + pipeline.getCounter() + "/stage/1/job-one' because material " + onDirTwo + " was not found in config.")); } return loadedPipeline; } }); assertThat(loadedPipeline, is(nullValue())); JobInstance reloadedJobInstance = jobInstanceService.buildById(jobId); assertThat(reloadedJobInstance.getState(), is(JobState.Completed)); assertThat(reloadedJobInstance.getResult(), is(JobResult.Failed)); assertThat( serverHealthService .filterByScope(HealthStateScope.forJob("last", "stage", "job-one")) .size(), is(1)); ServerHealthState error = serverHealthService .filterByScope(HealthStateScope.forJob("last", "stage", "job-one")) .get(0); assertThat( error, is( ServerHealthState.error( "Cannot load job 'last/" + pipeline.getCounter() + "/stage/1/job-one' because material " + onDirTwo + " was not found in config.", "Job for pipeline 'last/" + pipeline.getCounter() + "/stage/1/job-one' has been failed as one or more material configurations were either changed or removed.", HealthStateType.general(HealthStateScope.forJob("last", "stage", "job-one"))))); DateTime expiryTime = (DateTime) ReflectionUtil.getField(error, "expiryTime"); assertThat(expiryTime.toDate().after(currentTime), is(true)); assertThat( expiryTime.toDate().before(new Date(System.currentTimeMillis() + 5 * 60 * 1000 + 1)), is(true)); String logText = FileUtil.readToEnd(consoleService.findConsoleArtifact(reloadedJobInstance.getIdentifier())); assertThat( logText, containsString( "Cannot load job 'last/" + pipeline.getCounter() + "/stage/1/job-one' because material " + onDirTwo + " was not found in config.")); assertThat( logText, containsString( "Job for pipeline 'last/" + pipeline.getCounter() + "/stage/1/job-one' has been failed as one or more material configurations were either changed or removed.")); }
public void lockPipeline(String name) { CruiseConfig config = loadForEdit(); PipelineConfig pipeline = config.pipelineConfigByName(new CaseInsensitiveString(name)); pipeline.lockExplicitly(); writeConfigFile(config); }