From abcf54271d44f031c59d0a8f3bd9923749b339fc Mon Sep 17 00:00:00 2001 From: Chris Archibald Date: Thu, 16 Nov 2023 17:31:15 +0000 Subject: [PATCH] Sync bitbucket and GitHub --- CHANGELOG.md | 4 ++++ cloudmanager/helper.go | 15 +++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0dd9978..33cab8a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 23.11.0 +*ENHANCEMENTS: add retries when http returns >200 status code in getWorkingEnvironmentProperties. + + ## 23.10.0 BUG FIXES: * resource/aws_fsx: handling for a situation in which the status does not exist yet. diff --git a/cloudmanager/helper.go b/cloudmanager/helper.go index 2cc3ce2..7cb0f0d 100644 --- a/cloudmanager/helper.go +++ b/cloudmanager/helper.go @@ -915,18 +915,29 @@ func (c *Client) getWorkingEnvironmentProperties(apiRoot string, id string, fiel var statusCode int var response []byte - networkRetries := 3 + networkRetries := 10 + httpRetries := 10 // retry if API returns non 200 status code for { code, result, _, err := c.CallAPIMethod("GET", baseURL, nil, c.Token, hostType, clientID) if err != nil { + log.Printf("network error %v", err) if networkRetries > 0 { - time.Sleep(1 * time.Second) + time.Sleep(2 * time.Second) networkRetries-- } else { log.Printf("getWorkingEnvironmentProperties %s request failed (%d) %s", baseURL, statusCode, err) return workingEnvironmentOntapClusterPropertiesResponse{}, err } } else { + if code > 400 { //client error or server error + log.Printf("http status code %v", code) + log.Printf("http response %s", result) + if httpRetries > 0 { + time.Sleep(10 * time.Second) + httpRetries-- + continue + } + } statusCode = code response = result break