aboutsummaryrefslogtreecommitdiff
path: root/vendor/cloud.google.com/go/storage/invoke.go
diff options
context:
space:
mode:
authorNiall Sheridan <nsheridan@gmail.com>2016-12-28 21:18:36 +0000
committerNiall Sheridan <nsheridan@gmail.com>2016-12-28 21:18:36 +0000
commit73ef85bc5db590c22689e11be20737a3dd88168f (patch)
treefe393a6f0776bca1889b2113ab341a2922e25d10 /vendor/cloud.google.com/go/storage/invoke.go
parent9e573e571fe878ed32947cae5a6d43cb5d72d3bb (diff)
Update dependencies
Diffstat (limited to 'vendor/cloud.google.com/go/storage/invoke.go')
-rw-r--r--vendor/cloud.google.com/go/storage/invoke.go19
1 files changed, 8 insertions, 11 deletions
diff --git a/vendor/cloud.google.com/go/storage/invoke.go b/vendor/cloud.google.com/go/storage/invoke.go
index 03b98f4..e8fc924 100644
--- a/vendor/cloud.google.com/go/storage/invoke.go
+++ b/vendor/cloud.google.com/go/storage/invoke.go
@@ -15,6 +15,7 @@
package storage
import (
+ "cloud.google.com/go/internal"
gax "github.com/googleapis/gax-go"
"golang.org/x/net/context"
"google.golang.org/api/googleapi"
@@ -23,24 +24,20 @@ import (
// runWithRetry calls the function until it returns nil or a non-retryable error, or
// the context is done.
func runWithRetry(ctx context.Context, call func() error) error {
- var backoff gax.Backoff // use defaults for gax exponential backoff
- for {
- err := call()
+ return internal.Retry(ctx, gax.Backoff{}, func() (stop bool, err error) {
+ err = call()
if err == nil {
- return nil
+ return true, nil
}
e, ok := err.(*googleapi.Error)
if !ok {
- return err
+ return true, err
}
// Retry on 429 and 5xx, according to
// https://cloud.google.com/storage/docs/exponential-backoff.
if e.Code == 429 || (e.Code >= 500 && e.Code < 600) {
- if err := gax.Sleep(ctx, backoff.Pause()); err != nil {
- return err
- }
- continue
+ return false, nil
}
- return err
- }
+ return true, err
+ })
}