From de794705a93acd4d1be3ba49e0fc7e85ca0a04c9 Mon Sep 17 00:00:00 2001 From: simlecode Date: Fri, 29 Oct 2021 18:17:56 +0800 Subject: [PATCH] fix builder options --- models/module.go | 44 +++++++++++++++++++-------------- retrievaladapter/ask_handler.go | 5 ++-- 2 files changed, 28 insertions(+), 21 deletions(-) diff --git a/models/module.go b/models/module.go index 4529e4d4..64f4b4fe 100644 --- a/models/module.go +++ b/models/module.go @@ -135,33 +135,39 @@ func NewClientTransferDS(ds repo.MetadataDS) repo.ClientTransferDS { return namespace.Wrap(ds, datastore.NewKey(clientTransfer)) } -var DBOptions = func(server bool, mysql2 *config.Mysql) builder.Option { +var DBOptions = func(server bool, mysqlCfg *config.Mysql) builder.Option { if server { - return builder.Options( + commonOpts := builder.Options( builder.Override(new(repo.MetadataDS), NewMetadataDS), builder.Override(new(StagingDS), NewStagingDS), builder.Override(new(StagingBlockstore), NewStagingBlockStore), builder.Override(new(repo.PieceMetaDs), NewPieceMetaDs), - builder.Override(new(repo.PieceInfoDS), NewPieceInfoDs), - builder.Override(new(repo.CIDInfoDS), NewCidInfoDs), - builder.Override(new(repo.RetrievalProviderDS), NewRetrievalProviderDS), - builder.Override(new(repo.RetrievalAskDS), NewRetrievalAskDS), builder.Override(new(repo.DagTransferDS), NewDagTransferDS), - builder.Override(new(repo.ProviderDealDS), NewProviderDealDS), - builder.Override(new(repo.StorageAskDS), NewStorageAskDS), builder.Override(new(StagingBlockstore), NewStagingBlockStore), - builder.Override(new(repo.PayChanDS), NewPayChanDS), - builder.Override(new(repo.FundMgrDS), NewFundMgrDS), - builder.Override(new(repo.Repo), badger_models.NewBadgerRepo), - // if there is a mysql connection string exist, - // use mysql storage_ask_ds, otherwise use a badger - builder.ApplyIf(func(s *builder.Settings) bool { return len(mysql2.ConnectionString) > 0 }, - builder.Override(new(repo.Repo), func(cfg *config.Mysql) (repo.Repo, error) { - return mysql.InitMysql(cfg) - })), - builder.Override(new(repo.IStorageAskRepo), func(repo repo.Repo) repo.IStorageAskRepo { return repo.StorageAskRepo() }), - builder.Override(new(repo.IRetrievalAskRepo), func(repo repo.Repo) repo.IRetrievalAskRepo { return repo.RetrievalAskRepo() }), ) + var opts builder.Option + if len(mysqlCfg.ConnectionString) > 0 { + opts = builder.Override(new(repo.Repo), func() (repo.Repo, error) { + return mysql.InitMysql(mysqlCfg) + }) + } else { + opts = builder.Options( + builder.Override(new(repo.PieceInfoDS), NewPieceInfoDs), + builder.Override(new(repo.CIDInfoDS), NewCidInfoDs), + builder.Override(new(repo.RetrievalProviderDS), NewRetrievalProviderDS), + builder.Override(new(repo.RetrievalAskDS), NewRetrievalAskDS), + builder.Override(new(repo.ProviderDealDS), NewProviderDealDS), + builder.Override(new(repo.StorageAskDS), NewStorageAskDS), + builder.Override(new(repo.PayChanDS), NewPayChanDS), + builder.Override(new(repo.FundMgrDS), NewFundMgrDS), + builder.Override(new(repo.Repo), func(fundDS repo.FundMgrDS, dealDS repo.ProviderDealDS, + paychDS repo.PayChanDS, askDS repo.StorageAskDS, retrAskDs repo.RetrievalAskDS, + pieceDs repo.PieceInfoDS, cidInfoDs repo.CIDInfoDS, retrievalDs repo.RetrievalProviderDS) (repo.Repo, error) { + return badger_models.NewBadgerRepo(fundDS, dealDS, paychDS, askDS, retrAskDs, pieceDs, cidInfoDs, retrievalDs) + }), + ) + } + return builder.Options(commonOpts, opts) } else { return builder.Options( builder.Override(new(repo.MetadataDS), NewMetadataDS), diff --git a/retrievaladapter/ask_handler.go b/retrievaladapter/ask_handler.go index 4d0e0306..ac4513b2 100644 --- a/retrievaladapter/ask_handler.go +++ b/retrievaladapter/ask_handler.go @@ -2,6 +2,7 @@ package retrievaladapter import ( "context" + "github.com/filecoin-project/venus-market/models/repo" "github.com/filecoin-project/go-address" @@ -30,8 +31,8 @@ type AskHandler struct { retrievalPricingFunc retrievalimpl.RetrievalPricingFunc } -func NewAskHandler(askStore repo.IRetrievalAskRepo, node retrievalmarket.RetrievalProviderNode, retrievalPricingFunc retrievalimpl.RetrievalPricingFunc) *AskHandler { - return &AskHandler{askStore: askStore, node: node, retrievalPricingFunc: retrievalPricingFunc} +func NewAskHandler(r repo.Repo, node retrievalmarket.RetrievalProviderNode, retrievalPricingFunc retrievalimpl.RetrievalPricingFunc) *AskHandler { + return &AskHandler{askStore: r.RetrievalAskRepo(), node: node, retrievalPricingFunc: retrievalPricingFunc} } // GetAsk returns the current deal parameters this provider accepts