retrieval: DagSpec.MatchPath -> ExportMerkleProof

This commit is contained in:
Łukasz Magiera 2021-11-29 21:14:00 +01:00
parent 58a084049d
commit 5b5e6b9e44
6 changed files with 13 additions and 13 deletions

View File

@ -215,9 +215,9 @@ type DagSpec struct {
// - the matched graph must have a single root // - the matched graph must have a single root
DataSelector *Selector DataSelector *Selector
// MatchPath matches the path traversal when DataSelector is a textselector. // ExportMerkleProof matches the path traversal when DataSelector is a textselector.
// Ignored when DataSelector is a json selector and in non-car retrieval // Ignored when DataSelector is a json selector and in non-car retrieval
MatchPath bool ExportMerkleProof bool
} }
type ExportRef struct { type ExportRef struct {

View File

@ -329,8 +329,8 @@ func (w *WrapperV1Full) clientRetrieve(ctx context.Context, order RetrievalOrder
if order.DatamodelPathSelector != nil { if order.DatamodelPathSelector != nil {
s := api.Selector(*order.DatamodelPathSelector) s := api.Selector(*order.DatamodelPathSelector)
eref.DAGs = append(eref.DAGs, api.DagSpec{ eref.DAGs = append(eref.DAGs, api.DagSpec{
DataSelector: &s, DataSelector: &s,
MatchPath: true, ExportMerkleProof: true,
}) })
} }

Binary file not shown.

View File

@ -32,7 +32,7 @@ var (
dmTextSelector = textselector.Expression(dmSelector) dmTextSelector = textselector.Expression(dmSelector)
dmExpectedResult = "NO ADL" dmExpectedResult = "NO ADL"
dmExpectedCarBlockCount = 4 dmExpectedCarBlockCount = 4
dmDagSpec = []api.DagSpec{{DataSelector: &dmSelector, MatchPath: true}} dmDagSpec = []api.DagSpec{{DataSelector: &dmSelector, ExportMerkleProof: true}}
) )
func TestDMLevelPartialRetrieval(t *testing.T) { func TestDMLevelPartialRetrieval(t *testing.T) {

View File

@ -55,7 +55,7 @@ func TestPartialRetrieval(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
// first test retrieval from local car, then do an actual deal // first test retrieval from local car, then do an actual deal
for _, matchPath := range []bool{false, true} { for _, exportMerkleProof := range []bool{false, true} {
for _, fullCycle := range []bool{false, true} { for _, fullCycle := range []bool{false, true} {
var retOrder api.RetrievalOrder var retOrder api.RetrievalOrder
@ -97,8 +97,8 @@ func TestPartialRetrieval(t *testing.T) {
retOrder.DataSelector = &textSelector retOrder.DataSelector = &textSelector
eref.DAGs = append(eref.DAGs, api.DagSpec{ eref.DAGs = append(eref.DAGs, api.DagSpec{
DataSelector: &textSelector, DataSelector: &textSelector,
MatchPath: matchPath, ExportMerkleProof: exportMerkleProof,
}) })
eref.Root = carRoot eref.Root = carRoot
@ -217,9 +217,9 @@ func testGenesisRetrieval(ctx context.Context, client *kit.TestFullNode, retOrde
if len(cr.Header.Roots) != 1 { if len(cr.Header.Roots) != 1 {
return fmt.Errorf("expected a single root in result car, got %d", len(cr.Header.Roots)) return fmt.Errorf("expected a single root in result car, got %d", len(cr.Header.Roots))
} else if eref.DAGs[0].MatchPath && cr.Header.Roots[0].String() != carRoot.String() { } else if eref.DAGs[0].ExportMerkleProof && cr.Header.Roots[0].String() != carRoot.String() {
return fmt.Errorf("expected root cid '%s', got '%s'", carRoot.String(), cr.Header.Roots[0].String()) return fmt.Errorf("expected root cid '%s', got '%s'", carRoot.String(), cr.Header.Roots[0].String())
} else if !eref.DAGs[0].MatchPath && cr.Header.Roots[0].String() != selectedCid.String() { } else if !eref.DAGs[0].ExportMerkleProof && cr.Header.Roots[0].String() != selectedCid.String() {
return fmt.Errorf("expected root cid '%s', got '%s'", selectedCid.String(), cr.Header.Roots[0].String()) return fmt.Errorf("expected root cid '%s', got '%s'", selectedCid.String(), cr.Header.Roots[0].String())
} }
@ -235,7 +235,7 @@ func testGenesisRetrieval(ctx context.Context, client *kit.TestFullNode, retOrde
blks = append(blks, b) blks = append(blks, b)
} }
if (eref.DAGs[0].MatchPath && len(blks) != 3) || (!eref.DAGs[0].MatchPath && len(blks) != 1) { if (eref.DAGs[0].ExportMerkleProof && len(blks) != 3) || (!eref.DAGs[0].ExportMerkleProof && len(blks) != 1) {
return fmt.Errorf("expected a car file with 3/1 blocks, got one with %d instead", len(blks)) return fmt.Errorf("expected a car file with 3/1 blocks, got one with %d instead", len(blks))
} }

View File

@ -1104,7 +1104,7 @@ func parseDagSpec(ctx context.Context, root cid.Cid, dsp []api.DagSpec, ds forma
// reify selector // reify selector
var err error var err error
out[i].selector, err = getDataSelector(spec.DataSelector, car && spec.MatchPath) out[i].selector, err = getDataSelector(spec.DataSelector, car && spec.ExportMerkleProof)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -1119,7 +1119,7 @@ func parseDagSpec(ctx context.Context, root cid.Cid, dsp []api.DagSpec, ds forma
return nil, xerrors.Errorf("failed to parse json-selector '%s': %w", *spec.DataSelector, err) return nil, xerrors.Errorf("failed to parse json-selector '%s': %w", *spec.DataSelector, err)
} }
} else { } else {
selspec, _ := textselector.SelectorSpecFromPath(textselector.Expression(*spec.DataSelector), car && spec.MatchPath, nil) //nolint:errcheck selspec, _ := textselector.SelectorSpecFromPath(textselector.Expression(*spec.DataSelector), car && spec.ExportMerkleProof, nil) //nolint:errcheck
rsn = selspec.Node() rsn = selspec.Node()
} }