diff options
author | Martin Polden <mpolden@mpolden.no> | 2023-04-14 10:16:56 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2023-04-14 12:24:51 +0200 |
commit | 86c3219f28f89a0c5c4c15415b65f4d5a81b8774 (patch) | |
tree | 9ef7b3fb93522099ef27232f993654f93aa59558 /client | |
parent | 5763fd73d8ad34c4ecd1b75772f136373cdaa733 (diff) |
Wire client options
Diffstat (limited to 'client')
-rw-r--r-- | client/go/internal/cli/cmd/feed.go | 39 | ||||
-rw-r--r-- | client/go/internal/vespa/document/http.go | 6 |
2 files changed, 28 insertions, 17 deletions
diff --git a/client/go/internal/cli/cmd/feed.go b/client/go/internal/cli/cmd/feed.go index 895a22d2be5..19bf84e492a 100644 --- a/client/go/internal/cli/cmd/feed.go +++ b/client/go/internal/cli/cmd/feed.go @@ -14,16 +14,24 @@ import ( "github.com/vespa-engine/vespa/client/go/internal/vespa/document" ) -func addFeedFlags(cmd *cobra.Command, verbose *bool, connections *int) { - cmd.PersistentFlags().IntVarP(connections, "connections", "N", 8, "The number of connections to use") - cmd.PersistentFlags().BoolVarP(verbose, "verbose", "v", false, "Verbose mode. Print errors as they happen") +func addFeedFlags(cmd *cobra.Command, options *feedOptions) { + cmd.PersistentFlags().IntVar(&options.connections, "connections", 8, "The number of connections to use") + cmd.PersistentFlags().StringVar(&options.route, "route", "", "Target Vespa route for feed operations") + cmd.PersistentFlags().IntVar(&options.traceLevel, "trace", 0, "The trace level of network traffic. 0 to disable") + cmd.PersistentFlags().IntVar(&options.timeoutSecs, "timeout", 0, "Feed operation timeout in seconds. 0 to disable") + cmd.PersistentFlags().BoolVar(&options.verbose, "verbose", false, "Verbose mode. Print errors as they happen") +} + +type feedOptions struct { + connections int + route string + verbose bool + traceLevel int + timeoutSecs int } func newFeedCmd(cli *CLI) *cobra.Command { - var ( - verbose bool - connections int - ) + var options feedOptions cmd := &cobra.Command{ Use: "feed FILE", Short: "Feed documents to a Vespa cluster", @@ -56,10 +64,10 @@ $ cat documents.jsonl | vespa feed - defer f.Close() r = f } - return feed(r, cli, verbose, connections) + return feed(r, cli, options) }, } - addFeedFlags(cmd, &verbose, &connections) + addFeedFlags(cmd, &options) return cmd } @@ -73,20 +81,23 @@ func createServiceClients(service *vespa.Service, n int) []util.HTTPClient { return clients } -func feed(r io.Reader, cli *CLI, verbose bool, connections int) error { +func feed(r io.Reader, cli *CLI, options feedOptions) error { service, err := documentService(cli) if err != nil { return err } - clients := createServiceClients(service, connections) + clients := createServiceClients(service, options.connections) client := document.NewClient(document.ClientOptions{ - BaseURL: service.BaseURL, + Timeout: time.Duration(options.timeoutSecs) * time.Second, + Route: options.route, + TraceLevel: options.traceLevel, + BaseURL: service.BaseURL, }, clients) - throttler := document.NewThrottler(connections) + throttler := document.NewThrottler(options.connections) // TODO(mpolden): Make doom duration configurable circuitBreaker := document.NewCircuitBreaker(10*time.Second, 0) errWriter := io.Discard - if verbose { + if options.verbose { errWriter = cli.Stderr } dispatcher := document.NewDispatcher(client, throttler, circuitBreaker, errWriter) diff --git a/client/go/internal/vespa/document/http.go b/client/go/internal/vespa/document/http.go index ae823686a76..d602821d603 100644 --- a/client/go/internal/vespa/document/http.go +++ b/client/go/internal/vespa/document/http.go @@ -29,7 +29,7 @@ type ClientOptions struct { BaseURL string Timeout time.Duration Route string - TraceLevel *int + TraceLevel int } type countingHTTPClient struct { @@ -78,8 +78,8 @@ func (c *Client) queryParams() url.Values { if c.options.Route != "" { params.Set("route", c.options.Route) } - if c.options.TraceLevel != nil { - params.Set("tracelevel", strconv.Itoa(*c.options.TraceLevel)) + if c.options.TraceLevel > 0 { + params.Set("tracelevel", strconv.Itoa(c.options.TraceLevel)) } return params } |