Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
dms3
go-ld-format
Commits
c582c36b
Unverified
Commit
c582c36b
authored
Apr 07, 2020
by
Steven Allen
Committed by
GitHub
Apr 07, 2020
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #57 from ipfs/revert/errors
Revert ErrNotFound improvements
parents
b15a4bd4
6a5fbeae
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
4 additions
and
64 deletions
+4
-64
batch_test.go
batch_test.go
+2
-23
daghelpers.go
daghelpers.go
+1
-1
merkledag.go
merkledag.go
+1
-40
No files found.
batch_test.go
View file @
c582c36b
...
...
@@ -2,8 +2,6 @@ package format
import
(
"context"
"errors"
"fmt"
"sync"
"testing"
...
...
@@ -26,7 +24,7 @@ func (d *testDag) Get(ctx context.Context, cid cid.Cid) (Node, error) {
if
n
,
ok
:=
d
.
nodes
[
cid
.
KeyString
()];
ok
{
return
n
,
nil
}
return
nil
,
ErrNotFound
{
cid
}
return
nil
,
ErrNotFound
}
func
(
d
*
testDag
)
GetMany
(
ctx
context
.
Context
,
cids
[]
cid
.
Cid
)
<-
chan
*
NodeOption
{
...
...
@@ -37,7 +35,7 @@ func (d *testDag) GetMany(ctx context.Context, cids []cid.Cid) <-chan *NodeOptio
if
n
,
ok
:=
d
.
nodes
[
c
.
KeyString
()];
ok
{
out
<-
&
NodeOption
{
Node
:
n
}
}
else
{
out
<-
&
NodeOption
{
Err
:
ErrNotFound
{
c
}
}
out
<-
&
NodeOption
{
Err
:
ErrNotFound
}
}
}
close
(
out
)
...
...
@@ -146,22 +144,3 @@ func TestBatchOptions(t *testing.T) {
t
.
Fatalf
(
"maxNodes incorrect, want: %d, got: %d"
,
wantMaxNodes
,
b
.
opts
.
maxNodes
)
}
}
func
TestErrorTypes
(
t
*
testing
.
T
)
{
d
:=
newTestDag
()
notFoundNode
:=
&
EmptyNode
{}
_
,
err
:=
d
.
Get
(
context
.
Background
(),
notFoundNode
.
Cid
())
if
err
==
nil
{
t
.
Fatal
(
"should throw NotFound error"
)
}
err2
:=
fmt
.
Errorf
(
"could not read: %w"
,
err
)
if
!
errors
.
Is
(
err
,
ErrNotFound
{})
{
t
.
Fatal
(
"should be an ErrNotFound"
)
}
if
!
errors
.
Is
(
err2
,
ErrNotFound
{})
{
t
.
Fatal
(
"should be an ErrNotFound"
)
}
}
daghelpers.go
View file @
c582c36b
...
...
@@ -61,7 +61,7 @@ func GetNodes(ctx context.Context, ds NodeGetter, keys []cid.Cid) []*NodePromise
case
opt
,
ok
:=
<-
nodechan
:
if
!
ok
{
for
_
,
p
:=
range
promises
{
p
.
Fail
(
ErrNotFound
{}
)
p
.
Fail
(
ErrNotFound
)
}
return
}
...
...
merkledag.go
View file @
c582c36b
...
...
@@ -2,51 +2,12 @@ package format
import
(
"context"
"errors"
"fmt"
cid
"github.com/ipfs/go-cid"
)
// ErrNotFound is used to signal when a Node could not be found. The specific
// meaning will depend on the DAGService implementation, which may be trying
// to read nodes locally but also, trying to find them remotely.
//
// The Cid field can be filled in to provide additional context.
type
ErrNotFound
struct
{
Cid
cid
.
Cid
}
// Error implements the error interface and returns a human-readable
// message for this error.
func
(
e
ErrNotFound
)
Error
()
string
{
if
e
.
Cid
==
cid
.
Undef
{
return
"ipld: node not found"
}
return
fmt
.
Sprintf
(
"ipld: %s not found"
,
e
.
Cid
)
}
// Is allows to check whether any error is of this ErrNotFound type.
// Do not use this directly, but rather errors.Is(yourError, ErrNotFound).
func
(
e
ErrNotFound
)
Is
(
err
error
)
bool
{
switch
err
.
(
type
)
{
case
ErrNotFound
:
return
true
default
:
return
false
}
}
func
(
e
ErrNotFound
)
NotFound
()
bool
{
return
true
}
// IsNotFound returns if the given error is or wraps an ErrNotFound
// (equivalent to errors.Is(err, ErrNotFound{}))
func
IsNotFound
(
err
error
)
bool
{
return
errors
.
Is
(
err
,
ErrNotFound
{})
}
var
ErrNotFound
=
fmt
.
Errorf
(
"merkledag: not found"
)
// Either a node or an error.
type
NodeOption
struct
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment