Skip to content

Commit 1ed555b

Browse files
committed
Cleanup instances of manual resolver construction
License: MIT Signed-off-by: Łukasz Magiera <[email protected]>
1 parent e93aa25 commit 1ed555b

File tree

14 files changed

+170
-190
lines changed

14 files changed

+170
-190
lines changed

core/commands/cat.go

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@ import (
66
"io"
77
"os"
88

9-
core "github.com/ipfs/go-ipfs/core"
109
cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv"
11-
coreunix "github.com/ipfs/go-ipfs/core/coreunix"
10+
"github.com/ipfs/go-ipfs/core/coreapi/interface"
1211

1312
"gx/ipfs/QmSP88ryZkHSRn1fnngAaV2Vcn63WUJzAavnRM9CVdU1Ky/go-ipfs-cmdkit"
1413
cmds "gx/ipfs/QmXTmUCBtDUrzDYVzASogLiNph7EBuYqEgPL7QoHNMzUnz/go-ipfs-cmds"
@@ -35,6 +34,11 @@ var CatCmd = &cmds.Command{
3534
return err
3635
}
3736

37+
api, err := cmdenv.GetApi(env)
38+
if err != nil {
39+
return err
40+
}
41+
3842
if !node.OnlineMode() {
3943
if err := node.SetupOfflineRouting(); err != nil {
4044
return err
@@ -62,7 +66,7 @@ var CatCmd = &cmds.Command{
6266
return err
6367
}
6468

65-
readers, length, err := cat(req.Context, node, req.Arguments, int64(offset), int64(max))
69+
readers, length, err := cat(req.Context, api, req.Arguments, int64(offset), int64(max))
6670
if err != nil {
6771
return err
6872
}
@@ -115,14 +119,19 @@ var CatCmd = &cmds.Command{
115119
},
116120
}
117121

118-
func cat(ctx context.Context, node *core.IpfsNode, paths []string, offset int64, max int64) ([]io.Reader, uint64, error) {
122+
func cat(ctx context.Context, api iface.CoreAPI, paths []string, offset int64, max int64) ([]io.Reader, uint64, error) {
119123
readers := make([]io.Reader, 0, len(paths))
120124
length := uint64(0)
121125
if max == 0 {
122126
return nil, 0, nil
123127
}
124-
for _, fpath := range paths {
125-
read, err := coreunix.Cat(ctx, node, fpath)
128+
for _, p := range paths {
129+
fpath, err := iface.ParsePath(p)
130+
if err != nil {
131+
return nil, 0, err
132+
}
133+
134+
read, err := api.Unixfs().Cat(ctx, fpath)
126135
if err != nil {
127136
return nil, 0, err
128137
}

core/commands/files.go

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,19 @@ import (
1616
core "github.com/ipfs/go-ipfs/core"
1717
cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv"
1818
e "github.com/ipfs/go-ipfs/core/commands/e"
19-
ft "gx/ipfs/QmU4x3742bvgfxJsByEDpBnifJqjJdV6x528co4hwKCn46/go-unixfs"
20-
uio "gx/ipfs/QmU4x3742bvgfxJsByEDpBnifJqjJdV6x528co4hwKCn46/go-unixfs/io"
21-
dag "gx/ipfs/QmcBoNcAP6qDjgRBew7yjvCqHq7p5jMstE44jPUBWBxzsV/go-merkledag"
22-
bservice "gx/ipfs/QmcRecCZWM2NZfCQrCe97Ch3Givv8KKEP82tGUDntzdLFe/go-blockservice"
23-
path "gx/ipfs/QmcjwUb36Z16NJkvDX6ccXPqsFswo6AsRXynyXcLLCphV2/go-path"
24-
resolver "gx/ipfs/QmcjwUb36Z16NJkvDX6ccXPqsFswo6AsRXynyXcLLCphV2/go-path/resolver"
19+
"github.com/ipfs/go-ipfs/core/coreapi/interface"
2520

2621
humanize "gx/ipfs/QmPSBJL4momYnE7DcUyk2DVhD6rH488ZmHBGLbxNdhU44K/go-humanize"
2722
cid "gx/ipfs/QmPSQnBKM9g7BaUcZCvswUJVscQ1ipjmwxN5PXCjkp9EQ7/go-cid"
2823
mh "gx/ipfs/QmPnFwZ2JXKnXgMw8CdBPxn7FWh6LLdjUjxV1fKHuJnkr8/go-multihash"
2924
offline "gx/ipfs/QmR5miWuikPxWyUrzMYJVmFUcD44pGdtc98h9Qsbp4YcJw/go-ipfs-exchange-offline"
3025
cmdkit "gx/ipfs/QmSP88ryZkHSRn1fnngAaV2Vcn63WUJzAavnRM9CVdU1Ky/go-ipfs-cmdkit"
26+
ft "gx/ipfs/QmU4x3742bvgfxJsByEDpBnifJqjJdV6x528co4hwKCn46/go-unixfs"
3127
cmds "gx/ipfs/QmXTmUCBtDUrzDYVzASogLiNph7EBuYqEgPL7QoHNMzUnz/go-ipfs-cmds"
3228
logging "gx/ipfs/QmZChCsSt8DctjceaL56Eibc29CVQq4dGKRXC5JRZ6Ppae/go-log"
3329
mfs "gx/ipfs/QmahrY1adY4wvtYEtoGjpZ2GUohTyukrkMkwUR9ytRjTG2/go-mfs"
30+
dag "gx/ipfs/QmcBoNcAP6qDjgRBew7yjvCqHq7p5jMstE44jPUBWBxzsV/go-merkledag"
31+
bservice "gx/ipfs/QmcRecCZWM2NZfCQrCe97Ch3Givv8KKEP82tGUDntzdLFe/go-blockservice"
3432
ipld "gx/ipfs/QmdDXJs4axxefSPgK6Y1QhpJWKuDPnGJiqgq4uncb4rFHL/go-ipld-format"
3533
)
3634

@@ -120,6 +118,11 @@ var filesStatCmd = &cmds.Command{
120118
return err
121119
}
122120

121+
api, err := cmdenv.GetApi(env)
122+
if err != nil {
123+
return err
124+
}
125+
123126
path, err := checkPath(req.Arguments[0])
124127
if err != nil {
125128
return err
@@ -138,7 +141,7 @@ var filesStatCmd = &cmds.Command{
138141
dagserv = node.DAG
139142
}
140143

141-
nd, err := getNodeFromPath(req.Context, node, dagserv, path)
144+
nd, err := getNodeFromPath(req.Context, node, api, path)
142145
if err != nil {
143146
return err
144147
}
@@ -305,6 +308,12 @@ var filesCpCmd = &oldcmds.Command{
305308
return
306309
}
307310

311+
api, err := req.InvocContext().GetApi()
312+
if err != nil {
313+
res.SetError(err, cmdkit.ErrNormal)
314+
return
315+
}
316+
308317
flush, _, _ := req.Option("flush").Bool()
309318

310319
src, err := checkPath(req.Arguments()[0])
@@ -324,7 +333,7 @@ var filesCpCmd = &oldcmds.Command{
324333
dst += gopath.Base(src)
325334
}
326335

327-
nd, err := getNodeFromPath(req.Context(), node, node.DAG, src)
336+
nd, err := getNodeFromPath(req.Context(), node, api, src)
328337
if err != nil {
329338
res.SetError(fmt.Errorf("cp: cannot get node from path %s: %s", src, err), cmdkit.ErrNormal)
330339
return
@@ -348,20 +357,15 @@ var filesCpCmd = &oldcmds.Command{
348357
},
349358
}
350359

351-
func getNodeFromPath(ctx context.Context, node *core.IpfsNode, dagservice ipld.DAGService, p string) (ipld.Node, error) {
360+
func getNodeFromPath(ctx context.Context, node *core.IpfsNode, api iface.CoreAPI, p string) (ipld.Node, error) {
352361
switch {
353362
case strings.HasPrefix(p, "/ipfs/"):
354-
np, err := path.ParsePath(p)
363+
np, err := iface.ParsePath(p)
355364
if err != nil {
356365
return nil, err
357366
}
358367

359-
resolver := &resolver.Resolver{
360-
DAG: dagservice,
361-
ResolveOnce: uio.ResolveUnixfsOnce,
362-
}
363-
364-
return core.Resolve(ctx, node.Namesys, resolver, np)
368+
return api.ResolveNode(ctx, np)
365369
default:
366370
fsn, err := mfs.Lookup(node.FilesRoot, p)
367371
if err != nil {

core/commands/ls.go

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,17 @@ import (
77
"text/tabwriter"
88

99
cmds "github.com/ipfs/go-ipfs/commands"
10-
core "github.com/ipfs/go-ipfs/core"
1110
e "github.com/ipfs/go-ipfs/core/commands/e"
11+
iface "github.com/ipfs/go-ipfs/core/coreapi/interface"
12+
13+
cid "gx/ipfs/QmPSQnBKM9g7BaUcZCvswUJVscQ1ipjmwxN5PXCjkp9EQ7/go-cid"
14+
offline "gx/ipfs/QmR5miWuikPxWyUrzMYJVmFUcD44pGdtc98h9Qsbp4YcJw/go-ipfs-exchange-offline"
15+
"gx/ipfs/QmSP88ryZkHSRn1fnngAaV2Vcn63WUJzAavnRM9CVdU1Ky/go-ipfs-cmdkit"
1216
unixfs "gx/ipfs/QmU4x3742bvgfxJsByEDpBnifJqjJdV6x528co4hwKCn46/go-unixfs"
1317
uio "gx/ipfs/QmU4x3742bvgfxJsByEDpBnifJqjJdV6x528co4hwKCn46/go-unixfs/io"
1418
unixfspb "gx/ipfs/QmU4x3742bvgfxJsByEDpBnifJqjJdV6x528co4hwKCn46/go-unixfs/pb"
1519
merkledag "gx/ipfs/QmcBoNcAP6qDjgRBew7yjvCqHq7p5jMstE44jPUBWBxzsV/go-merkledag"
1620
blockservice "gx/ipfs/QmcRecCZWM2NZfCQrCe97Ch3Givv8KKEP82tGUDntzdLFe/go-blockservice"
17-
path "gx/ipfs/QmcjwUb36Z16NJkvDX6ccXPqsFswo6AsRXynyXcLLCphV2/go-path"
18-
resolver "gx/ipfs/QmcjwUb36Z16NJkvDX6ccXPqsFswo6AsRXynyXcLLCphV2/go-path/resolver"
19-
20-
cid "gx/ipfs/QmPSQnBKM9g7BaUcZCvswUJVscQ1ipjmwxN5PXCjkp9EQ7/go-cid"
21-
offline "gx/ipfs/QmR5miWuikPxWyUrzMYJVmFUcD44pGdtc98h9Qsbp4YcJw/go-ipfs-exchange-offline"
22-
"gx/ipfs/QmSP88ryZkHSRn1fnngAaV2Vcn63WUJzAavnRM9CVdU1Ky/go-ipfs-cmdkit"
2321
ipld "gx/ipfs/QmdDXJs4axxefSPgK6Y1QhpJWKuDPnGJiqgq4uncb4rFHL/go-ipld-format"
2422
)
2523

@@ -65,6 +63,12 @@ The JSON output contains type information.
6563
return
6664
}
6765

66+
api, err := req.InvocContext().GetApi()
67+
if err != nil {
68+
res.SetError(err, cmdkit.ErrNormal)
69+
return
70+
}
71+
6872
// get options early -> exit early in case of error
6973
if _, _, err := req.Option("headers").Bool(); err != nil {
7074
res.SetError(err, cmdkit.ErrNormal)
@@ -88,18 +92,13 @@ The JSON output contains type information.
8892

8993
var dagnodes []ipld.Node
9094
for _, fpath := range paths {
91-
p, err := path.ParsePath(fpath)
95+
p, err := iface.ParsePath(fpath)
9296
if err != nil {
9397
res.SetError(err, cmdkit.ErrNormal)
9498
return
9599
}
96100

97-
r := &resolver.Resolver{
98-
DAG: nd.DAG,
99-
ResolveOnce: uio.ResolveUnixfsOnce,
100-
}
101-
102-
dagnode, err := core.Resolve(req.Context(), nd.Namesys, r, p)
101+
dagnode, err := api.ResolveNode(req.Context(), p)
103102
if err != nil {
104103
res.SetError(err, cmdkit.ErrNormal)
105104
return

core/commands/pin.go

Lines changed: 32 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,17 @@ import (
1010
cmds "github.com/ipfs/go-ipfs/commands"
1111
core "github.com/ipfs/go-ipfs/core"
1212
e "github.com/ipfs/go-ipfs/core/commands/e"
13+
iface "github.com/ipfs/go-ipfs/core/coreapi/interface"
14+
options "github.com/ipfs/go-ipfs/core/coreapi/interface/options"
1315
corerepo "github.com/ipfs/go-ipfs/core/corerepo"
1416
pin "github.com/ipfs/go-ipfs/pin"
15-
uio "gx/ipfs/QmU4x3742bvgfxJsByEDpBnifJqjJdV6x528co4hwKCn46/go-unixfs/io"
1617

1718
cid "gx/ipfs/QmPSQnBKM9g7BaUcZCvswUJVscQ1ipjmwxN5PXCjkp9EQ7/go-cid"
1819
offline "gx/ipfs/QmR5miWuikPxWyUrzMYJVmFUcD44pGdtc98h9Qsbp4YcJw/go-ipfs-exchange-offline"
1920
"gx/ipfs/QmSP88ryZkHSRn1fnngAaV2Vcn63WUJzAavnRM9CVdU1Ky/go-ipfs-cmdkit"
2021
"gx/ipfs/QmVkMRSkXrpjqrroEXWuYBvDBnXCdMMY6gsKicBGVGUqKT/go-verifcid"
2122
dag "gx/ipfs/QmcBoNcAP6qDjgRBew7yjvCqHq7p5jMstE44jPUBWBxzsV/go-merkledag"
2223
bserv "gx/ipfs/QmcRecCZWM2NZfCQrCe97Ch3Givv8KKEP82tGUDntzdLFe/go-blockservice"
23-
path "gx/ipfs/QmcjwUb36Z16NJkvDX6ccXPqsFswo6AsRXynyXcLLCphV2/go-path"
24-
resolver "gx/ipfs/QmcjwUb36Z16NJkvDX6ccXPqsFswo6AsRXynyXcLLCphV2/go-path/resolver"
2524
)
2625

2726
var PinCmd = &cmds.Command{
@@ -68,6 +67,12 @@ var addPinCmd = &cmds.Command{
6867
return
6968
}
7069

70+
api, err := req.InvocContext().GetApi()
71+
if err != nil {
72+
res.SetError(err, cmdkit.ErrNormal)
73+
return
74+
}
75+
7176
defer n.Blockstore.PinLock().Unlock()
7277

7378
// set recursive flag
@@ -79,7 +84,7 @@ var addPinCmd = &cmds.Command{
7984
showProgress, _, _ := req.Option("progress").Bool()
8085

8186
if !showProgress {
82-
added, err := corerepo.Pin(n, req.Context(), req.Arguments(), recursive)
87+
added, err := corerepo.Pin(n, api, req.Context(), req.Arguments(), recursive)
8388
if err != nil {
8489
res.SetError(err, cmdkit.ErrNormal)
8590
return
@@ -99,7 +104,7 @@ var addPinCmd = &cmds.Command{
99104
}
100105
ch := make(chan pinResult, 1)
101106
go func() {
102-
added, err := corerepo.Pin(n, ctx, req.Arguments(), recursive)
107+
added, err := corerepo.Pin(n, api, ctx, req.Arguments(), recursive)
103108
ch <- pinResult{pins: added, err: err}
104109
}()
105110

@@ -193,14 +198,20 @@ collected if needed. (By default, recursively. Use -r=false for direct pins.)
193198
return
194199
}
195200

201+
api, err := req.InvocContext().GetApi()
202+
if err != nil {
203+
res.SetError(err, cmdkit.ErrNormal)
204+
return
205+
}
206+
196207
// set recursive flag
197208
recursive, _, err := req.Option("recursive").Bool()
198209
if err != nil {
199210
res.SetError(err, cmdkit.ErrNormal)
200211
return
201212
}
202213

203-
removed, err := corerepo.Unpin(n, req.Context(), req.Arguments(), recursive)
214+
removed, err := corerepo.Unpin(n, api, req.Context(), req.Arguments(), recursive)
204215
if err != nil {
205216
res.SetError(err, cmdkit.ErrNormal)
206217
return
@@ -287,6 +298,12 @@ Example:
287298
return
288299
}
289300

301+
api, err := req.InvocContext().GetApi()
302+
if err != nil {
303+
res.SetError(err, cmdkit.ErrNormal)
304+
return
305+
}
306+
290307
typeStr, _, err := req.Option("type").String()
291308
if err != nil {
292309
res.SetError(err, cmdkit.ErrNormal)
@@ -304,7 +321,7 @@ Example:
304321
var keys map[string]RefKeyObject
305322

306323
if len(req.Arguments()) > 0 {
307-
keys, err = pinLsKeys(req.Context(), req.Arguments(), typeStr, n)
324+
keys, err = pinLsKeys(req.Context(), req.Arguments(), typeStr, n, api)
308325
} else {
309326
keys, err = pinLsAll(req.Context(), typeStr, n)
310327
}
@@ -364,7 +381,7 @@ new pin and removing the old one.
364381
},
365382
Type: PinOutput{},
366383
Run: func(req cmds.Request, res cmds.Response) {
367-
n, err := req.InvocContext().GetNode()
384+
api, err := req.InvocContext().GetApi()
368385
if err != nil {
369386
res.SetError(err, cmdkit.ErrNormal)
370387
return
@@ -376,42 +393,19 @@ new pin and removing the old one.
376393
return
377394
}
378395

379-
from, err := path.ParsePath(req.Arguments()[0])
396+
from, err := iface.ParsePath(req.Arguments()[0])
380397
if err != nil {
381398
res.SetError(err, cmdkit.ErrNormal)
382399
return
383400
}
384401

385-
to, err := path.ParsePath(req.Arguments()[1])
402+
to, err := iface.ParsePath(req.Arguments()[1])
386403
if err != nil {
387404
res.SetError(err, cmdkit.ErrNormal)
388405
return
389406
}
390407

391-
r := &resolver.Resolver{
392-
DAG: n.DAG,
393-
ResolveOnce: uio.ResolveUnixfsOnce,
394-
}
395-
396-
fromc, err := core.ResolveToCid(req.Context(), n.Namesys, r, from)
397-
if err != nil {
398-
res.SetError(err, cmdkit.ErrNormal)
399-
return
400-
}
401-
402-
toc, err := core.ResolveToCid(req.Context(), n.Namesys, r, to)
403-
if err != nil {
404-
res.SetError(err, cmdkit.ErrNormal)
405-
return
406-
}
407-
408-
err = n.Pinning.Update(req.Context(), fromc, toc, unpin)
409-
if err != nil {
410-
res.SetError(err, cmdkit.ErrNormal)
411-
return
412-
}
413-
414-
err = n.Pinning.Flush()
408+
err = api.Pin().Update(req.Context(), from, to, options.Pin.Unpin(unpin))
415409
if err != nil {
416410
res.SetError(err, cmdkit.ErrNormal)
417411
return
@@ -501,7 +495,7 @@ type RefKeyList struct {
501495
Keys map[string]RefKeyObject
502496
}
503497

504-
func pinLsKeys(ctx context.Context, args []string, typeStr string, n *core.IpfsNode) (map[string]RefKeyObject, error) {
498+
func pinLsKeys(ctx context.Context, args []string, typeStr string, n *core.IpfsNode, api iface.CoreAPI) (map[string]RefKeyObject, error) {
505499

506500
mode, ok := pin.StringToMode(typeStr)
507501
if !ok {
@@ -510,23 +504,18 @@ func pinLsKeys(ctx context.Context, args []string, typeStr string, n *core.IpfsN
510504

511505
keys := make(map[string]RefKeyObject)
512506

513-
r := &resolver.Resolver{
514-
DAG: n.DAG,
515-
ResolveOnce: uio.ResolveUnixfsOnce,
516-
}
517-
518507
for _, p := range args {
519-
pth, err := path.ParsePath(p)
508+
pth, err := iface.ParsePath(p)
520509
if err != nil {
521510
return nil, err
522511
}
523512

524-
c, err := core.ResolveToCid(ctx, n.Namesys, r, pth)
513+
c, err := api.ResolvePath(ctx, pth)
525514
if err != nil {
526515
return nil, err
527516
}
528517

529-
pinType, pinned, err := n.Pinning.IsPinnedWithType(c, mode)
518+
pinType, pinned, err := n.Pinning.IsPinnedWithType(c.Cid(), mode)
530519
if err != nil {
531520
return nil, err
532521
}

0 commit comments

Comments
 (0)