private PipelineTemplateConfig findTemplate(String templateName, HttpLocalizedOperationResult result, GoConfigHolder configHolder) { if (!doesTemplateExist(templateName, configHolder.configForEdit, result)) { return null; } return configHolder.configForEdit.findTemplate(new CaseInsensitiveString(templateName)); } }
public PipelineTemplateConfig loadForView(String templateName, HttpLocalizedOperationResult result) { return findTemplate(templateName, result, goConfigService.getConfigHolder()); }
private void validatePluggableTasks(PipelineTemplateConfig templateConfig) { for (PluggableTask task : getPluggableTask(templateConfig)) { pluggableTaskService.isValid(task); } }
public void updateTemplateConfig(final Username currentUser, final PipelineTemplateConfig templateConfig, final LocalizedOperationResult result, String md5) { validatePluggableTasks(templateConfig); UpdateTemplateConfigCommand command = new UpdateTemplateConfigCommand(templateConfig, currentUser, securityService, result, md5, entityHashingService, externalArtifactsService); update(currentUser, result, command, templateConfig); }
@Override public PipelineTemplateConfig doFetchEntityFromConfig(String name) { return templateConfigService.loadForView(name, new HttpLocalizedOperationResult()); }
public void updateTemplateAuthConfig(final Username currentUser, final PipelineTemplateConfig templateConfig, final Authorization authorization, final LocalizedOperationResult result, String md5) { UpdateTemplateAuthConfigCommand command = new UpdateTemplateAuthConfigCommand(templateConfig, authorization, currentUser, securityService, result, md5, entityHashingService, externalArtifactsService); update(currentUser, result, command, templateConfig); }
public String index(Request req, Response res) throws IOException { List<TemplateToPipelines> templatesList = templateConfigService.getTemplatesList(currentUsername()); return writerForTopLevelObject(req, res, writer -> TemplatesConfigRepresenter.toJSON(writer, templatesList)); }
public List<TemplateToPipelines> getTemplatesList(Username username) { List<TemplateToPipelines> templateToPipelinesForUser = new ArrayList<>(); List<Role> roles = goConfigService.rolesForUser(username.getUsername()); Map<CaseInsensitiveString, Map<CaseInsensitiveString, Authorization>> allTemplatesAssociatedWithPipelines = goConfigService.getCurrentConfig().templatesWithAssociatedPipelines(); for (CaseInsensitiveString templateName : allTemplatesAssociatedWithPipelines.keySet()) { if (securityService.isAuthorizedToViewTemplate(templateName, username)) { Map<CaseInsensitiveString, Authorization> pipelinesWithAuthorization = allTemplatesAssociatedWithPipelines.get(templateName); TemplateToPipelines templateToPipelines = new TemplateToPipelines(templateName, securityService.isAuthorizedToEditTemplate(templateName, username), securityService.isUserAdmin(username)); templateToPipelinesForUser.add(templateToPipelines); for (CaseInsensitiveString pipelineName : pipelinesWithAuthorization.keySet()) { templateToPipelines.add(new PipelineEditabilityInfo(pipelineName, canAuthorizedTemplateUserEditPipeline(username, roles, pipelinesWithAuthorization.get(pipelineName)), goConfigService.isPipelineEditable(pipelineName))); } } } return templateToPipelinesForUser; }
public String destroy(Request req, Response res) throws IOException { PipelineTemplateConfig existingTemplateConfig = fetchEntityFromConfig(req.params("template_name")); HttpLocalizedOperationResult result = new HttpLocalizedOperationResult(); templateConfigService.deleteTemplateConfig(SessionUtils.currentUsername(), existingTemplateConfig, result); return renderHTTPOperationResult(result, req, res); }
public String create(Request req, Response res) { PipelineTemplateConfig templateConfigFromRequest = buildEntityFromRequestBody(req); haltIfEntityBySameNameInRequestExists(templateConfigFromRequest, new HttpLocalizedOperationResult()); HttpLocalizedOperationResult result = new HttpLocalizedOperationResult(); Username userName = SessionUtils.currentUsername(); templateConfigService.createTemplateConfig(userName, templateConfigFromRequest, result); return handleCreateOrUpdateResponse(req, res, templateConfigFromRequest, result); }
public String update(Request req, Response res) { PipelineTemplateConfig existingTemplateConfig = fetchEntityFromConfig(req.params("template_name")); PipelineTemplateConfig templateConfigFromRequest = buildEntityFromRequestBody(req); if (isRenameAttempt(existingTemplateConfig, templateConfigFromRequest)) { throw haltBecauseRenameOfEntityIsNotSupported("templates"); } if (isPutRequestStale(req, existingTemplateConfig)) { throw haltBecauseEtagDoesNotMatch("template", existingTemplateConfig.name()); } HttpLocalizedOperationResult result = new HttpLocalizedOperationResult(); templateConfigService.updateTemplateConfig(SessionUtils.currentUsername(), templateConfigFromRequest, result, etagFor(existingTemplateConfig)); return handleCreateOrUpdateResponse(req, res, templateConfigFromRequest, result); }
public void createTemplateConfig(final Username currentUser, final PipelineTemplateConfig templateConfig, final LocalizedOperationResult result) { validatePluggableTasks(templateConfig); CreateTemplateConfigCommand command = new CreateTemplateConfigCommand(templateConfig, currentUser, securityService, result, externalArtifactsService); update(currentUser, result, command, templateConfig); }
private void haltIfEntityBySameNameInRequestExists(PipelineTemplateConfig templateConfig, HttpLocalizedOperationResult result) { if (templateConfigService.loadForView(templateConfig.name().toString(), result) == null) { return; } templateConfig.addError("name", LocalizedMessage.resourceAlreadyExists("template", templateConfig.name().toString())); throw haltBecauseEntityAlreadyExists(jsonWriter(templateConfig), "template", templateConfig.name()); } }
public void deleteTemplateConfig(final Username currentUser, final PipelineTemplateConfig templateConfig, final LocalizedOperationResult result) { DeleteTemplateConfigCommand command = new DeleteTemplateConfigCommand(templateConfig, result, securityService, currentUser, externalArtifactsService); update(currentUser, result, command, templateConfig); if (result.isSuccessful()) { result.setMessage(LocalizedMessage.resourceDeleteSuccessful("template", templateConfig.name().toString())); } }
public ConfigForEdit<PipelineTemplateConfig> loadForEdit(String templateName, Username username, HttpLocalizedOperationResult result) { if (!securityService.isAuthorizedToEditTemplate(new CaseInsensitiveString(templateName), username)) { result.forbidden("Unauthorized to edit '" + templateName + "' template.", HealthStateType.forbidden()); return null; } GoConfigHolder configHolder = goConfigService.getConfigHolder(); configHolder = cloner.deepClone(configHolder); PipelineTemplateConfig template = findTemplate(templateName, result, configHolder); return template != null ? new ConfigForEdit<>(template, configHolder) : null; }
public void removeTemplate(String templateName, CruiseConfig cruiseConfig, String md5, HttpLocalizedOperationResult result) { if (!doesTemplateExist(templateName, cruiseConfig, result)) { return; } goConfigService.updateConfig(new DeleteTemplateCommand(templateName, md5)); }