move all RetryX to retry.Expo

pull/5075/head
Medya Gh 2019-08-13 22:18:47 -07:00
parent 998d305af3
commit 06d0e48156
5 changed files with 9 additions and 32 deletions

View File

@ -31,7 +31,7 @@ import (
"github.com/pkg/errors"
"k8s.io/minikube/pkg/minikube/constants"
pkgutil "k8s.io/minikube/pkg/util"
"k8s.io/minikube/test/integration/util"
"k8s.io/minikube/pkg/util/retry"
)
// Note this test runs before all because filename is alphabetically first
@ -78,7 +78,7 @@ func downloadMinikubeBinary(t *testing.T, dest string, version string) error {
return getter.GetFile(dest, url)
}
if err := util.RetryX(download, 13*time.Second, 5*time.Minute); err != nil {
if err := retry.Expo(download, 3*time.Second, 3*time.Minute); err != nil {
return errors.Wrap(err, "Failed to get latest release binary")
}
if runtime.GOOS != "windows" {

View File

@ -27,7 +27,7 @@ import (
"github.com/docker/machine/libmachine/state"
"k8s.io/minikube/pkg/minikube/constants"
"k8s.io/minikube/test/integration/util"
"k8s.io/minikube/pkg/util/retry"
)
func TestStartStop(t *testing.T) {
@ -105,7 +105,7 @@ func TestStartStop(t *testing.T) {
return mk.CheckStatusNoFail(state.Stopped.String())
}
err = util.RetryX(stop, 10*time.Second, 2*time.Minute)
err = retry.Expo(stop, 10*time.Second, 5*time.Minute)
mk.CheckStatus(state.Stopped.String())
stdout, stderr, err = mk.Start(tc.args...)

View File

@ -21,7 +21,6 @@ import (
"testing"
"time"
"github.com/cenkalti/backoff"
"github.com/pkg/errors"
"k8s.io/apimachinery/pkg/labels"
commonutil "k8s.io/minikube/pkg/util"
@ -49,29 +48,6 @@ func Retry(t *testing.T, callback func() error, d time.Duration, attempts int) (
return err
}
// Retry2 tries the callback for a number of attempts, with a delay without *testing.T
func Retry2(callback func() error, d time.Duration, attempts int) (err error) {
for i := 0; i < attempts; i++ {
err = callback()
if err == nil {
return nil
}
time.Sleep(d)
}
return err
}
// RetryX is expontential backoff retry
func RetryX(callback func() error, initInterv time.Duration, maxTime time.Duration) error {
b := backoff.NewExponentialBackOff()
b.MaxElapsedTime = maxTime
b.InitialInterval = initInterv
b.RandomizationFactor = 0.5
b.Multiplier = 1.5
b.Reset()
return backoff.Retry(callback, b)
}
// Logf writes logs to stdout if -v is set.
func Logf(str string, args ...interface{}) {
if !testing.Verbose() {

View File

@ -33,6 +33,7 @@ import (
"github.com/pkg/errors"
"k8s.io/minikube/pkg/minikube/assets"
commonutil "k8s.io/minikube/pkg/util"
"k8s.io/minikube/pkg/util/retry"
)
// MinikubeRunner runs a command
@ -234,7 +235,7 @@ func (m *MinikubeRunner) Start(opts ...string) (stdout string, stderr string, er
stdout, stderr, err = m.RunCommandRetriable(cmd)
return err
}
err = RetryX(s, 10*time.Second, m.TimeOutStart)
err = retry.Expo(s, 10*time.Second, m.TimeOutStart)
return stdout, stderr, err
}
@ -282,7 +283,7 @@ func (m *MinikubeRunner) Status() (status string, stderr string, err error) {
status = strings.TrimRight(status, "\n")
return err
}
err = RetryX(s, 15*time.Second, 1*time.Minute)
err = retry.Expo(s, 3*time.Second, 2*time.Minute)
if err != nil && (status == state.None.String() || status == state.Stopped.String()) {
err = nil // because https://github.com/kubernetes/minikube/issues/4932
}

View File

@ -28,7 +28,7 @@ import (
"github.com/docker/machine/libmachine/state"
"github.com/pkg/errors"
"k8s.io/minikube/pkg/minikube/constants"
"k8s.io/minikube/test/integration/util"
"k8s.io/minikube/pkg/util/retry"
)
func fileExists(fname string) error {
@ -43,7 +43,7 @@ func fileExists(fname string) error {
return nil
}
if err := util.Retry2(check, 1*time.Second, 3); err != nil {
if err := retry.Expo(check, 1*time.Second, 3); err != nil {
return errors.Wrap(err, fmt.Sprintf("Failed check if file (%q) exists,", fname))
}
return nil