diff options
Diffstat (limited to 'client/go/internal/cli/cmd/visit.go')
-rw-r--r-- | client/go/internal/cli/cmd/visit.go | 31 |
1 files changed, 25 insertions, 6 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()) |