private void updateSchedulableMaterials(boolean forceLoad) { if (forceLoad || schedulableMaterials == null) { schedulableMaterials = materialConfigConverter.toMaterials(goConfigService.getSchedulableSCMMaterials()); } } }
public boolean updateGitMaterial(String branchName, Collection<String> possibleUrls) { final CruiseConfig cruiseConfig = goConfigService.currentCruiseConfig(); Set<Material> allUniquePostCommitSchedulableMaterials = materialConfigConverter.toMaterials(cruiseConfig.getAllUniquePostCommitSchedulableMaterials()); Predicate<Material> predicate = new MaterialPredicate(branchName, possibleUrls); Set<Material> allGitMaterials = allUniquePostCommitSchedulableMaterials.stream().filter(predicate).collect(Collectors.toSet()); allGitMaterials.forEach(MaterialUpdateService.this::updateMaterial); return !allGitMaterials.isEmpty(); }
public void expandForScheduling(Material material, Materials addTheExpandedMaterialsHere) { MaterialConfigs materialConfigs = new MaterialConfigs(); expandForScheduling(material.config(), materialConfigs); addTheExpandedMaterialsHere.addAll(materialConfigConverter.toMaterials(materialConfigs)); }
public String getRevisionsBasedOnDependenciesForDebug(CaseInsensitiveString pipelineName, final Integer targetIterationCount) { CruiseConfig cruiseConfig = goConfigService.getCurrentConfig(); FanInGraph fanInGraph = new FanInGraph(cruiseConfig, pipelineName, materialRepository, pipelineDao, systemEnvironment, materialConfigConverter); final String[] iterationData = {null}; fanInGraph.setFanInEventListener((iterationCount, dependencyFanInNodes) -> { if (iterationCount == targetIterationCount) { iterationData[0] = new GsonBuilder().setExclusionStrategies(getGsonExclusionStrategy()).create().toJson(dependencyFanInNodes); } }); PipelineConfig pipelineConfig = goConfigService.pipelineConfigNamed(pipelineName); Materials materials = materialConfigConverter.toMaterials(pipelineConfig.materialConfigs()); MaterialRevisions actualRevisions = new MaterialRevisions(); for (Material material : materials) { actualRevisions.addAll(materialRepository.findLatestModification(material)); } MaterialRevisions materialRevisions = fanInGraph.computeRevisions(actualRevisions, pipelineTimeline); if (iterationData[0] == null) { iterationData[0] = new GsonBuilder().setExclusionStrategies(getGsonExclusionStrategy()).create().toJson(materialRevisions); } return iterationData[0]; }
public static BuildCause modifyNoFiles(PipelineConfig config) { MaterialRevisions materialRevisions = new MaterialRevisions(); for (Material material : new MaterialConfigConverter().toMaterials(config.materialConfigs())) { ArrayList<Modification> list = new ArrayList<>(); list.add(new Modification("no-user", "comment", "dummy-email", new Date(), "Dummy Modification"+ UUID.randomUUID().toString())); materialRevisions.addRevision(material, list); } return BuildCause.createWithModifications(materialRevisions, ""); }
public static BuildCause buildCauseForOneModifiedFile(PipelineConfig pipelineConfig, String revision, String comment, String committer) { return BuildCause.createWithModifications(modifyOneFile(new MaterialConfigConverter().toMaterials(pipelineConfig.materialConfigs()), revision, comment, committer), ""); }
public void notifyMaterialsForUpdate(Username username, Object params, HttpLocalizedOperationResult result) { if (!goConfigService.isUserAdmin(username)) { result.forbidden("Unauthorized to access this API.", HealthStateType.forbidden()); return; } final Map attributes = (Map) params; if (attributes.containsKey(MaterialUpdateService.TYPE)) { PostCommitHookMaterialType materialType = postCommitHookMaterialType.toType((String) attributes.get(MaterialUpdateService.TYPE)); if (!materialType.isKnown()) { result.badRequest("The request could not be understood by Go Server due to malformed syntax. The client SHOULD NOT repeat the request without modifications."); return; } final PostCommitHookImplementer materialTypeImplementer = materialType.getImplementer(); final CruiseConfig cruiseConfig = goConfigService.currentCruiseConfig(); Set<Material> allUniquePostCommitSchedulableMaterials = materialConfigConverter.toMaterials(cruiseConfig.getAllUniquePostCommitSchedulableMaterials()); final Set<Material> prunedMaterialList = materialTypeImplementer.prune(allUniquePostCommitSchedulableMaterials, attributes); if (prunedMaterialList.isEmpty()) { result.notFound("Unable to find material. Materials must be configured not to poll for new changes before they can be used with the notification mechanism.", HealthStateType.general(HealthStateScope.GLOBAL)); return; } for (Material material : prunedMaterialList) { updateMaterial(material); } result.accepted("The material is now scheduled for an update. Please check relevant pipeline(s) for status."); } else { result.badRequest("The request could not be understood by Go Server due to malformed syntax. The client SHOULD NOT repeat the request without modifications."); } }
public static BuildCause buildCauseForOneModifiedFile(PipelineConfig pipelineConfig, String revision) { return BuildCause.createWithModifications(modifyOneFile(new MaterialConfigConverter().toMaterials(pipelineConfig.materialConfigs()), revision), ""); }
public static MaterialRevisions modifyOneFile(PipelineConfig pipelineConfig) { return modifyOneFile(new MaterialConfigConverter().toMaterials(pipelineConfig.materialConfigs()), nextRevision()); }
public static MaterialRevisions multipleModifications(PipelineConfig pipelineConfig) { MaterialRevisions materialRevisions = new MaterialRevisions(); for (Material material : new MaterialConfigConverter().toMaterials(pipelineConfig.materialConfigs())) { materialRevisions.addRevision(material, multipleModificationList()); } return materialRevisions; }
public static MaterialRevisions multipleModificationsInHg(PipelineConfig pipelineConfig) { MaterialRevisions materialRevisions = new MaterialRevisions(); for (Material material : new MaterialConfigConverter().toMaterials(pipelineConfig.materialConfigs())) { materialRevisions.addRevision(material, multipleModificationsInHg()); } return materialRevisions; }
BuildCause previousBuild = pipelineScheduleQueue.mostRecentScheduled(pipelineConfig.name()); Materials materials = materialConfigConverter.toMaterials(pipelineConfig.materialConfigs()); MaterialConfigs expandedMaterialConfigs = materialExpansionService.expandMaterialConfigsForScheduling(pipelineConfig.materialConfigs()); Materials expandedMaterials = materialConfigConverter.toMaterials(expandedMaterialConfigs); BuildCause buildCause = null; boolean materialConfigurationChanged = hasConfigChanged(previousBuild, expandedMaterials);