mirror of
https://github.com/coreos/prometheus-operator.git
synced 2026-02-05 15:46:31 +01:00
Merge pull request #243 from mxinden/use-k8s-util-wait
test: Replace own framework.Poll with client-go wait.Poll
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user