aboutsummaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorKristian Aune <kraune@verizonmedia.com>2023-03-15 20:58:46 +0100
committerKristian Aune <kraune@verizonmedia.com>2023-03-15 20:58:46 +0100
commit7f43f09826a37669fd10babe0577008d8455dda4 (patch)
tree26b916b026155ac3f2a155b074862b982930b741 /client
parent072b1f30ccd6a49c411dacd4b6cd544784309d21 (diff)
Check arguments first
Diffstat (limited to 'client')
-rw-r--r--client/go/internal/cli/cmd/visit.go23
1 files changed, 16 insertions, 7 deletions
diff --git a/client/go/internal/cli/cmd/visit.go b/client/go/internal/cli/cmd/visit.go
index e2185033eb6..86862c2506f 100644
--- a/client/go/internal/cli/cmd/visit.go
+++ b/client/go/internal/cli/cmd/visit.go
@@ -99,11 +99,15 @@ $ vespa visit --content-cluster search # get documents from cluster named "searc
SilenceUsage: true,
RunE: func(cmd *cobra.Command, args []string) error {
vArgs.cli = cli
+ result := checkArguments(vArgs)
+ if !result.Success {
+ return fmt.Errorf("argument error: %s", result.Message)
+ }
service, err := documentService(cli)
if err != nil {
return err
}
- result := probeHandler(service, cli)
+ result = probeHandler(service, cli)
if result.Success {
result = visitClusters(&vArgs, service)
}
@@ -129,6 +133,15 @@ $ vespa visit --content-cluster search # get documents from cluster named "searc
return cmd
}
+func checkArguments(vArgs visitArgs) (res util.OperationResult) {
+ if vArgs.slices > 0 || vArgs.sliceId > 0 {
+ if !(vArgs.slices > 0 && vArgs.sliceId > 0) {
+ return util.Failure("Both 'slices' and 'slice-id' must be set")
+ }
+ }
+ return util.Success("")
+}
+
type HandlersInfo struct {
Handlers []struct {
HandlerId string `json:"id"`
@@ -294,12 +307,8 @@ func runOneVisit(vArgs *visitArgs, service *vespa.Service, contToken string) (*V
if vArgs.to > 0 {
urlPath = urlPath + fmt.Sprintf("&toTimestamp=%d", vArgs.to)
}
- if vArgs.slices > 0 || vArgs.sliceId > 0 {
- if vArgs.slices > 0 && vArgs.sliceId > 0 {
- urlPath = urlPath + fmt.Sprintf("&slices=%d&sliceId=%d", vArgs.slices, vArgs.sliceId)
- } else {
- return nil, util.Failure("Argument error: Both 'slices' and 'slice-id' must be set")
- }
+ if vArgs.sliceId > 0 {
+ urlPath = urlPath + fmt.Sprintf("&slices=%d&sliceId=%d", vArgs.slices, vArgs.sliceId)
}
url, urlParseError := url.Parse(urlPath)
if urlParseError != nil {