diff options
author | Kristian Aune <kraune@verizonmedia.com> | 2023-03-15 20:58:46 +0100 |
---|---|---|
committer | Kristian Aune <kraune@verizonmedia.com> | 2023-03-15 20:58:46 +0100 |
commit | 7f43f09826a37669fd10babe0577008d8455dda4 (patch) | |
tree | 26b916b026155ac3f2a155b074862b982930b741 /client | |
parent | 072b1f30ccd6a49c411dacd4b6cd544784309d21 (diff) |
Check arguments first
Diffstat (limited to 'client')
-rw-r--r-- | client/go/internal/cli/cmd/visit.go | 23 |
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 { |