summaryrefslogtreecommitdiffstats
path: root/client/go/internal/cli/cmd/visit.go
diff options
context:
space:
mode:
Diffstat (limited to 'client/go/internal/cli/cmd/visit.go')
-rw-r--r--client/go/internal/cli/cmd/visit.go31
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())