@Override public PipelineConfig doFetchEntityFromConfig(String name) { return pipelineConfigService.getPipelineConfig(name); }
public List<PipelineConfigs> viewableOrOperatableGroupsFor(Username username) { ArrayList<PipelineConfigs> list = new ArrayList<>(); for (PipelineConfigs pipelineConfigs : goConfigService.cruiseConfig().getGroups()) { if (hasViewOrOperatePermissionForGroup(username, pipelineConfigs.getGroup())) { list.add(pipelineConfigs); } } return list; }
private void validatePluggableTasks(PipelineConfig config) { for (PluggableTask task : pluggableTask(config)) { pluggableTaskService.isValid(task); } }
public Map<CaseInsensitiveString, CanDeleteResult> canDeletePipelines() { CruiseConfig cruiseConfig = goConfigService.getCurrentConfig(); Map<CaseInsensitiveString, CanDeleteResult> nameToCanDeleteIt = new HashMap<>(); Hashtable<CaseInsensitiveString, Node> hashtable = cruiseConfig.getDependencyTable(); List<CaseInsensitiveString> pipelineNames = cruiseConfig.getAllPipelineNames(); for (CaseInsensitiveString pipelineName : pipelineNames) { ConfigOrigin origin = pipelineConfigOrigin(cruiseConfig, pipelineName); if (origin != null && !origin.isLocal()) { nameToCanDeleteIt.put(pipelineName, new CanDeleteResult(false, "Cannot delete pipeline '" + pipelineName + "' defined in configuration repository '" + origin.displayName() + "'.")); } else { CaseInsensitiveString envName = environmentUsedIn(cruiseConfig, pipelineName); if (envName != null) { nameToCanDeleteIt.put(pipelineName, new CanDeleteResult(false, "Cannot delete pipeline '" + pipelineName + "' as it is present in environment '" + envName + "'.")); } else { CaseInsensitiveString downStream = downstreamOf(hashtable, pipelineName); if (downStream != null) { nameToCanDeleteIt.put(pipelineName, new CanDeleteResult(false, "Cannot delete pipeline '" + pipelineName + "' as pipeline '" + downStream + "' depends on it.")); } else { nameToCanDeleteIt.put(pipelineName, new CanDeleteResult(true, "Delete this pipeline.")); } } } } return nameToCanDeleteIt; }
public ModelAndView index(Request request, Response response) { HashMap<String, String> locals = new HashMap<String, String>() {{ List<String> pipelines = new ArrayList<>(); pipelineConfigService.viewableGroupsFor(SessionUtils.currentUsername()).forEach( (PipelineConfigs config) -> config.getPipelines().forEach( (p) -> pipelines.add(p.name().toString()) ) ); put("viewTitle", "Analytics"); put("pipelines", GSON.toJson(pipelines)); }}; return new ModelAndView(locals, "analytics/index.vm"); }
private void checkPipelineExists(Request request, Response response) { if (isPipelineRequest(request)) { if (null == pipelineConfigService.pipelineConfigNamed(request.queryParams("pipeline_name"))) { throw halt(404, format("Cannot generate analytics. Pipeline with name: '%s' not found.", request.queryParams("pipeline_name"))); } } }
public String create(Request req, Response res) { PipelineConfig pipelineConfigFromRequest = buildEntityFromRequestBody(req); haltIfEntityBySameNameInRequestExists(pipelineConfigFromRequest); String group = getOrHaltForGroupName(req); HttpLocalizedOperationResult result = new HttpLocalizedOperationResult(); Username userName = SessionUtils.currentUsername(); pipelineConfigService.createPipelineConfig(userName, pipelineConfigFromRequest, result, group); return handleCreateOrUpdateResponse(req, res, pipelineConfigFromRequest, result); }
public String destroy(Request req, Response res) throws IOException { PipelineConfig existingPipelineConfig = fetchEntityFromConfig(req.params("pipeline_name")); haltIfPipelineIsDefinedRemotely(existingPipelineConfig); HttpLocalizedOperationResult result = new HttpLocalizedOperationResult(); pipelineConfigService.deletePipelineConfig(SessionUtils.currentUsername(), existingPipelineConfig, result); return renderHTTPOperationResult(result, req, res); }
public ModelAndView index(Request request, Response response) { Username username = currentUsername(); if (pipelineConfigService.viewableGroupsFor(username).isEmpty() && securityService.canCreatePipelines(username)) { response.redirect("/go/admin/pipeline/new?group=defaultGroup"); return null; } HashMap<Object, Object> object = new HashMap<Object, Object>() {{ put("viewTitle", "Dashboard"); put("shouldShowAnalyticsIcon", showAnalyticsIcon()); }}; return new ModelAndView(object, "new_dashboard/index.vm"); }
public String pipelinesData(Request request, Response response) { List<PipelineConfigs> groups = pipelineConfigService.viewableGroupsFor(currentUsername()); String etag = calcPipelinesDataEtag(currentUsername(), groups); if (fresh(request, etag)) { return notModified(response); } setEtagHeader(response, etag); PipelinesDataResponse pipelineSelectionResponse = new PipelinesDataResponse(groups); return PipelinesDataRepresenter.toJSON(pipelineSelectionResponse); }
private void haltIfEntityBySameNameInRequestExists(PipelineConfig pipelineConfig) { if (pipelineConfigService.getPipelineConfig(pipelineConfig.name().toString()) == null) { return; } pipelineConfig.addError("name", LocalizedMessage.resourceAlreadyExists("pipeline", pipelineConfig.name().toString())); throw haltBecauseEntityAlreadyExists(jsonWriter(pipelineConfig), "pipeline", pipelineConfig.getName()); } }