public boolean isAutoUpdateStateMismatch(MaterialConfigs materialAutoUpdateMap) { if(materialAutoUpdateMap.size() > 1){ for (MaterialConfig otherMaterial : materialAutoUpdateMap) { if (otherMaterial.isAutoUpdate() != this.autoUpdate) { return true; } } } return false; }
public Set<MaterialConfig> getAllUniquePostCommitSchedulableMaterials() { Set<MaterialConfig> materialConfigs = new HashSet<>(); Set<String> uniqueMaterials = new HashSet<>(); for (PipelineConfigs pipelineConfigs : this) { for (PipelineConfig pipelineConfig : pipelineConfigs) { for (MaterialConfig materialConfig : pipelineConfig.materialConfigs()) { if ((materialConfig instanceof ScmMaterialConfig || materialConfig instanceof PluggableSCMMaterialConfig) && !materialConfig.isAutoUpdate() && !uniqueMaterials.contains(materialConfig.getFingerprint())) { materialConfigs.add(materialConfig); uniqueMaterials.add(materialConfig.getFingerprint()); } } } } return materialConfigs; }
private Set<MaterialConfig> getUniqueMaterialConfigs(boolean ignoreManualPipelines) { Set<MaterialConfig> materialConfigs = new HashSet<>(); Set<Map> uniqueMaterials = new HashSet<>(); for (PipelineConfig pipelineConfig : pipelinesFromAllGroups()) { for (MaterialConfig materialConfig : pipelineConfig.materialConfigs()) { if (!uniqueMaterials.contains(materialConfig.getSqlCriteria())) { if (ignoreManualPipelines && !materialConfig.isAutoUpdate() && materialConfig instanceof ScmMaterialConfig) { continue; } materialConfigs.add(materialConfig); uniqueMaterials.add(materialConfig.getSqlCriteria()); } } } return materialConfigs; }
@Override public Set<MaterialConfig> getAllUniquePostCommitSchedulableMaterials() { Set<MaterialConfig> materialConfigs = new HashSet<>(); Set<String> uniqueMaterials = new HashSet<>(); for (PipelineConfigs pipelineConfigs : this.groups) { for (PipelineConfig pipelineConfig : pipelineConfigs) { for (MaterialConfig materialConfig : pipelineConfig.materialConfigs()) { if ((materialConfig instanceof ScmMaterialConfig || materialConfig instanceof PluggableSCMMaterialConfig) && !materialConfig.isAutoUpdate() && !uniqueMaterials.contains(materialConfig.getFingerprint())) { materialConfigs.add(materialConfig); uniqueMaterials.add(materialConfig.getFingerprint()); } } } } for (ConfigRepoConfig configRepo : this.configRepos) { MaterialConfig materialConfig = configRepo.getMaterialConfig(); if (!uniqueMaterials.contains(materialConfig.getFingerprint())) { materialConfigs.add(materialConfig); uniqueMaterials.add(materialConfig.getFingerprint()); } } return materialConfigs; }
private Set<MaterialConfig> getUniqueMaterials(boolean ignoreManualPipelines, boolean ignoreConfigRepos) { Set<MaterialConfig> materialConfigs = new HashSet<>(); Set<Map> uniqueMaterials = new HashSet<>(); for (PipelineConfig pipelineConfig : pipelinesFromAllGroups()) { for (MaterialConfig materialConfig : pipelineConfig.materialConfigs()) { if (!uniqueMaterials.contains(materialConfig.getSqlCriteria())) { boolean shouldSkipPolling = !materialConfig.isAutoUpdate(); boolean scmOrPackageMaterial = !(materialConfig instanceof DependencyMaterialConfig); if (ignoreManualPipelines && scmOrPackageMaterial && shouldSkipPolling) { continue; } materialConfigs.add(materialConfig); uniqueMaterials.add(materialConfig.getSqlCriteria()); } } } if (!ignoreConfigRepos) { for (ConfigRepoConfig configRepo : this.configRepos) { MaterialConfig materialConfig = configRepo.getMaterialConfig(); if (!uniqueMaterials.contains(materialConfig.getSqlCriteria())) { materialConfigs.add(materialConfig); uniqueMaterials.add(materialConfig.getSqlCriteria()); } } } return materialConfigs; }
private void validateAutoUpdateState(ValidationContext validationContext) { if (validationContext == null) return; MaterialConfig material = this.getMaterialConfig(); if (material != null) { MaterialConfigs allMaterialsByFingerPrint = validationContext.getAllMaterialsByFingerPrint(material.getFingerprint()); if (allMaterialsByFingerPrint.stream().anyMatch(m -> !m.isAutoUpdate())) { getMaterialConfig().errors().add("autoUpdate", format("Material of type %s (%s) is specified as a configuration repository and pipeline material with disabled autoUpdate." + " All copies of this material must have autoUpdate enabled or configuration repository must be removed", material.getTypeForDisplay(), material.getDescription())); } } }
@Test public void shouldLoadMaterialWithAutoUpdate() throws Exception { MaterialConfig material = xmlLoader.fromXmlPartial("<hg url=\"file:///tmp/testSvnRepo/project1/trunk\" autoUpdate=\"false\"/>", HgMaterialConfig.class); assertThat(material.isAutoUpdate(), is(false)); material = xmlLoader.fromXmlPartial("<git url=\"file:///tmp/testSvnRepo/project1/trunk\" autoUpdate=\"false\"/>", GitMaterialConfig.class); assertThat(material.isAutoUpdate(), is(false)); material = xmlLoader.fromXmlPartial("<svn url=\"file:///tmp/testSvnRepo/project1/trunk\" autoUpdate=\"false\"/>", SvnMaterialConfig.class); assertThat(material.isAutoUpdate(), is(false)); material = xmlLoader.fromXmlPartial("<p4 port='localhost:1666' autoUpdate='false' ><view/></p4>", P4MaterialConfig.class); assertThat(material.isAutoUpdate(), is(false)); }
private void validateAutoUpdateEnabled() { if (this.getMaterialConfig() != null) { if (!this.getMaterialConfig().isAutoUpdate()) this.getMaterialConfig().errors().add("autoUpdate", format( "Configuration repository material '%s' must have autoUpdate enabled.", this.getMaterialConfig().getDisplayName())); } }
@Test public void autoUpdateShouldUnderstandTrue() throws Exception { MaterialConfig hgMaterial = xmlLoader.fromXmlPartial("<hg url=\"file:///tmp/testSvnRepo/project1/trunk\" autoUpdate=\"true\"/>", HgMaterialConfig.class); assertThat(hgMaterial.isAutoUpdate(), is(true)); }
@Test public void autoUpdateShouldBeTrueByDefault() throws Exception { MaterialConfig hgMaterial = xmlLoader.fromXmlPartial("<hg url=\"file:///tmp/testSvnRepo/project1/trunk\"/>", HgMaterialConfig.class); assertThat(hgMaterial.isAutoUpdate(), is(true)); }
@Theory public void shouldBeSameObject_WhenConversionIsDoneFromMaterialConfigToMaterialAndBack(MaterialConfig materialConfig) throws Exception { Material materialFromConfig = materialConfigConverter.toMaterial(materialConfig); MaterialConfig materialConfigConvertedBackFromMaterial = materialFromConfig.config(); assertThat(materialConfigConvertedBackFromMaterial, is(materialConfig)); assertTrue(message("Material <-> MaterialConfig conversion failed.", materialConfigConvertedBackFromMaterial, materialConfig), reflectionEquals(materialConfigConvertedBackFromMaterial, materialConfig)); assertThat(materialFromConfig.getFingerprint(), is(materialConfig.getFingerprint())); assertThat(materialFromConfig.isAutoUpdate(), is(materialConfig.isAutoUpdate())); assertThat(materialConfigConvertedBackFromMaterial.getFingerprint(), is(materialConfig.getFingerprint())); assertPasswordIsCorrect(materialConfig); assertPasswordIsCorrect(materialFromConfig); assertPasswordIsCorrect(materialConfigConvertedBackFromMaterial); }