From 4e88d0c9075e8f8169fa7dae8df938d9c3347bb5 Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Fri, 22 Sep 2017 14:48:42 -0700 Subject: [PATCH] tools/cmd/resolve: Keep iterating through ref-engines on empty Get If the ref-engine we're checking returns no results, keep going (even if it didn't return an error). Also document the "ref-engine knows it doesn't have that name" results in the Engine.Get interface. --- tools/cmd/resolve.go | 3 +++ tools/refengine/interface.go | 2 ++ 2 files changed, 5 insertions(+) diff --git a/tools/cmd/resolve.go b/tools/cmd/resolve.go index cc57e0b..8cc2f0a 100644 --- a/tools/cmd/resolve.go +++ b/tools/cmd/resolve.go @@ -83,6 +83,9 @@ func resolveCallback(ctx context.Context, allRoots map[string][]refengine.Merkle logrus.Warn(err) return nil } + if len(roots) == 0 { + return nil + } allRoots[name] = roots return resolved } diff --git a/tools/refengine/interface.go b/tools/refengine/interface.go index e61de51..767d99d 100644 --- a/tools/refengine/interface.go +++ b/tools/refengine/interface.go @@ -24,6 +24,8 @@ import ( type Engine interface { // Get returns an array of potential Merkle roots from the store. + // When no results are found, roots will be an empty array and err + // will be nil. Get(ctx context.Context, name string) (roots []MerkleRoot, err error) // Close releases resources held by the engine. Subsequent engine