internal/utils/reconciler/operations.go (73 lines of code) (raw):

package reconciler import ( "context" "time" ) var DefaultRequeueDelay = 10 * time.Second type ReconcileOperation func(ctx context.Context) (OperationResult, error) type OperationResult struct { RequeueDelay time.Duration RequeueRequest bool CancelRequest bool } func (r OperationResult) RequeueOrCancel() bool { return r.RequeueRequest || r.CancelRequest } func ContinueOperationResult() OperationResult { return OperationResult{ RequeueDelay: 0, RequeueRequest: false, CancelRequest: false, } } func StopOperationResult() OperationResult { return OperationResult{ RequeueDelay: 0, RequeueRequest: false, CancelRequest: true, } } func StopProcessing() (OperationResult, error) { result := StopOperationResult() return result, nil } func Requeue() (result OperationResult, err error) { result = OperationResult{ RequeueDelay: DefaultRequeueDelay, RequeueRequest: true, CancelRequest: false, } return result, nil } func RequeueWithError(err error) (OperationResult, error) { result := OperationResult{ RequeueDelay: DefaultRequeueDelay, RequeueRequest: true, CancelRequest: false, } return result, err } func RequeueOnErrorOrStop(err error) (OperationResult, error) { return OperationResult{ RequeueDelay: DefaultRequeueDelay, RequeueRequest: false, CancelRequest: true, }, err } func RequeueOnErrorOrContinue(err error) (OperationResult, error) { return OperationResult{ RequeueDelay: DefaultRequeueDelay, RequeueRequest: false, CancelRequest: false, }, err } func RequeueAfter(delay time.Duration, err error) (OperationResult, error) { return OperationResult{ RequeueDelay: delay, RequeueRequest: true, CancelRequest: false, }, err } func ContinueProcessing() (OperationResult, error) { return ContinueOperationResult(), nil }