feat: warn user when 'pin remote add' while offline (#8621)

* feat: add warning message when the local node is offline for remote pinning

* feat: check is node is online

* feat: add test in t0700-remotepin.sh

* feat: use grep and fix the test

* fix: print to stdout only when --enc=text

This ensures we don't break JSON produced by --enc=json

Co-authored-by: Marcin Rataj <lidel@lidel.org>
This commit is contained in:
Feiran Yang 2022-02-16 06:19:53 +08:00 committed by GitHub
parent edb32ac3d7
commit e93d6fbfb1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 0 deletions

View File

@ -4,6 +4,7 @@ import (
"context"
"fmt"
"io"
"os"
"sort"
"strings"
"text/tabwriter"
@ -185,6 +186,8 @@ NOTE: a comma-separated notation is supported in CLI for convenience:
return err
}
opts = append(opts, pinclient.PinOpts.WithOrigins(addrs...))
} else if isInBlockstore && !node.IsOnline && cmds.GetEncoding(req, cmds.Text) == cmds.Text {
fmt.Fprintf(os.Stdout, "WARNING: the local node is offline and remote pinning may fail if there is no other provider for this CID\n")
}
// Execute remote pin request

View File

@ -319,6 +319,14 @@ test_remote_pins() {
test_remote_pins ""
test_kill_ipfs_daemon
WARNINGMESSAGE="WARNING: the local node is offline and remote pinning may fail if there is no other provider for this CID"
test_expect_success "'ipfs pin remote add' shows the warning message while offline" '
test_expect_code 0 ipfs pin remote add --service=test_pin_svc --background $BASE_ARGS --name=name_a $HASH_A > actual &&
test_expect_code 0 grep -q "$WARNINGMESSAGE" actual
'
test_done
# vim: ts=2 sw=2 sts=2 et: