...

Package retry

import "github.com/google/go-containerregistry/internal/retry"
Overview
Index
Subdirectories

Overview ▾

Package retry provides methods for retrying operations. It is a thin wrapper around k8s.io/apimachinery/pkg/util/wait to make certain operations easier.

func Ever

func Ever(ctx context.Context) bool

Ever returns true if the context was wrapped by Never.

func IsNotNil

func IsNotNil(err error) bool

IsNotNil returns true if err is not nil.

func IsTemporary

func IsTemporary(err error) bool

IsTemporary returns true if err implements Temporary() and it returns true.

func Never

func Never(ctx context.Context) context.Context

Never returns a context that signals something should not be retried. This is a hack and can be used to communicate across package boundaries to avoid retry amplification.

func Retry

func Retry(f func() error, p Predicate, backoff wait.Backoff) (err error)

Retry retries a given function, f, until a predicate is satisfied, using exponential backoff. If the predicate is never satisfied, it will return the last error returned by f.

type Backoff

Backoff is an alias of our own wait.Backoff to avoid name conflicts with the kubernetes wait package. Typing retry.Backoff is aesier than fixing the wrong import every time you use wait.Backoff.

type Backoff = wait.Backoff

type Predicate

Predicate determines whether an error should be retried.

type Predicate func(error) (retry bool)

Subdirectories

Name Synopsis
..