From 77f6c9067d97e7bc9e3fc11892ec7dd33d06ce68 Mon Sep 17 00:00:00 2001 From: LiHui Date: Mon, 19 Apr 2021 16:36:22 +0800 Subject: [PATCH] Fix: validate repo when modify url Signed-off-by: LiHui --- pkg/kapis/openpitrix/v1/handler.go | 8 ++++++-- pkg/models/openpitrix/repos.go | 10 ++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/pkg/kapis/openpitrix/v1/handler.go b/pkg/kapis/openpitrix/v1/handler.go index 8a7c77f42..2295a65c4 100644 --- a/pkg/kapis/openpitrix/v1/handler.go +++ b/pkg/kapis/openpitrix/v1/handler.go @@ -201,8 +201,12 @@ func (h *openpitrixHandler) ModifyRepo(req *restful.Request, resp *restful.Respo err = h.openpitrix.ModifyRepo(repoId, &updateRepoRequest) if err != nil { - klog.Errorln(err) - handleOpenpitrixError(resp, err) + klog.Error(err) + if apierrors.IsNotFound(err) { + api.HandleNotFound(resp, nil, err) + return + } + api.HandleBadRequest(resp, nil, err) return } else { klog.V(4).Info("modify repo: ", repoId) diff --git a/pkg/models/openpitrix/repos.go b/pkg/models/openpitrix/repos.go index fb55e3e1b..f37e7b256 100644 --- a/pkg/models/openpitrix/repos.go +++ b/pkg/models/openpitrix/repos.go @@ -175,11 +175,10 @@ func (c *repoOperator) ModifyRepo(id string, request *ModifyRepoRequest) error { return repoItemExists } } - repoCopy.Spec.Name = *request.Name } - // modify credential + // modify url or credential if request.URL != nil && len(*request.URL) > 0 { parsedUrl, err := url.Parse(*request.URL) if err != nil { @@ -210,6 +209,13 @@ func (c *repoOperator) ModifyRepo(id string, request *ModifyRepoRequest) error { repoCopy.Spec.Credential = *cred repoCopy.Spec.Url = parsedUrl.String() + // validate repo + _, err = c.ValidateRepo(repoCopy.Spec.Url, &repo.Spec.Credential) + if err != nil { + klog.Errorf("validate repo failed, err: %s", err) + return err + } + // change repo name and description won't change version repoCopy.Spec.Version += 1 }