Skip to content

Commit

Permalink
Ignore only 404
Browse files Browse the repository at this point in the history
  • Loading branch information
mpolden committed Jan 27, 2025
1 parent f685531 commit 44d7e38
Showing 1 changed file with 18 additions and 16 deletions.
34 changes: 18 additions & 16 deletions client/go/internal/cli/cmd/document.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,10 +101,10 @@ func sendOperation(op document.Operation, args []string, timeoutSecs int, waiter
service.CurlWriter.InputFile = filename
}
result := client.Send(doc)
return printResult(cli, operationResult(false, doc, service, result), false, false)
return printResult(cli, operationResult(false, doc, service, result), false)
}

func readDocuments(ids []string, timeoutSecs int, waiter *Waiter, printCurl bool, cli *CLI, fieldSet string, headers []string, ignoreMissing bool) error {
func readDocuments(ids []string, timeoutSecs int, waiter *Waiter, printCurl bool, cli *CLI, fieldSet string, headers []string, ignoreNotFound bool) error {
parsedIds := make([]document.Id, 0, len(ids))
for _, id := range ids {
parsedId, err := document.ParseId(id)
Expand All @@ -121,8 +121,11 @@ func readDocuments(ids []string, timeoutSecs int, waiter *Waiter, printCurl bool

for _, docId := range parsedIds {
result := client.Get(docId, fieldSet)
if err := printResult(cli, operationResult(true, document.Document{Id: docId}, service, result), true, ignoreMissing); err != nil {
return err
if err := printResult(cli, operationResult(true, document.Document{Id: docId}, service, result), true); err != nil {
ignoreErr := ignoreNotFound && result.HTTPStatus == 404
if !ignoreErr {
return err
}
}
}

Expand Down Expand Up @@ -266,7 +269,7 @@ $ vespa document remove id:mynamespace:music::a-head-full-of-dreams`,
}
doc := document.Document{Id: id, Operation: document.OperationRemove}
result := client.Send(doc)
return printResult(cli, operationResult(false, doc, service, result), false, false)
return printResult(cli, operationResult(false, doc, service, result), false)
} else {
return sendOperation(document.OperationRemove, args, timeoutSecs, waiter, printCurl, cli, headers)
}
Expand All @@ -278,12 +281,12 @@ $ vespa document remove id:mynamespace:music::a-head-full-of-dreams`,

func newDocumentGetCmd(cli *CLI) *cobra.Command {
var (
printCurl bool
ignoreMissing bool
timeoutSecs int
waitSecs int
fieldSet string
headers []string
printCurl bool
ignoreNotFound bool
timeoutSecs int
waitSecs int
fieldSet string
headers []string
)
cmd := &cobra.Command{
Use: "get id",
Expand All @@ -294,11 +297,11 @@ func newDocumentGetCmd(cli *CLI) *cobra.Command {
Example: `$ vespa document get id:mynamespace:music::a-head-full-of-dreams...`,
RunE: func(cmd *cobra.Command, args []string) error {
waiter := cli.waiter(time.Duration(waitSecs)*time.Second, cmd)
return readDocuments(args, timeoutSecs, waiter, printCurl, cli, fieldSet, headers, ignoreMissing)
return readDocuments(args, timeoutSecs, waiter, printCurl, cli, fieldSet, headers, ignoreNotFound)
},
}
cmd.Flags().StringVar(&fieldSet, "field-set", "", "Fields to include when reading document")
cmd.Flags().BoolVar(&ignoreMissing, "ignore-missing", false, "Ignore failure when getting non-existent documents")
cmd.Flags().BoolVar(&ignoreNotFound, "ignore-missing", false, "Do not treat non-existent document as an error")
addDocumentFlags(cli, cmd, &printCurl, &timeoutSecs, &waitSecs, &headers)
return cmd
}
Expand All @@ -311,7 +314,7 @@ func documentService(cli *CLI, waiter *Waiter) (*vespa.Service, error) {
return waiter.Service(target, cli.config.cluster())
}

func printResult(cli *CLI, result OperationResult, payloadOnlyOnSuccess, ignoreFailure bool) error {
func printResult(cli *CLI, result OperationResult, payloadOnlyOnSuccess bool) error {
out := cli.Stdout
if !result.Success {
out = cli.Stderr
Expand All @@ -333,8 +336,7 @@ func printResult(cli *CLI, result OperationResult, payloadOnlyOnSuccess, ignoreF
}
fmt.Fprintln(out, result.Payload)
}

if !result.Success && !ignoreFailure {
if !result.Success {
err := errHint(fmt.Errorf("document operation failed"))
err.quiet = true
return err
Expand Down

0 comments on commit 44d7e38

Please sign in to comment.