summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorArne H Juul <arnej27959@users.noreply.github.com>2023-04-21 15:09:04 +0200
committerGitHub <noreply@github.com>2023-04-21 15:09:04 +0200
commit148b031cbee4b97fc633dd0051f0947e4d4c5515 (patch)
tree43b6575e8c140b60ca2136ee8554d25abc718c80 /client
parenteaedf1a1417e5592ebb736aa34a7b72bd03fe169 (diff)
parentd449d18dae27735be529a6e387bb89c10f1762ab (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.go31
-rw-r--r--client/go/internal/cli/cmd/visit_test.go3
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")