From 918ed9727b08409632a71bb2cd789d67f227e61c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 16 Feb 2023 14:04:41 +0800 Subject: [PATCH] [Backport release-1.7] Fix: delete the secret of the cluster (#5517) * Fix: delete the secret of the cluster Signed-off-by: suwanliang_yewu (cherry picked from commit ec466ab67e0a69ae7ae2c7dce24ea8fa1cd0a718) * Fix: add test Signed-off-by: suwanliang_yewu (cherry picked from commit 63c44fdc39cf13ad1f1c2bc143a40b6ad3437fcc) * Fix: modify error Signed-off-by: suwanliang_yewu (cherry picked from commit e58059736702f3ef621b931c0a4154e2081b6062) * Fix: solve check-diff Signed-off-by: suwanliang_yewu (cherry picked from commit c2316e10e8dd557d4120cda8412b6cc2cffd8118) * Fix: modify test Signed-off-by: suwanliang_yewu (cherry picked from commit afca7e60278439c1707d880d444fa8268e34a580) --------- Co-authored-by: suwanliang_yewu --- pkg/apiserver/domain/service/cluster.go | 5 ++++- pkg/apiserver/domain/service/cluster_test.go | 21 ++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/pkg/apiserver/domain/service/cluster.go b/pkg/apiserver/domain/service/cluster.go index 8962567d8..49361a13e 100644 --- a/pkg/apiserver/domain/service/cluster.go +++ b/pkg/apiserver/domain/service/cluster.go @@ -387,7 +387,10 @@ func (c *clusterServiceImpl) DeleteKubeCluster(ctx context.Context, clusterName cluster, err := c.getClusterFromDataStore(ctx, clusterName) if err != nil { if errors.Is(err, datastore.ErrRecordNotExist) { - return nil, bcode.ErrClusterNotFoundInDataStore + if err = multicluster.DetachCluster(ctx, c.K8sClient, clusterName); err != nil { + return nil, bcode.ErrClusterNotFoundInDataStore + } + return &apis.ClusterBase{Name: clusterName}, nil } return nil, errors.Wrapf(err, "failed to found cluster %s in data store", clusterName) } diff --git a/pkg/apiserver/domain/service/cluster_test.go b/pkg/apiserver/domain/service/cluster_test.go index 680d3a256..5cf645666 100644 --- a/pkg/apiserver/domain/service/cluster_test.go +++ b/pkg/apiserver/domain/service/cluster_test.go @@ -98,6 +98,27 @@ var _ = Describe("Test cluster service function", func() { Expect(err).Should(Equal(bcode.ErrClusterNotFoundInDataStore)) }) + It("Test delete kube cluster", func() { + service := clusterServiceImpl{ + Store: ds, + caches: cache, + K8sClient: k8sClient, + } + Expect(createClusterSecret("prism-cluster", "prism-alias")).Should(Succeed()) + Expect(ds.Add(ctx, &model.Cluster{Name: "prism-cluster", Alias: "prism-alias", Icon: "prism-icon"})).Should(Succeed()) + resp, err := service.DeleteKubeCluster(ctx, "prism-cluster") + Expect(err).Should(Succeed()) + Expect(resp.Name).Should(Equal("prism-cluster")) + Expect(resp.Alias).Should(Equal("prism-alias")) + Expect(resp.Icon).Should(Equal("prism-icon")) + _, err = service.DeleteKubeCluster(ctx, "non-exist-cluster") + Expect(err).Should(Equal(bcode.ErrClusterNotFoundInDataStore)) + Expect(createClusterSecret("secret-exist-cm-non-exist-cluster", "secret-exist-cm-non-exist-cluster")).Should(Succeed()) + resp, err = service.DeleteKubeCluster(ctx, "secret-exist-cm-non-exist-cluster") + Expect(err).Should(Succeed()) + Expect(resp.Name).Should(Equal("secret-exist-cm-non-exist-cluster")) + }) + It("Test list kube clusters", func() { service := clusterServiceImpl{ Store: ds,