chore(cmds): dag import: use ipld legacy decode
Lucas Molas committed
Aug 23, 2022 at 12:04 UTC
e48626f517f89863dcf2f1db85deb92f2d2709e8
2 files changed
+13
-2
core/commands/dag/import.go
+3
-2
@@ -8,6 +8,7 @@ import (
8
cid "github.com/ipfs/go-cid"
9
files "github.com/ipfs/go-ipfs-files"
10
ipld "github.com/ipfs/go-ipld-format"
11
+ ipldlegacy "github.com/ipfs/go-ipld-legacy"
12
iface "github.com/ipfs/interface-go-ipfs-core"
13
"github.com/ipfs/interface-go-ipfs-core/options"
14
"github.com/ipfs/kubo/core/commands/cmdenv"
@@ -90,7 +91,7 @@ func dagImport(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment
91
92
if block, err := node.Blockstore.Get(req.Context, c); err != nil {
93
ret.PinErrorMsg = err.Error()
93
- } else if nd, err := ipld.Decode(block); err != nil {
94
+ } else if nd, err := ipldlegacy.DecodeNode(req.Context, block); err != nil {
95
ret.PinErrorMsg = err.Error()
96
} else if err := node.Pinning.Pin(req.Context, nd, true); err != nil {
97
ret.PinErrorMsg = err.Error()
@@ -181,7 +182,7 @@ func importWorker(req *cmds.Request, re cmds.ResponseEmitter, api iface.CoreAPI,
182
}
183
184
// the double-decode is suboptimal, but we need it for batching
184
- nd, err := ipld.Decode(block)
185
+ nd, err := ipldlegacy.DecodeNode(req.Context, block)
186
if err != nil {
187
return err
188
}
test/sharness/t0054-dag-car-import-export.sh
+10
@@ -263,4 +263,14 @@ test_expect_success "version 2 import output as expected" '
263
test_cmp_sorted version_2_import_expected version_2_import_actual
264
'
265
266
+test_expect_success "'ipfs dag import' decode IPLD dag-json works" '
267
+ HASH=$(echo "dag-json content" | ipfs add -Q) &&
268
+ # We dont pipe because that doesnt release the repo lock
269
+ ipfs dag get $HASH > dag-json.out &&
270
+ NEW_HASH=$(ipfs dag put --store-codec dag-json dag-json.out) &&
271
+ ipfs dag export $NEW_HASH > dag-json.car &&
272
+ ipfs dag import dag-json.car &&
273
+ rm dag-json.out dag-json.car
274
+'
275
+
276
test_done