From 2ec0c64424de7c8b0a2dcdda20de2c1ae54b6d04 Mon Sep 17 00:00:00 2001 From: jnathangreeg Date: Wed, 9 Oct 2024 12:04:32 +0300 Subject: [PATCH 01/10] add logs Signed-off-by: jnathangreeg --- go.mod | 2 ++ go.sum | 4 ++++ httputils/httphelpers.go | 5 +++++ 3 files changed, 11 insertions(+) diff --git a/go.mod b/go.mod index 3158704..c3537a6 100644 --- a/go.mod +++ b/go.mod @@ -12,6 +12,8 @@ require ( github.com/kr/pretty v0.3.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/rogpeppe/go-internal v1.11.0 // indirect + go.uber.org/multierr v1.10.0 // indirect + go.uber.org/zap v1.27.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 2059d19..7e6ff82 100644 --- a/go.sum +++ b/go.sum @@ -18,6 +18,10 @@ github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDN github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= +go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/httputils/httphelpers.go b/httputils/httphelpers.go index f5dcc61..79352b3 100644 --- a/httputils/httphelpers.go +++ b/httputils/httphelpers.go @@ -12,6 +12,7 @@ import ( "time" "github.com/cenkalti/backoff" + "go.uber.org/zap" ) type IHttpClient interface { @@ -86,12 +87,14 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st operation := func() error { req, err := http.NewRequestWithContext(ctx, "POST", fullURL, bytes.NewReader(body)) if err != nil { + zap.L().Error("error creating request", zap.Error(err), zap.String("line", "90")) return backoff.Permanent(err) } setHeaders(req, headers) resp, err = httpClient.Do(req) if err != nil { + zap.L().Error("error sending request", zap.Error(err), zap.String("line", "97")) return err } defer resp.Body.Close() @@ -99,6 +102,7 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st // If the status code is not 200, we will retry if resp.StatusCode != http.StatusOK { if shouldRetry(resp) { + zap.L().Error("received status code", zap.Int("status_code", resp.StatusCode), zap.String("line", "105")) return fmt.Errorf("received status code: %d", resp.StatusCode) } return backoff.Permanent(err) @@ -113,6 +117,7 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st // Run the operation with the exponential backoff policy if err = backoff.Retry(operation, expBackOff); err != nil { + zap.L().Error("error sending request", zap.Error(err), zap.String("line", "121")) return resp, err } From a6b056c6880a7ddf53d8855ce93b21d7735cebf5 Mon Sep 17 00:00:00 2001 From: jnathangreeg Date: Wed, 9 Oct 2024 12:11:59 +0300 Subject: [PATCH 02/10] remove zap logs and use fmt Signed-off-by: jnathangreeg --- go.mod | 2 -- go.sum | 4 ---- httputils/httphelpers.go | 9 ++++----- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/go.mod b/go.mod index c3537a6..3158704 100644 --- a/go.mod +++ b/go.mod @@ -12,8 +12,6 @@ require ( github.com/kr/pretty v0.3.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/rogpeppe/go-internal v1.11.0 // indirect - go.uber.org/multierr v1.10.0 // indirect - go.uber.org/zap v1.27.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 7e6ff82..2059d19 100644 --- a/go.sum +++ b/go.sum @@ -18,10 +18,6 @@ github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDN github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= -go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= -go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/httputils/httphelpers.go b/httputils/httphelpers.go index 79352b3..69089ae 100644 --- a/httputils/httphelpers.go +++ b/httputils/httphelpers.go @@ -12,7 +12,6 @@ import ( "time" "github.com/cenkalti/backoff" - "go.uber.org/zap" ) type IHttpClient interface { @@ -87,14 +86,14 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st operation := func() error { req, err := http.NewRequestWithContext(ctx, "POST", fullURL, bytes.NewReader(body)) if err != nil { - zap.L().Error("error creating request", zap.Error(err), zap.String("line", "90")) + fmt.Println("error creating request", err, "line 90") return backoff.Permanent(err) } setHeaders(req, headers) resp, err = httpClient.Do(req) if err != nil { - zap.L().Error("error sending request", zap.Error(err), zap.String("line", "97")) + fmt.Println("error sending request", err, "line 97") return err } defer resp.Body.Close() @@ -102,7 +101,7 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st // If the status code is not 200, we will retry if resp.StatusCode != http.StatusOK { if shouldRetry(resp) { - zap.L().Error("received status code", zap.Int("status_code", resp.StatusCode), zap.String("line", "105")) + fmt.Println("received status code", resp.StatusCode, "line 105") return fmt.Errorf("received status code: %d", resp.StatusCode) } return backoff.Permanent(err) @@ -117,7 +116,7 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st // Run the operation with the exponential backoff policy if err = backoff.Retry(operation, expBackOff); err != nil { - zap.L().Error("error sending request", zap.Error(err), zap.String("line", "121")) + fmt.Println("error retrying request", err, "line 120") return resp, err } From a542d56dfb3d198714577ed226d2d08f8eec5944 Mon Sep 17 00:00:00 2001 From: jnathangreeg Date: Thu, 10 Oct 2024 10:34:35 +0300 Subject: [PATCH 03/10] add logs Signed-off-by: jnathangreeg --- httputils/httphelpers.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/httputils/httphelpers.go b/httputils/httphelpers.go index 69089ae..928937d 100644 --- a/httputils/httphelpers.go +++ b/httputils/httphelpers.go @@ -83,6 +83,7 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st var resp *http.Response var err error + fmt.Println("starting post request", fullURL, "line 101") operation := func() error { req, err := http.NewRequestWithContext(ctx, "POST", fullURL, bytes.NewReader(body)) if err != nil { @@ -93,8 +94,8 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st resp, err = httpClient.Do(req) if err != nil { - fmt.Println("error sending request", err, "line 97") - return err + fmt.Println("error making request", err, "line 97") + return fmt.Errorf("error making request: %w", err) } defer resp.Body.Close() @@ -106,7 +107,7 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st } return backoff.Permanent(err) } - + fmt.Println("request successful", "line 110") return nil } From dfd979210a8730326491515a67aa243b18a9de89 Mon Sep 17 00:00:00 2001 From: jnathangreeg Date: Thu, 10 Oct 2024 10:53:13 +0300 Subject: [PATCH 04/10] add more logs Signed-off-by: jnathangreeg --- httputils/httphelpers.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/httputils/httphelpers.go b/httputils/httphelpers.go index 928937d..9dc80d0 100644 --- a/httputils/httphelpers.go +++ b/httputils/httphelpers.go @@ -107,7 +107,6 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st } return backoff.Permanent(err) } - fmt.Println("request successful", "line 110") return nil } @@ -120,7 +119,7 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st fmt.Println("error retrying request", err, "line 120") return resp, err } - + fmt.Println("request successful", "line 122") return resp, nil } func defaultShouldRetry(resp *http.Response) bool { From ff2021a206e16721a0245c2cba46accb3539c691 Mon Sep 17 00:00:00 2001 From: jnathangreeg Date: Thu, 10 Oct 2024 17:35:19 +0300 Subject: [PATCH 05/10] remove some logs Signed-off-by: jnathangreeg --- httputils/httphelpers.go | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/httputils/httphelpers.go b/httputils/httphelpers.go index 9dc80d0..c9c34ef 100644 --- a/httputils/httphelpers.go +++ b/httputils/httphelpers.go @@ -83,18 +83,15 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st var resp *http.Response var err error - fmt.Println("starting post request", fullURL, "line 101") operation := func() error { req, err := http.NewRequestWithContext(ctx, "POST", fullURL, bytes.NewReader(body)) if err != nil { - fmt.Println("error creating request", err, "line 90") return backoff.Permanent(err) } setHeaders(req, headers) resp, err = httpClient.Do(req) if err != nil { - fmt.Println("error making request", err, "line 97") return fmt.Errorf("error making request: %w", err) } defer resp.Body.Close() @@ -102,7 +99,6 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st // If the status code is not 200, we will retry if resp.StatusCode != http.StatusOK { if shouldRetry(resp) { - fmt.Println("received status code", resp.StatusCode, "line 105") return fmt.Errorf("received status code: %d", resp.StatusCode) } return backoff.Permanent(err) @@ -116,10 +112,10 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st // Run the operation with the exponential backoff policy if err = backoff.Retry(operation, expBackOff); err != nil { - fmt.Println("error retrying request", err, "line 120") + fmt.Println("error retrying request line 115") return resp, err } - fmt.Println("request successful", "line 122") + fmt.Println("request successful", "line 118") return resp, nil } func defaultShouldRetry(resp *http.Response) bool { From a7d9f9b079028d8eb73e047bb0464f11c491473a Mon Sep 17 00:00:00 2001 From: jnathangreeg Date: Thu, 10 Oct 2024 17:41:31 +0300 Subject: [PATCH 06/10] remove some logs Signed-off-by: jnathangreeg --- httputils/httphelpers.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/httputils/httphelpers.go b/httputils/httphelpers.go index c9c34ef..876f77e 100644 --- a/httputils/httphelpers.go +++ b/httputils/httphelpers.go @@ -86,13 +86,15 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st operation := func() error { req, err := http.NewRequestWithContext(ctx, "POST", fullURL, bytes.NewReader(body)) if err != nil { + fmt.Print("Error creating request") return backoff.Permanent(err) } setHeaders(req, headers) resp, err = httpClient.Do(req) if err != nil { - return fmt.Errorf("error making request: %w", err) + fmt.Print("Error sending request") + return err } defer resp.Body.Close() @@ -103,6 +105,7 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st } return backoff.Permanent(err) } + return nil } @@ -112,10 +115,10 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st // Run the operation with the exponential backoff policy if err = backoff.Retry(operation, expBackOff); err != nil { - fmt.Println("error retrying request line 115") + fmt.Print("Error sending request 2") return resp, err } - fmt.Println("request successful", "line 118") + fmt.Print("Success sending request") return resp, nil } func defaultShouldRetry(resp *http.Response) bool { From e627947c84521d76b69aa30ae889a1839e67c4e9 Mon Sep 17 00:00:00 2001 From: jnathangreeg Date: Thu, 10 Oct 2024 18:03:10 +0300 Subject: [PATCH 07/10] remove some logs Signed-off-by: jnathangreeg --- httputils/httphelpers.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/httputils/httphelpers.go b/httputils/httphelpers.go index 876f77e..0cf3596 100644 --- a/httputils/httphelpers.go +++ b/httputils/httphelpers.go @@ -86,14 +86,14 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st operation := func() error { req, err := http.NewRequestWithContext(ctx, "POST", fullURL, bytes.NewReader(body)) if err != nil { - fmt.Print("Error creating request") + fmt.Println("Error creating request") return backoff.Permanent(err) } setHeaders(req, headers) resp, err = httpClient.Do(req) if err != nil { - fmt.Print("Error sending request") + fmt.Println("Error sending request") return err } defer resp.Body.Close() @@ -118,7 +118,7 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st fmt.Print("Error sending request 2") return resp, err } - fmt.Print("Success sending request") + fmt.Println("Success sending request") return resp, nil } func defaultShouldRetry(resp *http.Response) bool { From be39dc566eb2e0d7438ad7a0933bed8ed7609579 Mon Sep 17 00:00:00 2001 From: jnathangreeg Date: Thu, 10 Oct 2024 18:52:08 +0300 Subject: [PATCH 08/10] change func logic Signed-off-by: jnathangreeg --- httputils/httphelpers.go | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/httputils/httphelpers.go b/httputils/httphelpers.go index 0cf3596..a9491c2 100644 --- a/httputils/httphelpers.go +++ b/httputils/httphelpers.go @@ -86,19 +86,16 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st operation := func() error { req, err := http.NewRequestWithContext(ctx, "POST", fullURL, bytes.NewReader(body)) if err != nil { - fmt.Println("Error creating request") return backoff.Permanent(err) } setHeaders(req, headers) resp, err = httpClient.Do(req) if err != nil { - fmt.Println("Error sending request") return err } defer resp.Body.Close() - // If the status code is not 200, we will retry if resp.StatusCode != http.StatusOK { if shouldRetry(resp) { return fmt.Errorf("received status code: %d", resp.StatusCode) @@ -109,18 +106,18 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st return nil } - // Create a new exponential backoff policy expBackOff := backoff.NewExponentialBackOff() - expBackOff.MaxElapsedTime = maxElapsedTime // Set the maximum elapsed time + expBackOff.MaxElapsedTime = maxElapsedTime - // Run the operation with the exponential backoff policy if err = backoff.Retry(operation, expBackOff); err != nil { - fmt.Print("Error sending request 2") return resp, err } + fmt.Println("Success sending request") return resp, nil } + + func defaultShouldRetry(resp *http.Response) bool { // If received codes 401/403/404/500 should return false return resp.StatusCode != http.StatusUnauthorized && From c5a67310fa32ee8174d29c42b9734a7cef738e4c Mon Sep 17 00:00:00 2001 From: jnathangreeg Date: Thu, 10 Oct 2024 18:56:11 +0300 Subject: [PATCH 09/10] change func logic Signed-off-by: jnathangreeg --- httputils/httphelpers.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/httputils/httphelpers.go b/httputils/httphelpers.go index a9491c2..af3fe60 100644 --- a/httputils/httphelpers.go +++ b/httputils/httphelpers.go @@ -94,10 +94,10 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st if err != nil { return err } - defer resp.Body.Close() if resp.StatusCode != http.StatusOK { if shouldRetry(resp) { + resp.Body.Close() return fmt.Errorf("received status code: %d", resp.StatusCode) } return backoff.Permanent(err) @@ -113,6 +113,10 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st return resp, err } + if resp != nil && resp.Body != nil { + defer resp.Body.Close() + } + fmt.Println("Success sending request") return resp, nil } From 67327efc22ac151983741c0845bbabbbb4fb02b2 Mon Sep 17 00:00:00 2001 From: jnathangreeg Date: Thu, 10 Oct 2024 19:12:39 +0300 Subject: [PATCH 10/10] change func logic Signed-off-by: jnathangreeg --- httputils/httphelpers.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/httputils/httphelpers.go b/httputils/httphelpers.go index af3fe60..ef6b486 100644 --- a/httputils/httphelpers.go +++ b/httputils/httphelpers.go @@ -95,9 +95,15 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st return err } + defer func() { + if resp != nil && resp.Body != nil { + io.Copy(io.Discard, resp.Body) + resp.Body.Close() + } + }() + if resp.StatusCode != http.StatusOK { if shouldRetry(resp) { - resp.Body.Close() return fmt.Errorf("received status code: %d", resp.StatusCode) } return backoff.Permanent(err) @@ -112,16 +118,11 @@ func HttpPostWithContext(ctx context.Context, httpClient IHttpClient, fullURL st if err = backoff.Retry(operation, expBackOff); err != nil { return resp, err } - - if resp != nil && resp.Body != nil { - defer resp.Body.Close() - } - - fmt.Println("Success sending request") return resp, nil } + func defaultShouldRetry(resp *http.Response) bool { // If received codes 401/403/404/500 should return false return resp.StatusCode != http.StatusUnauthorized &&