From 2b5582a91f58cfa9632be55e54380de6ba493834 Mon Sep 17 00:00:00 2001 From: Max Leonard Inden Date: Tue, 28 Mar 2017 10:31:57 +0200 Subject: [PATCH] test: Replace own framework.Poll with client-go wait.Poll --- test/e2e/framework/alertmanager.go | 5 ++-- test/e2e/framework/framework.go | 28 +++----------------- test/e2e/framework/ingress.go | 3 ++- test/e2e/framework/prometheus.go | 3 ++- test/e2e/framework/replication-controller.go | 8 +++--- test/e2e/framework/service.go | 3 ++- test/e2e/prometheus_e2e_test.go | 7 ++--- 7 files changed, 22 insertions(+), 35 deletions(-) diff --git a/test/e2e/framework/alertmanager.go b/test/e2e/framework/alertmanager.go index 60e317849..734dd41d8 100644 --- a/test/e2e/framework/alertmanager.go +++ b/test/e2e/framework/alertmanager.go @@ -23,6 +23,7 @@ import ( "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/util/intstr" + "k8s.io/client-go/pkg/util/wait" "k8s.io/client-go/pkg/util/yaml" "github.com/coreos/prometheus-operator/pkg/alertmanager" @@ -174,7 +175,7 @@ func amImage(version string) string { } func (f *Framework) WaitForAlertmanagerInitializedMesh(name string, amountPeers int) error { - return f.Poll(time.Second*20, time.Second, func() (bool, error) { + return wait.Poll(time.Second, time.Second*20, func() (bool, error) { amStatus, err := f.GetAlertmanagerConfig(name) if err != nil { return false, err @@ -203,7 +204,7 @@ func (f *Framework) GetAlertmanagerConfig(n string) (alertmanagerStatus, error) } func (f *Framework) WaitForSpecificAlertmanagerConfig(amName string, expectedConfig string) error { - return f.Poll(time.Minute*5, time.Second, func() (bool, error) { + return wait.Poll(time.Second, time.Minute*5, func() (bool, error) { config, err := f.GetAlertmanagerConfig("alertmanager-" + amName + "-0") if err != nil { return false, err diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index c8f41aae3..b09da59cf 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -32,6 +32,7 @@ import ( "github.com/coreos/prometheus-operator/pkg/client/monitoring/v1alpha1" "github.com/coreos/prometheus-operator/pkg/k8sutil" "github.com/pkg/errors" + "k8s.io/client-go/pkg/util/wait" ) type Framework struct { @@ -174,7 +175,7 @@ func (f *Framework) Teardown() error { // WaitForPodsReady waits for a selection of Pods to be running and each // container to pass its readiness check. func (f *Framework) WaitForPodsReady(expectedReplicas int, opts v1.ListOptions) error { - return f.Poll(time.Minute*2, time.Second, func() (bool, error) { + return wait.Poll(time.Second, time.Minute*2, func() (bool, error) { pl, err := f.KubeClient.Core().Pods(f.Namespace.Name).List(opts) if err != nil { return false, err @@ -200,7 +201,7 @@ func (f *Framework) WaitForPodsReady(expectedReplicas int, opts v1.ListOptions) } func (f *Framework) WaitForPodsRunImage(expectedReplicas int, image string, opts v1.ListOptions) error { - return f.Poll(time.Minute*5, time.Second, func() (bool, error) { + return wait.Poll(time.Second, time.Minute*5, func() (bool, error) { pl, err := f.KubeClient.Core().Pods(f.Namespace.Name).List(opts) if err != nil { return false, err @@ -222,7 +223,7 @@ func (f *Framework) WaitForPodsRunImage(expectedReplicas int, image string, opts func (f *Framework) WaitForHTTPSuccessStatusCode(timeout time.Duration, url string) error { var resp *http.Response - err := f.Poll(timeout, time.Second, func() (bool, error) { + err := wait.Poll(time.Second, timeout, func() (bool, error) { var err error resp, err = http.Get(url) if err == nil && resp.StatusCode == 200 { @@ -274,27 +275,6 @@ func (f *Framework) GetLogs(podName, containerName string) (string, error) { return string(logs), err } -func (f *Framework) Poll(timeout, pollInterval time.Duration, pollFunc func() (bool, error)) error { - t := time.After(timeout) - ticker := time.NewTicker(pollInterval) - defer ticker.Stop() - - for { - select { - case <-t: - return fmt.Errorf("timed out") - case <-ticker.C: - b, err := pollFunc() - if err != nil { - return err - } - if b { - return nil - } - } - } -} - func (f *Framework) ProxyGetPod(podName string, port string, path string) *rest.Request { return f.KubeClient.CoreV1().RESTClient().Get().Prefix("proxy").Namespace(f.Namespace.Name).Resource("pods").Name(podName + ":" + port).Suffix(path) } diff --git a/test/e2e/framework/ingress.go b/test/e2e/framework/ingress.go index 6d102b8ca..c24006922 100644 --- a/test/e2e/framework/ingress.go +++ b/test/e2e/framework/ingress.go @@ -20,6 +20,7 @@ import ( "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/apis/extensions/v1beta1" "k8s.io/client-go/pkg/util/intstr" + "k8s.io/client-go/pkg/util/wait" "k8s.io/client-go/pkg/util/yaml" "os" "time" @@ -123,7 +124,7 @@ func (f *Framework) DeleteNginxIngressControllerIncDefaultBackend() error { func (f *Framework) GetIngressIP(ingressName string) (*string, error) { var ingress *v1beta1.Ingress - err := f.Poll(time.Minute*5, time.Millisecond*500, func() (bool, error) { + err := wait.Poll(time.Millisecond*500, time.Minute*5, func() (bool, error) { var err error ingress, err = f.KubeClient.Extensions().Ingresses(f.Namespace.Name).Get(ingressName) if err != nil { diff --git a/test/e2e/framework/prometheus.go b/test/e2e/framework/prometheus.go index cc8828799..e9e14abfc 100644 --- a/test/e2e/framework/prometheus.go +++ b/test/e2e/framework/prometheus.go @@ -25,6 +25,7 @@ import ( "k8s.io/client-go/pkg/api/unversioned" "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/util/intstr" + "k8s.io/client-go/pkg/util/wait" "github.com/coreos/prometheus-operator/pkg/client/monitoring/v1alpha1" "github.com/coreos/prometheus-operator/pkg/prometheus" @@ -186,7 +187,7 @@ func promImage(version string) string { func (f *Framework) WaitForTargets(amount int) error { var targets []*Target - if err := f.Poll(time.Minute*10, time.Second, func() (bool, error) { + if err := wait.Poll(time.Second, time.Minute*10, func() (bool, error) { var err error targets, err = f.GetActiveTargets() if err != nil { diff --git a/test/e2e/framework/replication-controller.go b/test/e2e/framework/replication-controller.go index 1d77c5e62..93470b9e9 100644 --- a/test/e2e/framework/replication-controller.go +++ b/test/e2e/framework/replication-controller.go @@ -15,10 +15,12 @@ package framework import ( - "k8s.io/client-go/pkg/api/v1" - "k8s.io/client-go/pkg/util/yaml" "os" "time" + + "k8s.io/client-go/pkg/api/v1" + "k8s.io/client-go/pkg/util/wait" + "k8s.io/client-go/pkg/util/yaml" ) func createReplicationControllerViaYml(filepath string, f *Framework) error { @@ -73,7 +75,7 @@ func scaleDownReplicationController(f *Framework, rC v1.ReplicationController) e return err } - return f.Poll(time.Minute*5, time.Second, func() (bool, error) { + return wait.Poll(time.Second, time.Minute*5, func() (bool, error) { currentRC, err := rCAPI.Get(rC.Name) if err != nil { return false, err diff --git a/test/e2e/framework/service.go b/test/e2e/framework/service.go index bfd20d47a..c5d21efa8 100644 --- a/test/e2e/framework/service.go +++ b/test/e2e/framework/service.go @@ -18,6 +18,7 @@ import ( "fmt" "github.com/pkg/errors" "k8s.io/client-go/pkg/api/v1" + "k8s.io/client-go/pkg/util/wait" "time" ) @@ -33,7 +34,7 @@ func (f *Framework) CreateServiceAndWaitUntilReady(service *v1.Service) error { } func (f *Framework) WaitForServiceReady(serviceName string) error { - err := f.Poll(time.Minute*5, time.Second, func() (bool, error) { + err := wait.Poll(time.Second, time.Minute*5, func() (bool, error) { endpoints, err := f.KubeClient.CoreV1().Endpoints(f.Namespace.Name).Get(serviceName) if err != nil { return false, errors.Wrap(err, fmt.Sprintf("requesting endpoints for servce %v failed", serviceName)) diff --git a/test/e2e/prometheus_e2e_test.go b/test/e2e/prometheus_e2e_test.go index 98c656c3f..306b63f88 100644 --- a/test/e2e/prometheus_e2e_test.go +++ b/test/e2e/prometheus_e2e_test.go @@ -27,6 +27,7 @@ import ( "k8s.io/client-go/pkg/api/resource" "k8s.io/client-go/pkg/api/v1" + "k8s.io/client-go/pkg/util/wait" "github.com/coreos/prometheus-operator/pkg/alertmanager" "github.com/coreos/prometheus-operator/pkg/client/monitoring/v1alpha1" @@ -230,7 +231,7 @@ func TestPrometheusReloadRules(t *testing.T) { } // remounting a ConfigMap can take some time - err = framework.Poll(time.Minute*5, time.Second, func() (bool, error) { + err = wait.Poll(time.Second, time.Minute*5, func() (bool, error) { logs, err := framework.GetLogs(fmt.Sprintf("prometheus-%s-0", name), "prometheus-config-reloader") if err != nil { return false, err @@ -288,7 +289,7 @@ func TestPrometheusDiscovery(t *testing.T) { } log.Print("Validating Prometheus Targets were properly discovered") - err = framework.Poll(18*time.Minute, time.Second, isDiscoveryWorking(prometheusName)) + err = wait.Poll(time.Second, 18*time.Minute, isDiscoveryWorking(prometheusName)) if err != nil { t.Fatal(err) } @@ -353,7 +354,7 @@ func TestPrometheusAlertmanagerDiscovery(t *testing.T) { } log.Print("Validating Prometheus properly discovered alertmanagers") - err = framework.Poll(18*time.Minute, time.Second, isAlertmanagerDiscoveryWorking(alertmanagerName)) + err = wait.Poll(time.Second, 18*time.Minute, isAlertmanagerDiscoveryWorking(alertmanagerName)) if err != nil { t.Fatal(err) }