public Set<Material> toMaterials(Set<MaterialConfig> materialConfigs) { HashSet<Material> materials = new HashSet<>(); for (MaterialConfig materialConfig : materialConfigs) { materials.add(toMaterial(materialConfig)); } return materials; } }
String inProgress(Request req, Response res) { MaterialConfig materialConfig = repoFromRequest(req).getMaterialConfig(); final boolean state = mus.isInProgress(converter.toMaterial(materialConfig)); return String.format("{\"inProgress\":%b}", state); }
private boolean isMaterialUpdateInProgress(ConfigRepoConfig configRepoConfig) { return mus.isInProgress(converter.toMaterial(configRepoConfig.getMaterialConfig())); } }
public ValidationBean checkConnection(MaterialConfig materialConfig, final SubprocessExecutionContext execCtx) { Material material = materialConfigConverter.toMaterial(materialConfig); return getCheckerImplementation(material).checkConnection(material, execCtx); }
public MaterialRevisions create(String pipelineName, Map<String, String> revisionInfo) { MaterialRevisions materialRevisions = new MaterialRevisions(); for (String materialFingerprint : revisionInfo.keySet()) { MaterialConfig materialConfig = goConfigService.findMaterial(new CaseInsensitiveString(pipelineName), materialFingerprint); if (materialConfig == null) { throw new RuntimeException(String.format("Material with fingerprint [%s] for pipeline [%s] does not exist", materialFingerprint, pipelineName)); } materialRevisions.addRevision(materialChecker.findSpecificRevision(materialConfigConverter.toMaterial(materialConfig), revisionInfo.get(materialFingerprint))); } return materialRevisions; } }
private List<MaterialRevision> createFinalRevisionsForDepChildren(List<DependencyFanInNode> depChildren) { List<MaterialRevision> finalRevisions = new ArrayList<>(); for (DependencyFanInNode child : depChildren) { final List<Modification> modifications = materialRepository.modificationFor(child.currentRevision); if (modifications.isEmpty()) { throw new NoModificationsPresentForDependentMaterialException(child.currentRevision.stageLocator()); } finalRevisions.add(new MaterialRevision(materialConfigConverter.toMaterial(child.materialConfig), modifications)); } return finalRevisions; }
private HashMap<String, Material> dependencyMaterials() { HashMap<String, Material> map = new HashMap<>(); for (DependencyMaterialConfig materialConfig : goConfigService.getSchedulableDependencyMaterials()) { String stageIdentifier = stageIdentifier(materialConfig.getPipelineName().toString(), materialConfig.getStageName().toString()); map.put(stageIdentifier, materialConfigConverter.toMaterial(materialConfig)); } return map; }
private WaitForPipelineMaterialUpdate(CaseInsensitiveString pipelineName, BuildType buildType, ScheduleOptions scheduleOptions) { this.pipelineConfig = goConfigService.pipelineConfigNamed(pipelineName); this.buildType = buildType; this.scheduleOptions = scheduleOptions; pendingMaterials = new ConcurrentHashMap<>(); if (this.pipelineConfig.isConfigDefinedRemotely()) { // Then we must update config first and then continue as usual. // it is also possible that config will disappear at update RepoConfigOrigin configRepo = (RepoConfigOrigin) this.pipelineConfig.getOrigin(); MaterialConfig materialConfig = configRepo.getMaterial(); configMaterial = materialConfigConverter.toMaterial(materialConfig); pendingMaterials.putIfAbsent(materialConfig.getFingerprint(), configMaterial); } if (scheduleOptions.shouldPerformMDUBeforeScheduling()) { for (MaterialConfig materialConfig : pipelineConfig.materialConfigs()) { pendingMaterials.putIfAbsent(materialConfig.getFingerprint(), materialConfigConverter.toMaterial(materialConfig)); } } }
String triggerUpdate(Request req, Response res) { MaterialConfig materialConfig = repoFromRequest(req).getMaterialConfig(); if (mus.updateMaterial(converter.toMaterial(materialConfig))) { res.status(HttpStatus.CREATED.value()); return MessageJson.create("OK"); } else { res.status(HttpStatus.CONFLICT.value()); return MessageJson.create("Update already in progress."); } }
@Override public void onEntityConfigChange(ConfigRepoConfig entity) { if (getConfigRepo(entity.getId()) != null) { materialUpdateService.updateMaterial(converter.toMaterial(entity.getMaterialConfig())); } } });
public MaterialRevisions findLatestRevisions(MaterialConfigs materialConfigs) { MaterialRevisions materialRevisions = new MaterialRevisions(); for (MaterialConfig materialConfig : materialConfigs) { MaterialInstance materialInstance = findMaterialInstance(materialConfig); if (materialInstance != null) { Modification modification = findLatestModification(materialInstance); Material material = materialConfigConverter.toMaterial(materialConfig); materialRevisions.addRevision(modification == null ? new MaterialRevision(material) : new MaterialRevision(material, modification)); } } return materialRevisions; }
@SuppressWarnings("unchecked") public List<MatchedRevision> findRevisionsMatching(final MaterialConfig materialConfig, final String searchString) { return (List<MatchedRevision>) getHibernateTemplate().execute((HibernateCallback) session -> { String sql = "SELECT m.*" + " FROM modifications AS m" + " INNER JOIN materials mat ON mat.id = m.materialId" + " WHERE mat.fingerprint = :finger_print" + " AND (m.revision || ' ' || COALESCE(m.username, '') || ' ' || COALESCE(m.comment, '') LIKE :search_string OR m.pipelineLabel LIKE :search_string)" + " ORDER BY m.id DESC" + " LIMIT 5"; SQLQuery query = session.createSQLQuery(sql); query.addEntity("m", Modification.class); Material material = materialConfigConverter.toMaterial(materialConfig); query.setString("finger_print", material.getFingerprint()); query.setString("search_string", "%" + searchString + "%"); final List<MatchedRevision> list = new ArrayList<>(); for (Modification mod : (List<Modification>) query.list()) { list.add(material.createMatchedRevision(mod, searchString)); } return list; }); }
Material newMaterial = materialConfigConverter.toMaterial(materialConfig); pendingMaterials.putIfAbsent(materialConfig.getFingerprint(), newMaterial);
private List<MaterialRevision> createFinalRevisionsForScmChildren(PipelineTimelineEntry latestRootNodeInstance, List<RootFanInNode> scmChildren, List<DependencyFanInNode> depChildren) { Set<FaninScmMaterial> scmMaterialsFromDepChildren = scmMaterialsOfDepChildren(depChildren); List<MaterialRevision> finalRevisions = new ArrayList<>(); for (RootFanInNode child : scmChildren) { child.setScmRevision(scmMaterialsFromDepChildren); MaterialConfig materialConfig = child.materialConfig; Material material = materialConfigConverter.toMaterial(materialConfig); MaterialRevision revision = new MaterialRevision(material); if (latestRootNodeInstance != null) { PipelineInstanceModel pipeline = pipelineDao.findPipelineHistoryByNameAndCounter(latestRootNodeInstance.getPipelineName(), latestRootNodeInstance.getCounter()); for (MaterialRevision materialRevision : pipeline.getCurrentRevisions()) { if (materialRevision.getMaterial().getFingerprint().equals(child.materialConfig.getFingerprint())) { List<Modification> modificationsSince = materialRepository.findModificationsSinceAndUptil(material, materialRevision, child.scmRevision); revision.addModifications(modificationsSince); break; } } } if (revision.getModifications().isEmpty() && child.scmRevision == null) { MaterialRevisions latestRevisions = materialRepository.findLatestRevisions(new MaterialConfigs(materialConfig)); finalRevisions.addAll(latestRevisions.getRevisions()); continue; } if (revision.getModifications().isEmpty()) { revision = new MaterialRevision(material, materialRepository.findModificationWithRevision(material, child.scmRevision.revision)); } finalRevisions.add(revision); } return finalRevisions; }
@Theory public void shouldBeSameObject_WhenConversionIsDoneFromMaterialToMaterialInstanceAndBack(MaterialConfig materialConfig) throws Exception { Material material = materialConfigConverter.toMaterial(materialConfig); MaterialInstance materialInstance = material.createMaterialInstance(); Material materialConvertedBackFromInstance = materialInstance.toOldMaterial(materialConfig.getName().toString(), materialConfig.getFolder(), "pass"); assertTrue(message("Material <-> MaterialInstance conversion failed.", material, materialConvertedBackFromInstance), reflectionEquals(material, materialConvertedBackFromInstance, fieldsWhichShouldBeIgnoredWhenSavedInDbAndGotBack.get(materialConfig.getClass()))); assertThat(materialInstance.getFingerprint(), is(material.getFingerprint())); assertThat(materialConvertedBackFromInstance.getFingerprint(), is(materialInstance.getFingerprint())); assertPasswordIsCorrect(material); assertPasswordIsCorrect(materialConvertedBackFromInstance); }
@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); }
Material material = new MaterialConfigConverter().toMaterial(materialConfig); Modification modification = materialRepository.findModificationWithRevision(material, revision);
public static PipelineInstanceModels pipelineHistory(PipelineConfig pipelineConfig, Date scheduleDate, Date modificationDate, String revision, String committer, String commitMessage, String commiterEmail, String commitedFileName, String dirModified, String label) { PipelineInstanceModels history = PipelineInstanceModels.createPipelineInstanceModels(); Modification modification = new Modification(committer, commitMessage, commiterEmail, modificationDate, revision); modification.createModifiedFile(commitedFileName, dirModified, ModifiedAction.added); MaterialRevisions revisions = new MaterialRevisions(); Material material = new MaterialConfigConverter().toMaterial(pipelineConfig.materialConfigs().first()); material.setId(10); revisions.addRevision(material, modification); BuildCause buildCause = BuildCause.createManualForced(revisions, Username.ANONYMOUS); PipelineInstanceModel item = PipelineInstanceModel.createPipeline(CaseInsensitiveString.str(pipelineConfig.name()), -1, label, buildCause, stageHistory(pipelineConfig, scheduleDate)); item.setCounter(1); item.setId(1); item.setComment("build comment"); history.add(item); return history; }