diff options
author | Martin Polden <mpolden@mpolden.no> | 2023-07-10 15:33:20 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2023-07-10 15:55:45 +0200 |
commit | 1507635d86732c1dedf1a58fd85a885d9ade27ed (patch) | |
tree | 8922b7882e29c3549ae42d8bd223718b029dca06 /client | |
parent | 33ea59477ebc7ce2317825077950636cc44cfed9 (diff) |
Do not log retries in non-verbose mode
Diffstat (limited to 'client')
-rw-r--r-- | client/go/internal/cli/cmd/feed_test.go | 12 | ||||
-rw-r--r-- | client/go/internal/mock/http.go | 14 | ||||
-rw-r--r-- | client/go/internal/vespa/document/dispatcher.go | 2 |
3 files changed, 16 insertions, 12 deletions
diff --git a/client/go/internal/cli/cmd/feed_test.go b/client/go/internal/cli/cmd/feed_test.go index d1904ad815e..fc2c5ec7520 100644 --- a/client/go/internal/cli/cmd/feed_test.go +++ b/client/go/internal/cli/cmd/feed_test.go @@ -80,13 +80,17 @@ func TestFeed(t *testing.T) { require.Nil(t, cli.Run("feed", "-")) assert.Equal(t, want, stdout.String()) - httpClient.NextResponseString(500, `{"message":"it's broken yo"}`) + for i := 0; i < 10; i++ { + httpClient.NextResponseString(500, `{"message":"it's broken yo"}`) + } require.Nil(t, cli.Run("feed", jsonFile1)) - assert.Equal(t, "feed: got status 500 ({\"message\":\"it's broken yo\"}) for put id:ns:type::doc1: retrying\n", stderr.String()) + assert.Equal(t, "feed: got status 500 ({\"message\":\"it's broken yo\"}) for put id:ns:type::doc1: giving up after 10 attempts\n", stderr.String()) stderr.Reset() - httpClient.NextResponseError(fmt.Errorf("something else is broken")) + for i := 0; i < 10; i++ { + httpClient.NextResponseError(fmt.Errorf("something else is broken")) + } require.Nil(t, cli.Run("feed", jsonFile1)) - assert.Equal(t, "feed: got error \"something else is broken\" (no body) for put id:ns:type::doc1: retrying\n", stderr.String()) + assert.Equal(t, "feed: got error \"something else is broken\" (no body) for put id:ns:type::doc1: giving up after 10 attempts\n", stderr.String()) } func TestFeedInvalid(t *testing.T) { diff --git a/client/go/internal/mock/http.go b/client/go/internal/mock/http.go index 8bab716ea60..3d4ead596b0 100644 --- a/client/go/internal/mock/http.go +++ b/client/go/internal/mock/http.go @@ -14,8 +14,8 @@ type HTTPClient struct { // The responses to return for future requests. Once a response is consumed, it's removed from this slice. nextResponses []HTTPResponse - // The error to return for the next request. If non-nil, this error is returned before any responses in nextResponses. - nextError error + // The errors to return for future requests. If non-nil, these errors are returned before any responses in nextResponses. + nextErrors []error // LastRequest is the last HTTP request made through this. LastRequest *http.Request @@ -52,13 +52,14 @@ func (c *HTTPClient) NextResponse(response HTTPResponse) { } func (c *HTTPClient) NextResponseError(err error) { - c.nextError = err + c.nextErrors = append(c.nextErrors, err) } func (c *HTTPClient) Do(request *http.Request, timeout time.Duration) (*http.Response, error) { - if c.nextError != nil { - err := c.nextError - c.nextError = nil + c.LastRequest = request + if len(c.nextErrors) > 0 { + err := c.nextErrors[0] + c.nextErrors = c.nextErrors[1:] return nil, err } response := HTTPResponse{Status: 200} @@ -66,7 +67,6 @@ func (c *HTTPClient) Do(request *http.Request, timeout time.Duration) (*http.Res response = c.nextResponses[0] c.nextResponses = c.nextResponses[1:] } - c.LastRequest = request if c.ReadBody && request.Body != nil { body, err := io.ReadAll(request.Body) if err != nil { diff --git a/client/go/internal/vespa/document/dispatcher.go b/client/go/internal/vespa/document/dispatcher.go index fa4424809cf..fb7a532e332 100644 --- a/client/go/internal/vespa/document/dispatcher.go +++ b/client/go/internal/vespa/document/dispatcher.go @@ -67,7 +67,7 @@ func (d *Dispatcher) logResult(doc Document, result Result, retry bool) { if result.Trace != "" { d.msgs <- fmt.Sprintf("feed: trace for %s %s:\n%s", doc.Operation, doc.Id, result.Trace) } - if !d.verbose && result.Success() { + if !d.verbose && (retry || result.Success()) { return } var msg strings.Builder |