2022-11-12 22:19:19 +00:00
|
|
|
package retry
|
2022-11-06 22:16:27 +00:00
|
|
|
|
|
|
|
import (
|
|
|
|
"k8s.io/apimachinery/pkg/util/wait"
|
|
|
|
)
|
|
|
|
|
|
|
|
// Do copy this code instead of depending on this library
|
|
|
|
//
|
|
|
|
// similar to "k8s.io/apimachinery/pkg/util/retry"
|
2022-11-12 22:19:19 +00:00
|
|
|
func OnError(backoff wait.Backoff, fn func() (retryable bool, err error)) error {
|
2022-11-06 22:16:27 +00:00
|
|
|
return wait.ExponentialBackoff(backoff, func() (done bool, _ error) {
|
|
|
|
retryable, err := fn()
|
|
|
|
if err == nil || !retryable {
|
|
|
|
return true, err
|
|
|
|
}
|
|
|
|
return false, nil
|
|
|
|
})
|
|
|
|
}
|