pinner now requires all nodes exist in blockstore
Jeromy committed
Feb 18, 2015 at 09:29 UTC
e49df7bf9f867c10f45bfca361856136a3048c20
2 files changed
+17
-2
pin/pin.go
-1
@@ -175,7 +175,6 @@ func (p *pinner) pinLinks(node *mdag.Node) error {
175
ctx, _ := context.WithTimeout(context.Background(), time.Second*60)
176
for _, ng := range p.dserv.GetDAG(ctx, node) {
177
subnode, err := ng.Get()
178
- //subnode, err := l.GetNode(p.dserv)
178
if err != nil {
179
// TODO: Maybe just log and continue?
180
return err
pin/pin_test.go
+17
-1
@@ -34,6 +34,10 @@ func TestPinnerBasic(t *testing.T) {
34
p := NewPinner(dstore, dserv)
35
36
a, ak := randNode()
37
+ _, err = dserv.Add(a)
38
+ if err != nil {
39
+ t.Fatal(err)
40
+ }
41
42
// Pin A{}
43
err = p.Pin(a, false)
@@ -45,18 +49,30 @@ func TestPinnerBasic(t *testing.T) {
49
t.Fatal("Failed to find key")
50
}
51
52
+ // create new node c, to be indirectly pinned through b
53
+ c, ck := randNode()
54
+ _, err = dserv.Add(c)
55
+ if err != nil {
56
+ t.Fatal(err)
57
+ }
58
+
59
+ // Create new node b, to be parent to a and c
60
b, _ := randNode()
61
err = b.AddNodeLink("child", a)
62
if err != nil {
63
t.Fatal(err)
64
}
65
54
- c, ck := randNode()
66
err = b.AddNodeLink("otherchild", c)
67
if err != nil {
68
t.Fatal(err)
69
}
70
71
+ _, err = dserv.Add(b)
72
+ if err != nil {
73
+ t.Fatal(err)
74
+ }
75
+
76
// recursively pin B{A,C}
77
err = p.Pin(b, true)
78
if err != nil {