summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2023-07-10 15:33:20 +0200
committerMartin Polden <mpolden@mpolden.no>2023-07-10 15:55:45 +0200
commit1507635d86732c1dedf1a58fd85a885d9ade27ed (patch)
tree8922b7882e29c3549ae42d8bd223718b029dca06 /client
parent33ea59477ebc7ce2317825077950636cc44cfed9 (diff)
Do not log retries in non-verbose mode
Diffstat (limited to 'client')
-rw-r--r--client/go/internal/cli/cmd/feed_test.go12
-rw-r--r--client/go/internal/mock/http.go14
-rw-r--r--client/go/internal/vespa/document/dispatcher.go2
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