From 0a74648f0fcd2754511b036a36cf950068c0954d Mon Sep 17 00:00:00 2001 From: ZhiweiYin Date: Thu, 18 Jun 2020 10:50:18 +0800 Subject: [PATCH] fix fails when retry on conflict --- test/e2e/loopback_test.go | 24 ++++++++++++------------ test/e2e/webhook_test.go | 18 ++++++++---------- 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/test/e2e/loopback_test.go b/test/e2e/loopback_test.go index 08542277a..70e3e6f26 100644 --- a/test/e2e/loopback_test.go +++ b/test/e2e/loopback_test.go @@ -184,20 +184,20 @@ var _ = ginkgo.Describe("Loopback registration [development]", func() { var csr *certificatesv1beta1.CertificateSigningRequest for i := range csrs.Items { csr = &csrs.Items[i] - csr, err = csrClient.Get(context.TODO(), csr.Name, metav1.GetOptions{}) - gomega.Expect(err).ToNot(gomega.HaveOccurred()) - - if helpers.IsCSRInTerminalState(&csr.Status) { - continue - } - - csr.Status.Conditions = append(csr.Status.Conditions, certificatesv1beta1.CertificateSigningRequestCondition{ - Type: certificatesv1beta1.CertificateApproved, - Reason: "Approved by E2E", - Message: "Approved as part of Loopback e2e", - }) err = retry.RetryOnConflict(retry.DefaultRetry, func() error { + csr, err = csrClient.Get(context.TODO(), csr.Name, metav1.GetOptions{}) + gomega.Expect(err).ToNot(gomega.HaveOccurred()) + + if helpers.IsCSRInTerminalState(&csr.Status) { + return nil + } + + csr.Status.Conditions = append(csr.Status.Conditions, certificatesv1beta1.CertificateSigningRequestCondition{ + Type: certificatesv1beta1.CertificateApproved, + Reason: "Approved by E2E", + Message: "Approved as part of Loopback e2e", + }) _, err := csrClient.UpdateApproval(context.TODO(), csr, metav1.UpdateOptions{}) return err }) diff --git a/test/e2e/webhook_test.go b/test/e2e/webhook_test.go index 8f9df1d84..0db781589 100644 --- a/test/e2e/webhook_test.go +++ b/test/e2e/webhook_test.go @@ -113,12 +113,11 @@ var _ = ginkgo.Describe("Managed cluster admission hook", func() { ginkgo.It("Should respond bad request when updating a managed cluster with invalid external server URLs", func() { ginkgo.By(fmt.Sprintf("update managed cluster %q with an invalid external server URL %q", clusterName, invalidURL)) - managedCluster, err := clusterClient.ClusterV1().ManagedClusters().Get(context.TODO(), clusterName, metav1.GetOptions{}) - gomega.Expect(err).NotTo(gomega.HaveOccurred()) + err := retry.RetryOnConflict(retry.DefaultRetry, func() error { + managedCluster, err := clusterClient.ClusterV1().ManagedClusters().Get(context.TODO(), clusterName, metav1.GetOptions{}) + gomega.Expect(err).NotTo(gomega.HaveOccurred()) - managedCluster.Spec.ManagedClusterClientConfigs[0].URL = invalidURL - - err = retry.RetryOnConflict(retry.DefaultRetry, func() error { + managedCluster.Spec.ManagedClusterClientConfigs[0].URL = invalidURL _, err = clusterClient.ClusterV1().ManagedClusters().Update(context.TODO(), managedCluster, metav1.UpdateOptions{}) return err }) @@ -140,12 +139,11 @@ var _ = ginkgo.Describe("Managed cluster admission hook", func() { unauthorizedClient, err := buildUnauthorizedClusterClient(sa) gomega.Expect(err).ToNot(gomega.HaveOccurred()) - spokeCluster, err := unauthorizedClient.ClusterV1().ManagedClusters().Get(context.TODO(), clusterName, metav1.GetOptions{}) - gomega.Expect(err).NotTo(gomega.HaveOccurred()) - - spokeCluster.Spec.HubAcceptsClient = true - err = retry.RetryOnConflict(retry.DefaultRetry, func() error { + spokeCluster, err := unauthorizedClient.ClusterV1().ManagedClusters().Get(context.TODO(), clusterName, metav1.GetOptions{}) + gomega.Expect(err).NotTo(gomega.HaveOccurred()) + + spokeCluster.Spec.HubAcceptsClient = true _, err = unauthorizedClient.ClusterV1().ManagedClusters().Update(context.TODO(), spokeCluster, metav1.UpdateOptions{}) return err })