diff --git a/pkg/kapis/openpitrix/v1/handler.go b/pkg/kapis/openpitrix/v1/handler.go index ebd17e033..e062fd136 100644 --- a/pkg/kapis/openpitrix/v1/handler.go +++ b/pkg/kapis/openpitrix/v1/handler.go @@ -202,8 +202,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 849bf2ee5..d4d587667 100644 --- a/pkg/models/openpitrix/repos.go +++ b/pkg/models/openpitrix/repos.go @@ -176,11 +176,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 { @@ -211,6 +210,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 }