diff options
author | Arne H Juul <arnej27959@users.noreply.github.com> | 2023-04-21 15:09:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-21 15:09:04 +0200 |
commit | 148b031cbee4b97fc633dd0051f0947e4d4c5515 (patch) | |
tree | 43b6575e8c140b60ca2136ee8554d25abc718c80 /client | |
parent | eaedf1a1417e5592ebb736aa34a7b72bd03fe169 (diff) | |
parent | d449d18dae27735be529a6e387bb89c10f1762ab (diff) |
Merge pull request #26590 from vespa-engine/kkraune/cli-bucketspace
Support bucketSpace doc/v1 argument in vespa cli
Diffstat (limited to 'client')
-rw-r--r-- | client/go/internal/cli/cmd/visit.go | 31 | ||||
-rw-r--r-- | client/go/internal/cli/cmd/visit_test.go | 3 |
2 files changed, 27 insertions, 7 deletions
diff --git a/client/go/internal/cli/cmd/visit.go b/client/go/internal/cli/cmd/visit.go index 6a5b936434c..10fb2743c63 100644 --- a/client/go/internal/cli/cmd/visit.go +++ b/client/go/internal/cli/cmd/visit.go @@ -33,6 +33,8 @@ type visitArgs struct { to string slices int sliceId int + bucketSpace string + bucketSpaces []string cli *CLI } @@ -132,6 +134,7 @@ $ vespa visit --field-set "[id]" # list document IDs cmd.Flags().StringVar(&vArgs.to, "to", "", `Timestamp to visit up to, in seconds`) cmd.Flags().IntVar(&vArgs.sliceId, "slice-id", -1, `The number of the slice this visit invocation should fetch`) cmd.Flags().IntVar(&vArgs.slices, "slices", -1, `Split the document corpus into this number of independent slices`) + cmd.Flags().StringSliceVar(&vArgs.bucketSpaces, "bucket-space", []string{"global", "default"}, `"default" or "global" bucket space`) return cmd } @@ -157,6 +160,16 @@ func checkArguments(vArgs visitArgs) (res util.OperationResult) { return util.Failure("Invalid 'to' argument: '" + vArgs.to + "': " + err.Error()) } } + for _, b := range vArgs.bucketSpaces { + switch b { + case + "default", + "global": + // Do nothing + default: + return util.Failure("Invalid 'bucket-space' argument '" + b + "', must be 'default' or 'global'") + } + } return util.Success("") } @@ -226,13 +239,16 @@ func visitClusters(vArgs *visitArgs, service *vespa.Service) (res util.Operation if vArgs.makeFeed { vArgs.writeString("[\n") } - for _, c := range clusters { - vArgs.contentCluster = c - res = runVisit(vArgs, service) - if !res.Success { - return res + for _, b := range vArgs.bucketSpaces { + for _, c := range clusters { + vArgs.bucketSpace = b + vArgs.contentCluster = c + res = runVisit(vArgs, service) + if !res.Success { + return res + } + vArgs.debugPrint("Success: " + res.Message) } - vArgs.debugPrint("Success: " + res.Message) } if vArgs.makeFeed { vArgs.writeString("{}\n]\n") @@ -330,6 +346,9 @@ func runOneVisit(vArgs *visitArgs, service *vespa.Service, contToken string) (*V if vArgs.slices > 0 { urlPath = urlPath + fmt.Sprintf("&slices=%d&sliceId=%d", vArgs.slices, vArgs.sliceId) } + if vArgs.bucketSpace != "" { + urlPath = urlPath + "&bucketSpace=" + vArgs.bucketSpace + } url, urlParseError := url.Parse(urlPath) if urlParseError != nil { return nil, util.Failure("Invalid request path: '" + urlPath + "': " + urlParseError.Error()) diff --git a/client/go/internal/cli/cmd/visit_test.go b/client/go/internal/cli/cmd/visit_test.go index b6e5b893e0b..9bb8f61554a 100644 --- a/client/go/internal/cli/cmd/visit_test.go +++ b/client/go/internal/cli/cmd/visit_test.go @@ -105,6 +105,7 @@ func TestVisitCommand(t *testing.T) { assertVisitResults( []string{ "visit", + "--bucket-space", "default", "--json-lines", }, t, @@ -118,7 +119,7 @@ func TestVisitCommand(t *testing.T) { document3 + `],"documentCount":2}`, }, - "cluster=fooCC&continuation=CAFE&wantedDocumentCount=1000", + "cluster=fooCC&continuation=CAFE&wantedDocumentCount=1000&bucketSpace=default", document1+"\n"+ document2+"\n"+ document3+"\n") |