@cryptotaxi247 / kubo / commits / e93d6fbfb

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>

Feiran Yang committed Feb 16, 2022 at 06:19 UTC e93d6fbfb13c545c80bb4ccf93845532cbb02493
2 files changed +11
core/commands/pin/remotepin.go
+3
@@ -4,6 +4,7 @@ import (
4 "context"
5 "fmt"
6 "io"
7 + "os"
8 "sort"
9 "strings"
10 "text/tabwriter"
@@ -185,6 +186,8 @@ NOTE: a comma-separated notation is supported in CLI for convenience:
186 return err
187 }
188 opts = append(opts, pinclient.PinOpts.WithOrigins(addrs...))
189 + } else if isInBlockstore && !node.IsOnline && cmds.GetEncoding(req, cmds.Text) == cmds.Text {
190 + 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")
191 }
192
193 // Execute remote pin request
test/sharness/t0700-remotepin.sh
+8
@@ -319,6 +319,14 @@ test_remote_pins() {
319 test_remote_pins ""
320
321 test_kill_ipfs_daemon
322 +
323 +WARNINGMESSAGE="WARNING: the local node is offline and remote pinning may fail if there is no other provider for this CID"
324 +
325 +test_expect_success "'ipfs pin remote add' shows the warning message while offline" '
326 + test_expect_code 0 ipfs pin remote add --service=test_pin_svc --background $BASE_ARGS --name=name_a $HASH_A > actual &&
327 + test_expect_code 0 grep -q "$WARNINGMESSAGE" actual
328 +'
329 +
330 test_done
331
332 # vim: ts=2 sw=2 sts=2 et: