From 61a990c75e2e60eaf40084cacf1469d86f7f9dd7 Mon Sep 17 00:00:00 2001 From: LiHui Date: Wed, 31 Mar 2021 11:45:25 +0800 Subject: [PATCH] Fix: update repo Signed-off-by: LiHui --- pkg/kapis/openpitrix/v1/handler.go | 6 +++++- pkg/models/openpitrix/repos.go | 20 +++++++------------- pkg/models/openpitrix/types.go | 4 ++-- pkg/models/openpitrix/utils.go | 4 ++++ 4 files changed, 18 insertions(+), 16 deletions(-) diff --git a/pkg/kapis/openpitrix/v1/handler.go b/pkg/kapis/openpitrix/v1/handler.go index 12dd46115..9ac9c4980 100644 --- a/pkg/kapis/openpitrix/v1/handler.go +++ b/pkg/kapis/openpitrix/v1/handler.go @@ -218,7 +218,11 @@ func (h *openpitrixHandler) DescribeRepo(req *restful.Request, resp *restful.Res if err != nil { klog.Errorln(err) - handleOpenpitrixError(resp, err) + if apierrors.IsNotFound(err) { + api.HandleNotFound(resp, nil, err) + return + } + api.HandleInternalError(resp, nil, err) return } diff --git a/pkg/models/openpitrix/repos.go b/pkg/models/openpitrix/repos.go index 9f7b4b97e..884238d29 100644 --- a/pkg/models/openpitrix/repos.go +++ b/pkg/models/openpitrix/repos.go @@ -20,7 +20,6 @@ import ( "sort" "strings" - "github.com/go-openapi/strfmt" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" @@ -160,7 +159,8 @@ func (c *repoOperator) ModifyRepo(id string, request *ModifyRepoRequest) error { repoCopy.Spec.Description = stringutils.ShortenString(*request.Description, DescriptionLen) } - if request.Name != nil && len(*request.Name) > 0 && *request.Name != repoCopy.Name { + // modify name of the repo + if request.Name != nil && len(*request.Name) > 0 && *request.Name != repoCopy.Spec.Name { items, err := c.repoLister.List(labels.SelectorFromSet(map[string]string{constants.WorkspaceLabelKey: repo.GetWorkspace()})) if err != nil && !apierrors.IsNotFound(err) { klog.Errorf("list helm repo failed: %s", err) @@ -207,10 +207,12 @@ func (c *repoOperator) ModifyRepo(id string, request *ModifyRepoRequest) error { repoCopy.Spec.Credential = *cred repoCopy.Spec.Url = parsedUrl.String() + + // change repo name and description won't change version + repoCopy.Spec.Version += 1 } patch := client.MergeFrom(repo) - repoCopy.Spec.Version += 1 data, err := patch.Data(repoCopy) if err != nil { klog.Error("create patch failed", err) @@ -238,16 +240,8 @@ func (c *repoOperator) DescribeRepo(id string) (*Repo, error) { return nil, err } - var desRepo Repo - - desRepo.URL = repo.Spec.Url - desRepo.Description = repo.Spec.Description - desRepo.Name = repo.GetTrueName() - desRepo.RepoId = repo.Name - dt, _ := strfmt.ParseDateTime(repo.CreationTimestamp.String()) - desRepo.CreateTime = &dt - - return &desRepo, nil + retRepo := convertRepo(repo) + return retRepo, nil } func (c *repoOperator) ListRepos(conditions *params.Conditions, orderBy string, reverse bool, limit, offset int) (*models.PageableResponse, error) { diff --git a/pkg/models/openpitrix/types.go b/pkg/models/openpitrix/types.go index 3e4c7cd4a..169c23b62 100644 --- a/pkg/models/openpitrix/types.go +++ b/pkg/models/openpitrix/types.go @@ -690,8 +690,8 @@ type Repo struct { // repository name Name string `json:"name,omitempty"` - // owner - Owner string `json:"owner,omitempty"` + // creator + Creator string `json:"creator,omitempty"` // runtime provider eg.[qingcloud|aliyun|aws|kubernetes] Providers []string `json:"providers"` diff --git a/pkg/models/openpitrix/utils.go b/pkg/models/openpitrix/utils.go index d54941c05..1b4d63753 100644 --- a/pkg/models/openpitrix/utils.go +++ b/pkg/models/openpitrix/utils.go @@ -407,6 +407,10 @@ func convertRepo(in *v1alpha1.HelmRepo) *Repo { out.CreateTime = &date out.Description = in.Spec.Description + out.Creator = in.GetCreator() + + cred, _ := json.Marshal(in.Spec.Credential) + out.Credential = string(cred) out.URL = in.Spec.Url return &out