This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch release-1.4.x
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 6f64d3e1943ee3c33a8d47fab3137987c34f1543
Author: Antonin Stefanutti <anto...@stefanutti.fr>
AuthorDate: Tue May 11 14:41:17 2021 +0200

    chore(e2e): Polish upgrade e2e tests
---
 e2e/support/test_support.go                        |  61 ----------
 ...pgrade_operator_test.go => cli_upgrade_test.go} |  30 ++---
 e2e/upgrade/olm_upgrade_test.go                    | 123 +++++++++++----------
 e2e/upgrade/util.go                                |  92 +++++++++++++++
 4 files changed, 171 insertions(+), 135 deletions(-)

diff --git a/e2e/support/test_support.go b/e2e/support/test_support.go
index 6e2632f..a65ca10 100644
--- a/e2e/support/test_support.go
+++ b/e2e/support/test_support.go
@@ -27,7 +27,6 @@ import (
        "encoding/json"
        "errors"
        "fmt"
-       v1alpha12 "github.com/operator-framework/api/pkg/operators/v1alpha1"
        "io"
        "io/ioutil"
        "os"
@@ -35,7 +34,6 @@ import (
        "strings"
        "testing"
        "time"
-       "unsafe"
 
        "github.com/google/uuid"
        "github.com/onsi/gomega"
@@ -673,65 +671,6 @@ func KnativeService(ns string, name string) func() 
*servingv1.Service {
        }
 }
 
-func CKClusterServiceVersion(conditions func(v1alpha12.ClusterServiceVersion) 
bool ,ns string) func() *v1alpha12.ClusterServiceVersion {
-       return func() *v1alpha12.ClusterServiceVersion {
-               lst := v1alpha12.ClusterServiceVersionList{}
-               if err := TestClient().List(TestContext, &lst, 
ctrl.InNamespace(ns)); err != nil {
-                       panic(err)
-               }
-               for _, s := range lst.Items {
-                       if strings.Contains(s.Name, "camel-k") && conditions(s){
-                               return &s
-                       }
-               }
-               return nil
-       }
-}
-
-func CKClusterServiceVersionPhase(conditions 
func(v1alpha12.ClusterServiceVersion) bool, ns string) func() 
v1alpha12.ClusterServiceVersionPhase {
-       return func() v1alpha12.ClusterServiceVersionPhase {
-               if csv := CKClusterServiceVersion(conditions, ns)(); csv != nil 
&& unsafe.Sizeof(csv.Status) > 0 {
-                       return csv.Status.Phase
-               }
-               return ""
-       }
-}
-
-func CatalogSource(name string, ns string) func() *v1alpha12.CatalogSource {
-       return func() *v1alpha12.CatalogSource {
-               answer := v1alpha12.CatalogSource{
-                       TypeMeta: metav1.TypeMeta{
-                               Kind:       "CatalogSource",
-                               APIVersion: 
v1alpha1.SchemeGroupVersion.String(),
-                       },
-                       ObjectMeta: metav1.ObjectMeta{
-                               Namespace: ns,
-                               Name:      name,
-                       },
-               }
-               key := ctrl.ObjectKey{
-                       Namespace: ns,
-                       Name:      name,
-               }
-               if err := TestClient().Get(TestContext, key, &answer); err != 
nil && k8serrors.IsNotFound(err) {
-                       return nil
-               } else if err != nil {
-                       log.Errorf(err, "Error while retrieving CatalogSource 
%s", name)
-                       return nil
-               }
-               return &answer
-       }
-}
-
-func CatalogSourcePhase(name string, ns string) func() string {
-       return func() string {
-               if source := CatalogSource(name, ns)(); source != nil && 
source.Status.GRPCConnectionState != nil {
-                       return CatalogSource(name, 
ns)().Status.GRPCConnectionState.LastObservedState
-               }
-               return ""
-       }
-}
-
 func Deployment(ns string, name string) func() *appsv1.Deployment {
        return func() *appsv1.Deployment {
                answer := appsv1.Deployment{
diff --git a/e2e/upgrade/upgrade_operator_test.go 
b/e2e/upgrade/cli_upgrade_test.go
similarity index 79%
rename from e2e/upgrade/upgrade_operator_test.go
rename to e2e/upgrade/cli_upgrade_test.go
index 2ce5775..095943e 100644
--- a/e2e/upgrade/upgrade_operator_test.go
+++ b/e2e/upgrade/cli_upgrade_test.go
@@ -28,10 +28,10 @@ import (
 
        . "github.com/onsi/gomega"
 
-       v1 "k8s.io/api/core/v1"
+       corev1 "k8s.io/api/core/v1"
 
        . "github.com/apache/camel-k/e2e/support"
-       camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+       v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
        "github.com/apache/camel-k/pkg/util/defaults"
 )
 
@@ -49,14 +49,14 @@ func TestOperatorUpgrade(t *testing.T) {
                kamel, ok := os.LookupEnv("RELEASED_KAMEL_BIN")
                Expect(ok).To(BeTrue())
 
-               //set KAMEL_BIN only for this test - don't override the ENV 
variable for all tests
+               // Set KAMEL_BIN only for this test - don't override the ENV 
variable for all tests
                Expect(os.Setenv("KAMEL_BIN", kamel)).To(Succeed())
 
                Expect(Kamel("install", "--olm=false", "--cluster-setup", 
"--force").Execute()).To(Succeed())
                Expect(Kamel("install", "--olm=false", "-n", 
ns).Execute()).To(Succeed())
 
                // Check the operator pod is running
-               Eventually(OperatorPodPhase(ns), 
TestTimeoutMedium).Should(Equal(v1.PodRunning))
+               Eventually(OperatorPodPhase(ns), 
TestTimeoutMedium).Should(Equal(corev1.PodRunning))
 
                // Refresh the test client to account for the newly installed 
CRDs
                SyncClient()
@@ -67,11 +67,11 @@ func TestOperatorUpgrade(t *testing.T) {
                // Run the Integration
                name := "yaml"
                Expect(Kamel("run", "-n", ns, 
"files/yaml.yaml").Execute()).To(Succeed())
-               Eventually(IntegrationPodPhase(ns, name), 
TestTimeoutMedium).Should(Equal(v1.PodRunning))
-               Eventually(IntegrationCondition(ns, name, 
camelv1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(v1.ConditionTrue))
+               Eventually(IntegrationPodPhase(ns, name), 
TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+               Eventually(IntegrationCondition(ns, name, 
v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
                // Check the Integration version
-               Eventually(IntegrationVersion(ns, 
"yaml")).Should(Equal(version))
-               kit := IntegrationKit(ns, "yaml")()
+               Eventually(IntegrationVersion(ns, name)).Should(Equal(version))
+               kit := IntegrationKit(ns, name)()
 
                // Clear the KAMEL_BIN environment variable so that the current 
version is used from now on
                Expect(os.Setenv("KAMEL_BIN", "")).To(Succeed())
@@ -84,27 +84,27 @@ func TestOperatorUpgrade(t *testing.T) {
                // Check the operator image is the current built one
                Eventually(OperatorImage(ns)).Should(Equal(image))
                // Check the operator pod is running
-               Eventually(OperatorPodPhase(ns), 
TestTimeoutMedium).Should(Equal(v1.PodRunning))
+               Eventually(OperatorPodPhase(ns), 
TestTimeoutMedium).Should(Equal(corev1.PodRunning))
                // Check the IntegrationPlatform has been reconciled
                Eventually(PlatformVersion(ns), 
TestTimeoutMedium).Should(Equal(defaults.Version))
 
                // Check the Integration hasn't been upgraded
-               Consistently(IntegrationVersion(ns, "yaml"), 
3*time.Second).Should(Equal(version))
+               Consistently(IntegrationVersion(ns, name), 
3*time.Second).Should(Equal(version))
 
                // Force the Integration upgrade
-               Expect(Kamel("rebuild", "yaml", "-n", 
ns).Execute()).To(Succeed())
+               Expect(Kamel("rebuild", name, "-n", ns).Execute()).To(Succeed())
 
                // Check the Integration version change
-               Eventually(IntegrationVersion(ns, 
"yaml")).Should(Equal(defaults.Version))
+               Eventually(IntegrationVersion(ns, 
name)).Should(Equal(defaults.Version))
                // Check the previous kit is not garbage collected
                Eventually(KitsWithVersion(ns, version)).Should(Equal(1))
                // Check a new kit is created with the current version
                Eventually(KitsWithVersion(ns, 
defaults.Version)).Should(Equal(1))
                // Check the Integration uses the new kit
-               Eventually(IntegrationKit(ns, "yaml"), 
TestTimeoutMedium).ShouldNot(Equal(kit))
+               Eventually(IntegrationKit(ns, name), 
TestTimeoutMedium).ShouldNot(Equal(kit))
                // Check the Integration runs correctly
-               Eventually(IntegrationPodPhase(ns, "yaml"), 
TestTimeoutMedium).Should(Equal(v1.PodRunning))
-               Eventually(IntegrationCondition(ns, name, 
camelv1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(v1.ConditionTrue))
+               Eventually(IntegrationPodPhase(ns, name), 
TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+               Eventually(IntegrationCondition(ns, name, 
v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
 
                // Clean up
                Expect(Kamel("delete", "--all", "-n", 
ns).Execute()).To(Succeed())
diff --git a/e2e/upgrade/olm_upgrade_test.go b/e2e/upgrade/olm_upgrade_test.go
index 2913493..21f6237 100644
--- a/e2e/upgrade/olm_upgrade_test.go
+++ b/e2e/upgrade/olm_upgrade_test.go
@@ -23,19 +23,24 @@ package common
 
 import (
        "fmt"
-       . "github.com/apache/camel-k/e2e/support"
-       . "github.com/onsi/gomega"
-       "github.com/operator-framework/api/pkg/lib/version"
-       "github.com/operator-framework/api/pkg/operators/v1alpha1"
-       v1 "k8s.io/api/core/v1"
-       "k8s.io/apimachinery/pkg/api/errors"
-       metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
        "os"
-       ctrl "sigs.k8s.io/controller-runtime/pkg/client"
        "testing"
+
+       . "github.com/onsi/gomega"
+
+       corev1 "k8s.io/api/core/v1"
+       metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+
+       ctrlutil "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
+
+       "github.com/operator-framework/api/pkg/lib/version"
+       olm "github.com/operator-framework/api/pkg/operators/v1alpha1"
+
+       . "github.com/apache/camel-k/e2e/support"
+       v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
 )
 
-const CATALOG_SOURCE_NAME = "test-camel-k-source"
+const catalogSourceName = "test-camel-k-source"
 
 func TestOLMAutomaticUpgrade(t *testing.T) {
        prevIIB := os.Getenv("CAMEL_K_PREV_IIB")
@@ -43,23 +48,23 @@ func TestOLMAutomaticUpgrade(t *testing.T) {
        kamel := os.Getenv("RELEASED_KAMEL_BIN")
 
        if prevIIB == "" || newIIB == "" {
-               t.Skip("OLM Upgrade test needs CAMEL_K_PREV_IIB and 
CAMEL_K_PREV_IIB ENV variables")
+               t.Skip("OLM Upgrade test requires the CAMEL_K_PREV_IIB and 
CAMEL_K_NEW_IIB environment variables")
        }
 
        WithNewTestNamespace(t, func(ns string) {
-               Expect(createCatalogSource(CATALOG_SOURCE_NAME, prevIIB, 
ns)).To(Succeed())
-               Eventually(CatalogSourcePhase(CATALOG_SOURCE_NAME, ns), 
TestTimeoutMedium).Should(Equal("READY"))
+               Expect(createOrUpdateCatalogSource(ns, catalogSourceName, 
prevIIB)).To(Succeed())
+               Eventually(catalogSourcePhase(ns, catalogSourceName), 
TestTimeoutMedium).Should(Equal("READY"))
 
-               //set KAMEL_BIN only for this test - don't override the ENV 
variable for all tests
+               // Set KAMEL_BIN only for this test - don't override the ENV 
variable for all tests
                Expect(os.Setenv("KAMEL_BIN", kamel)).To(Succeed())
 
-               Expect(Kamel("install", "-n", ns, "--olm=true", "--olm-source", 
CATALOG_SOURCE_NAME, "--olm-source-namespace", ns).Execute()).To(Succeed())
+               Expect(Kamel("install", "-n", ns, "--olm=true", "--olm-source", 
catalogSourceName, "--olm-source-namespace", ns).Execute()).To(Succeed())
 
-               //find the only one Camel-K CSV
-               noAdditionalConditions := func(csv 
v1alpha1.ClusterServiceVersion) bool {
+               // Find the only one Camel-K CSV
+               noAdditionalConditions := func(csv olm.ClusterServiceVersion) 
bool {
                        return true
                }
-               Eventually(CKClusterServiceVersionPhase(noAdditionalConditions, 
ns), TestTimeoutMedium).Should(Equal(v1alpha1.CSVPhaseSucceeded))
+               Eventually(clusterServiceVersionPhase(noAdditionalConditions, 
ns), TestTimeoutMedium).Should(Equal(olm.CSVPhaseSucceeded))
 
                // Refresh the test client to account for the newly installed 
CRDs
                SyncClient()
@@ -72,92 +77,92 @@ func TestOLMAutomaticUpgrade(t *testing.T) {
                var prevIPVersionPrefix string
                var newIPVersionPrefix string
 
-               prevCSVVersion = 
CKClusterServiceVersion(noAdditionalConditions, ns)().Spec.Version
+               prevCSVVersion = clusterServiceVersion(noAdditionalConditions, 
ns)().Spec.Version
                prevIPVersionPrefix = fmt.Sprintf("%d.%d", 
prevCSVVersion.Version.Major, prevCSVVersion.Version.Minor)
 
-               Expect(OperatorPod(ns)).ToNot(BeNil())
-
-               Expect(Kamel("run", "-n", ns, 
"files/yaml.yaml").Execute()).To(Succeed())
-               Eventually(IntegrationPodPhase(ns, "yaml"), 
TestTimeoutMedium).Should(Equal(v1.PodRunning))
+               // Check the operator pod is running
+               Eventually(OperatorPodPhase(ns), 
TestTimeoutMedium).Should(Equal(corev1.PodRunning))
 
+               // Check the IntegrationPlatform has been reconciled
                
Eventually(PlatformVersion(ns)).Should(ContainSubstring(prevIPVersionPrefix))
-               Expect(IntegrationVersion(ns, 
"yaml")()).To(ContainSubstring(prevIPVersionPrefix))
 
-               t.Run("OLM upgrade", func(t *testing.T) {
+               name := "yaml"
+               Expect(Kamel("run", "-n", ns, 
"files/yaml.yaml").Execute()).To(Succeed())
+               Eventually(IntegrationPodPhase(ns, name), 
TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+               // Check the Integration runs correctly
+               Eventually(IntegrationCondition(ns, name, 
v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+               // Check the Integration version matches that of the current 
operator
+               Expect(IntegrationVersion(ns, 
name)()).To(ContainSubstring(prevIPVersionPrefix))
 
-                       //invoke OLM upgrade
-                       Expect(createCatalogSource(CATALOG_SOURCE_NAME, newIIB, 
ns)).To(Succeed())
+               t.Run("OLM upgrade", func(t *testing.T) {
+                       // Trigger Camel K operator upgrade by updating the 
CatalogSource with the new index image
+                       Expect(createOrUpdateCatalogSource(ns, 
catalogSourceName, newIIB)).To(Succeed())
 
-                       // previous CSV is REPLACING
-                       Eventually(CKClusterServiceVersionPhase(func(csv 
v1alpha1.ClusterServiceVersion) bool {
+                       // Check the previous CSV is being replaced
+                       Eventually(clusterServiceVersionPhase(func(csv 
olm.ClusterServiceVersion) bool {
                                return csv.Spec.Version.Version.String() == 
prevCSVVersion.Version.String()
-                       }, ns), 
TestTimeoutMedium).Should(Equal(v1alpha1.CSVPhaseReplacing))
+                       }, ns), 
TestTimeoutMedium).Should(Equal(olm.CSVPhaseReplacing))
 
-                       // the new version is installed
-                       Eventually(CKClusterServiceVersionPhase(func(csv 
v1alpha1.ClusterServiceVersion) bool {
+                       // The new CSV is installed
+                       Eventually(clusterServiceVersionPhase(func(csv 
olm.ClusterServiceVersion) bool {
                                return csv.Spec.Version.Version.String() != 
prevCSVVersion.Version.String()
-                       }, ns), 
TestTimeoutMedium).Should(Equal(v1alpha1.CSVPhaseSucceeded))
+                       }, ns), 
TestTimeoutMedium).Should(Equal(olm.CSVPhaseSucceeded))
 
-                       // the old version is gone
-                       Eventually(CKClusterServiceVersion(func(csv 
v1alpha1.ClusterServiceVersion) bool {
+                       // The old CSV is gone
+                       Eventually(clusterServiceVersion(func(csv 
olm.ClusterServiceVersion) bool {
                                return csv.Spec.Version.Version.String() == 
prevCSVVersion.Version.String()
                        }, ns), TestTimeoutMedium).Should(BeNil())
 
-                       newCSVVersion = 
CKClusterServiceVersion(noAdditionalConditions, ns)().Spec.Version
+                       newCSVVersion = 
clusterServiceVersion(noAdditionalConditions, ns)().Spec.Version
                        newIPVersionPrefix = fmt.Sprintf("%d.%d", 
newCSVVersion.Version.Major, newCSVVersion.Version.Minor)
 
                        
Expect(prevCSVVersion.Version.String()).NotTo(Equal(newCSVVersion.Version.String()))
 
-                       
Eventually(OperatorPodPhase(ns)).Should(Equal(v1.PodRunning))
+                       Eventually(OperatorPodPhase(ns), 
TestTimeoutMedium).Should(Equal(corev1.PodRunning))
 
+                       // Check the IntegrationPlatform has been reconciled
                        
Eventually(PlatformVersion(ns)).Should(ContainSubstring(newIPVersionPrefix))
                })
 
                t.Run("Integration upgrade", func(t *testing.T) {
-
                        // Clear the KAMEL_BIN environment variable so that the 
current version is used from now on
                        Expect(os.Setenv("KAMEL_BIN", "")).To(Succeed())
 
-                       Expect(IntegrationVersion(ns, 
"yaml")()).To(ContainSubstring(prevIPVersionPrefix))
-                       Expect(Kamel("rebuild", "yaml", "-n", 
ns).Execute()).To(Succeed())
+                       // Check the Integration is still running the old 
version
+                       Expect(IntegrationVersion(ns, 
name)()).To(ContainSubstring(prevIPVersionPrefix))
+
+                       // Rebuild the Integration
+                       Expect(Kamel("rebuild", name, "-n", 
ns).Execute()).To(Succeed())
 
-                       Eventually(IntegrationVersion(ns, "yaml"), 
TestTimeoutMedium).Should(ContainSubstring(newIPVersionPrefix))
-                       Eventually(IntegrationPodPhase(ns, 
"yaml")).Should(Equal(v1.PodRunning))
+                       // Check the Integration runs correctly
+                       Eventually(IntegrationPodPhase(ns, 
name)).Should(Equal(corev1.PodRunning))
+                       // Check the Integration has upgraded
+                       Eventually(IntegrationVersion(ns, name), 
TestTimeoutMedium).Should(ContainSubstring(newIPVersionPrefix))
 
                        // Clean up
                        Expect(Kamel("delete", "--all", "-n", 
ns).Execute()).To(Succeed())
                        Expect(Kamel("uninstall", "-n", 
ns).Execute()).To(Succeed())
                })
-
        })
 }
 
-func createCatalogSource(name string, image string, ns string) error {
-       catalogSource := v1alpha1.CatalogSource{
-               TypeMeta: metav1.TypeMeta{
-                       Kind:       "CatalogSource",
-                       APIVersion: v1alpha1.SchemeGroupVersion.String(),
-               },
+func createOrUpdateCatalogSource(ns, name, image string) error {
+       catalogSource := &olm.CatalogSource{
                ObjectMeta: metav1.ObjectMeta{
                        Namespace: ns,
                        Name:      name,
                },
        }
-       key := ctrl.ObjectKey{
-               Namespace: ns,
-               Name:      name,
-       }
-       if err := TestClient().Get(TestContext, key, &catalogSource); 
errors.IsNotFound(err) {
-               catalogSource.Spec = v1alpha1.CatalogSourceSpec{
+
+       _, err := ctrlutil.CreateOrUpdate(TestContext, TestClient(), 
catalogSource, func() error {
+               catalogSource.Spec = olm.CatalogSourceSpec{
                        Image:       image,
                        SourceType:  "grpc",
                        DisplayName: "OLM upgrade test Catalog",
                        Publisher:   "grpc",
                }
-               return TestClient().Create(TestContext, &catalogSource)
-       } else {
-               catalogSource.Spec.Image = image
-               return TestClient().Update(TestContext, &catalogSource)
-       }
+               return nil
+       })
 
+       return err
 }
diff --git a/e2e/upgrade/util.go b/e2e/upgrade/util.go
new file mode 100644
index 0000000..0b6d667
--- /dev/null
+++ b/e2e/upgrade/util.go
@@ -0,0 +1,92 @@
+// +build integration
+
+// To enable compilation of this file in Goland, go to "Settings -> Go -> 
Vendoring & Build Tags -> Custom Tags" and add "integration"
+
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package common
+
+import (
+       "strings"
+       "unsafe"
+
+       "k8s.io/apimachinery/pkg/api/errors"
+       metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+
+       ctrl "sigs.k8s.io/controller-runtime/pkg/client"
+
+       olm "github.com/operator-framework/api/pkg/operators/v1alpha1"
+
+       . "github.com/apache/camel-k/e2e/support"
+       "github.com/apache/camel-k/pkg/util/log"
+)
+
+func clusterServiceVersion(conditions func(olm.ClusterServiceVersion) bool, ns 
string) func() *olm.ClusterServiceVersion {
+       return func() *olm.ClusterServiceVersion {
+               lst := olm.ClusterServiceVersionList{}
+               if err := TestClient().List(TestContext, &lst, 
ctrl.InNamespace(ns)); err != nil {
+                       panic(err)
+               }
+               for _, s := range lst.Items {
+                       if strings.Contains(s.Name, "camel-k") && conditions(s) 
{
+                               return &s
+                       }
+               }
+               return nil
+       }
+}
+
+func clusterServiceVersionPhase(conditions func(olm.ClusterServiceVersion) 
bool, ns string) func() olm.ClusterServiceVersionPhase {
+       return func() olm.ClusterServiceVersionPhase {
+               if csv := clusterServiceVersion(conditions, ns)(); csv != nil 
&& unsafe.Sizeof(csv.Status) > 0 {
+                       return csv.Status.Phase
+               }
+               return ""
+       }
+}
+
+func catalogSource(ns, name string) func() *olm.CatalogSource {
+       return func() *olm.CatalogSource {
+               cs := &olm.CatalogSource{
+                       TypeMeta: metav1.TypeMeta{
+                               Kind:       "CatalogSource",
+                               APIVersion: olm.SchemeGroupVersion.String(),
+                       },
+                       ObjectMeta: metav1.ObjectMeta{
+                               Namespace: ns,
+                               Name:      name,
+                       },
+               }
+               if err := TestClient().Get(TestContext, 
ctrl.ObjectKeyFromObject(cs), cs); err != nil && errors.IsNotFound(err) {
+                       return nil
+               } else if err != nil {
+                       log.Errorf(err, "Error while retrieving CatalogSource 
%s", name)
+                       return nil
+               }
+               return cs
+       }
+}
+
+func catalogSourcePhase(ns, name string) func() string {
+       return func() string {
+               if source := catalogSource(ns, name)(); source != nil && 
source.Status.GRPCConnectionState != nil {
+                       return catalogSource(ns, 
name)().Status.GRPCConnectionState.LastObservedState
+               }
+               return ""
+       }
+}

Reply via email to