From 6798b1a8d646c47918b53764c931c304241284ac Mon Sep 17 00:00:00 2001 From: Ralf Grubenmann Date: Tue, 14 Mar 2023 08:42:34 +0100 Subject: [PATCH] fix(service): fix error message for invalid templates (#3349) --- .../service/controllers/templates_create_project.py | 6 ++++-- renku/ui/service/errors.py | 12 ++++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/renku/ui/service/controllers/templates_create_project.py b/renku/ui/service/controllers/templates_create_project.py index 166eb34f07..9b4f6d1292 100644 --- a/renku/ui/service/controllers/templates_create_project.py +++ b/renku/ui/service/controllers/templates_create_project.py @@ -29,7 +29,7 @@ from renku.ui.service.config import MESSAGE_PREFIX from renku.ui.service.controllers.api.abstract import ServiceCtrl from renku.ui.service.controllers.api.mixins import RenkuOperationMixin -from renku.ui.service.errors import UserProjectCreationError +from renku.ui.service.errors import UserProjectCreationError, UserTemplateInvalidError from renku.ui.service.serializers.templates import ProjectTemplateRequest, ProjectTemplateResponseRPC from renku.ui.service.utils import new_repo_push from renku.ui.service.views import result_response @@ -116,10 +116,12 @@ def setup_template(self): identifier = self.ctx["identifier"] try: self.template = templates_source.get_template(id=identifier, reference=None) - except (errors.InvalidTemplateError, errors.TemplateNotFoundError) as e: + except errors.TemplateNotFoundError as e: raise UserProjectCreationError( error_message=f"the template '{identifier}' does not exist in the target template's repository" ) from e + except errors.InvalidTemplateError as e: + raise UserTemplateInvalidError(error_message=f"the template '{identifier}' is invalid") from e repository = Repository(templates_source.path) self.template_version = repository.head.commit.hexsha diff --git a/renku/ui/service/errors.py b/renku/ui/service/errors.py index fe80073441..5967ea66b4 100644 --- a/renku/ui/service/errors.py +++ b/renku/ui/service/errors.py @@ -261,11 +261,15 @@ class UserTemplateInvalidError(ServiceError): """The provided URL doesn't lead to a valid template repository.""" code = SVC_ERROR_USER + 101 - userMessage = "The target repository is not a valid Renku template repository." - devMessage = "Target repository is not a valid template." + userMessage = "The target repository is not a valid Renku template repository: {error_message}" + devMessage = "Target repository is not a valid template.: {error_message}" - def __init__(self, exception=None): - super().__init__(exception=exception) + def __init__(self, exception=None, error_message=ERROR_NOT_AVAILABLE): + super().__init__( + userMessage=self.userMessage.format(error_message=error_message), + devMessage=self.devMessage.format(error_message=error_message), + exception=exception, + ) class UserProjectCreationError(ServiceError):