From b58470a1380048645e79b4fc06c701c155f0b757 Mon Sep 17 00:00:00 2001 From: Bryce Soghigian <49734722+Bryce-Soghigian@users.noreply.github.com> Date: Fri, 1 Dec 2023 15:17:15 -0800 Subject: [PATCH] Revert "Merge pull request #13 from Azure/bsoghigian/removing-sdk-retries" (#54) --- pkg/utils/opts/armopts.go | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/pkg/utils/opts/armopts.go b/pkg/utils/opts/armopts.go index 75ff4bc4e..68e5834d9 100644 --- a/pkg/utils/opts/armopts.go +++ b/pkg/utils/opts/armopts.go @@ -18,6 +18,7 @@ package opts import ( "net/http" + "time" "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm" "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" @@ -34,11 +35,21 @@ func DefaultArmOpts() *arm.ClientOptions { func DefaultRetryOpts() policy.RetryOptions { return policy.RetryOptions{ - // MaxRetries specifies the maximum number of attempts a failed operation will be retried - // before producing an error. - // The default value is three. A value less than zero means one try and no retries. - // See Reference here: https://github.com/Azure/azure-sdk-for-go/blob/v61.4.0/sdk/azcore/policy/policy.go#L73 - MaxRetries: -1, + MaxRetries: 20, + // Note the default retry behavior is exponential backoff + RetryDelay: time.Second * 5, + // TODO: bsoghigian: Investigate if we want to leverage some of the status codes other than the defaults. + // the defaults are // StatusCodes specifies the HTTP status codes that indicate the operation should be retried. + // A nil slice will use the following values. + // http.StatusRequestTimeout 408 + // http.StatusTooManyRequests 429 + // http.StatusInternalServerError 500 + // http.StatusBadGateway 502 + // http.StatusServiceUnavailable 503 + // http.StatusGatewayTimeout 504 + // Specifying values will replace the default values. + // Specifying an empty slice will disable retries for HTTP status codes. + // StatusCodes: nil, } }