Documentation ¶
Index ¶
- Variables
- func NewEmptyResultError(lastRequest interface{}) error
- func NewTooManyResultsError(count int, lastRequest interface{}) error
- func NotFound(err error) bool
- func RetryConfigContext(ctx context.Context, delay time.Duration, delayRand time.Duration, ...) error
- func RetryUntilNotFound(timeout time.Duration, f func() (interface{}, error)) (interface{}, error)
- func RetryUntilNotFoundContext(ctx context.Context, timeout time.Duration, f func() (interface{}, error)) (interface{}, error)
- func RetryWhen(timeout time.Duration, f func() (interface{}, error), retryable Retryable) (interface{}, error)
- func RetryWhenAWSErrCodeEquals(timeout time.Duration, f func() (interface{}, error), codes ...string) (interface{}, error)
- func RetryWhenAWSErrCodeEqualsContext(ctx context.Context, timeout time.Duration, f func() (interface{}, error), ...) (interface{}, error)
- func RetryWhenAWSErrMessageContains(timeout time.Duration, f func() (interface{}, error), code, message string) (interface{}, error)
- func RetryWhenAWSErrMessageContainsContext(ctx context.Context, timeout time.Duration, f func() (interface{}, error), ...) (interface{}, error)
- func RetryWhenContext(ctx context.Context, timeout time.Duration, f func() (interface{}, error), ...) (interface{}, error)
- func RetryWhenNewResourceNotFound(timeout time.Duration, f func() (interface{}, error), isNewResource bool) (interface{}, error)
- func RetryWhenNewResourceNotFoundContext(ctx context.Context, timeout time.Duration, f func() (interface{}, error), ...) (interface{}, error)
- func RetryWhenNotFound(timeout time.Duration, f func() (interface{}, error)) (interface{}, error)
- func RetryWhenNotFoundContext(ctx context.Context, timeout time.Duration, f func() (interface{}, error)) (interface{}, error)
- func SetLastError(err, lastErr error)
- func SingularDataSourceFindError(resourceType string, err error) error
- func TimedOut(err error) bool
- func WaitUntil(timeout time.Duration, f func() (bool, error), opts WaitOpts) error
- func WaitUntilContext(ctx context.Context, timeout time.Duration, f func() (bool, error), ...) error
- type EmptyResultError
- type Retryable
- type TooManyResultsError
- type WaitOpts
Constants ¶
This section is empty.
Variables ¶
var ErrEmptyResult = &EmptyResultError{}
var ErrTooManyResults = &TooManyResultsError{}
Functions ¶
func NewEmptyResultError ¶
func NewEmptyResultError(lastRequest interface{}) error
func NewTooManyResultsError ¶
func NotFound ¶
NotFound returns true if the error represents a "resource not found" condition. Specifically, NotFound returns true if the error or a wrapped error is of type resource.NotFoundError.
func RetryConfigContext ¶
func RetryConfigContext(ctx context.Context, delay time.Duration, delayRand time.Duration, minTimeout time.Duration, pollInterval time.Duration, timeout time.Duration, f resource.RetryFunc) error
RetryConfigContext allows configuration of StateChangeConf's various time arguments. This is especially useful for AWS services that are prone to throttling, such as Route53, where the default durations cause problems. To not use a StateChangeConf argument and revert to the default, pass in a zero value (i.e., 0*time.Second).
func RetryUntilNotFound ¶
RetryUntilNotFound retries the specified function until it returns a resource.NotFoundError.
func RetryUntilNotFoundContext ¶
func RetryUntilNotFoundContext(ctx context.Context, timeout time.Duration, f func() (interface{}, error)) (interface{}, error)
RetryUntilNotFoundContext retries the specified function until it returns a resource.NotFoundError.
func RetryWhen ¶
func RetryWhen(timeout time.Duration, f func() (interface{}, error), retryable Retryable) (interface{}, error)
RetryWhen retries the function `f` when the error it returns satisfies `predicate`. `f` is retried until `timeout` expires.
func RetryWhenAWSErrCodeEquals ¶
func RetryWhenAWSErrCodeEquals(timeout time.Duration, f func() (interface{}, error), codes ...string) (interface{}, error)
RetryWhenAWSErrCodeEquals retries the specified function when it returns one of the specified AWS error code.
func RetryWhenAWSErrCodeEqualsContext ¶
func RetryWhenAWSErrCodeEqualsContext(ctx context.Context, timeout time.Duration, f func() (interface{}, error), codes ...string) (interface{}, error)
RetryWhenAWSErrCodeEqualsContext retries the specified function when it returns one of the specified AWS error code.
func RetryWhenAWSErrMessageContains ¶
func RetryWhenAWSErrMessageContains(timeout time.Duration, f func() (interface{}, error), code, message string) (interface{}, error)
RetryWhenAWSErrMessageContains retries the specified function when it returns an AWS error containing the specified message.
func RetryWhenAWSErrMessageContainsContext ¶
func RetryWhenAWSErrMessageContainsContext(ctx context.Context, timeout time.Duration, f func() (interface{}, error), code, message string) (interface{}, error)
RetryWhenAWSErrMessageContainsContext retries the specified function when it returns an AWS error containing the specified message.
func RetryWhenContext ¶
func RetryWhenContext(ctx context.Context, timeout time.Duration, f func() (interface{}, error), retryable Retryable) (interface{}, error)
RetryWhenContext retries the function `f` when the error it returns satisfies `predicate`. `f` is retried until `timeout` expires.
func RetryWhenNewResourceNotFound ¶
func RetryWhenNewResourceNotFound(timeout time.Duration, f func() (interface{}, error), isNewResource bool) (interface{}, error)
RetryWhenNewResourceNotFound retries the specified function when it returns a resource.NotFoundError and `isNewResource` is true.
func RetryWhenNewResourceNotFoundContext ¶
func RetryWhenNewResourceNotFoundContext(ctx context.Context, timeout time.Duration, f func() (interface{}, error), isNewResource bool) (interface{}, error)
RetryWhenNewResourceNotFoundContext retries the specified function when it returns a resource.NotFoundError and `isNewResource` is true.
func RetryWhenNotFound ¶
RetryWhenNotFound retries the specified function when it returns a resource.NotFoundError.
func RetryWhenNotFoundContext ¶
func RetryWhenNotFoundContext(ctx context.Context, timeout time.Duration, f func() (interface{}, error)) (interface{}, error)
RetryWhenNotFoundContext retries the specified function when it returns a resource.NotFoundError.
func SetLastError ¶
func SetLastError(err, lastErr error)
SetLastError sets the LastError field on the error if supported. If lastErr is nil it is ignored.
func SingularDataSourceFindError ¶
SingularDataSourceFindError returns a standard error message for a singular data source's non-nil resource find error.
func TimedOut ¶
TimedOut returns true if the error represents a "wait timed out" condition. Specifically, TimedOut returns true if the error matches all these conditions:
- err is of type resource.TimeoutError
- TimeoutError.LastError is nil
func WaitUntil ¶
WaitUntil waits for the function `f` to return `true`. If `f` returns an error, return immediately with that error. If `timeout` is exceeded before `f` returns `true`, return an error. Waits between calls to `f` using exponential backoff, except when waiting for the target state to reoccur.
func WaitUntilContext ¶
func WaitUntilContext(ctx context.Context, timeout time.Duration, f func() (bool, error), opts WaitOpts) error
WaitUntilContext waits for the function `f` to return `true`. If `f` returns an error, return immediately with that error. If `timeout` is exceeded before `f` returns `true`, return an error. Waits between calls to `f` using exponential backoff, except when waiting for the target state to reoccur.
Types ¶
type EmptyResultError ¶
type EmptyResultError struct {
LastRequest interface{}
}
func (*EmptyResultError) As ¶
func (e *EmptyResultError) As(target interface{}) bool
func (*EmptyResultError) Error ¶
func (e *EmptyResultError) Error() string
func (*EmptyResultError) Is ¶
func (e *EmptyResultError) Is(err error) bool
type Retryable ¶
Retryable is a function that is used to decide if a function's error is retryable or not. The error argument can be `nil`. If the error is retryable, returns a bool value of `true` and an error (not necessarily the error passed as the argument). If the error is not retryable, returns a bool value of `false` and either no error (success state) or an error (not necessarily the error passed as the argument).
type TooManyResultsError ¶
type TooManyResultsError struct { Count int LastRequest interface{} }
func (*TooManyResultsError) As ¶
func (e *TooManyResultsError) As(target interface{}) bool
func (*TooManyResultsError) Error ¶
func (e *TooManyResultsError) Error() string
func (*TooManyResultsError) Is ¶
func (e *TooManyResultsError) Is(err error) bool
type WaitOpts ¶
type WaitOpts struct { ContinuousTargetOccurence int // Number of times the target state has to occur continuously. Delay time.Duration // Wait this time before starting checks. MinTimeout time.Duration // Smallest time to wait before refreshes. PollInterval time.Duration // Override MinTimeout/backoff and only poll this often. }