From 35d9de6b6e577a5d7826b9346cd64a3f7575d205 Mon Sep 17 00:00:00 2001 From: Ignacio Hagopian Date: Tue, 16 Jun 2020 17:32:03 -0300 Subject: [PATCH 1/2] consider response status and err Signed-off-by: Ignacio Hagopian --- cli/client.go | 3 +++ node/impl/client/client.go | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/cli/client.go b/cli/client.go index c692fbe4b..1b1459707 100644 --- a/cli/client.go +++ b/cli/client.go @@ -461,6 +461,9 @@ var clientRetrieveCmd = &cli.Command{ return err } } + if offer.Err != "" { + return fmt.Errorf("The received offer errored: %s", offer.Err) + } ref := &lapi.FileRef{ Path: cctx.Args().Get(1), diff --git a/node/impl/client/client.go b/node/impl/client/client.go index c2073872f..23994fbe5 100644 --- a/node/impl/client/client.go +++ b/node/impl/client/client.go @@ -224,6 +224,15 @@ func (a *API) makeRetrievalQuery(ctx context.Context, rp retrievalmarket.Retriev if err != nil { return api.QueryOffer{Err: err.Error(), Miner: rp.Address, MinerPeerID: rp.ID} } + var errStr string + switch queryResponse.Status { + case retrievalmarket.QueryResponseAvailable: + errStr = "" + case retrievalmarket.QueryResponseUnavailable: + errStr = "retrieval query offer was unavailable" + case retrievalmarket.QueryResponseError: + errStr = "retrieval query offer errored" + } return api.QueryOffer{ Root: payload, @@ -233,6 +242,7 @@ func (a *API) makeRetrievalQuery(ctx context.Context, rp retrievalmarket.Retriev PaymentIntervalIncrease: queryResponse.MaxPaymentIntervalIncrease, Miner: queryResponse.PaymentAddress, // TODO: check MinerPeerID: rp.ID, + Err: errStr, } } From ec9a334f933f2e1066d16ebfc8928411e531f747 Mon Sep 17 00:00:00 2001 From: Ignacio Hagopian Date: Tue, 16 Jun 2020 17:52:47 -0300 Subject: [PATCH 2/2] append message on unavailable and error status Signed-off-by: Ignacio Hagopian --- node/impl/client/client.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/node/impl/client/client.go b/node/impl/client/client.go index 23994fbe5..2779343c4 100644 --- a/node/impl/client/client.go +++ b/node/impl/client/client.go @@ -3,6 +3,7 @@ package client import ( "context" "errors" + "fmt" "github.com/filecoin-project/go-fil-markets/pieceio" basicnode "github.com/ipld/go-ipld-prime/node/basic" @@ -229,9 +230,9 @@ func (a *API) makeRetrievalQuery(ctx context.Context, rp retrievalmarket.Retriev case retrievalmarket.QueryResponseAvailable: errStr = "" case retrievalmarket.QueryResponseUnavailable: - errStr = "retrieval query offer was unavailable" + errStr = fmt.Sprintf("retrieval query offer was unavailable: %s", queryResponse.Message) case retrievalmarket.QueryResponseError: - errStr = "retrieval query offer errored" + errStr = fmt.Sprintf("retrieval query offer errored: %s", queryResponse.Message) } return api.QueryOffer{