From 551829d1c4738caa4ded62df983eb93d48c5f0d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Sun, 26 Nov 2023 10:27:49 +0000 Subject: [PATCH] vochain/indexer: move DataDir to Options Simplifies the function calls a bit. --- service/indexer.go | 7 ++++--- test/testcommon/vochain.go | 2 +- vochain/indexer/indexer.go | 12 +++++++----- vochain/indexer/indexer_test.go | 2 +- vocone/vocone.go | 6 +++--- 5 files changed, 16 insertions(+), 13 deletions(-) diff --git a/service/indexer.go b/service/indexer.go index 4eb77c6da..af53dead4 100644 --- a/service/indexer.go +++ b/service/indexer.go @@ -11,9 +11,10 @@ import ( func (vs *VocdoniService) VochainIndexer() error { log.Info("creating vochain indexer service") var err error - vs.Indexer, err = indexer.New(filepath.Join(vs.Config.DataDir, "indexer"), vs.App, - indexer.Options{IgnoreLiveResults: vs.Config.Indexer.IgnoreLiveResults}, - ) + vs.Indexer, err = indexer.New(vs.App, indexer.Options{ + DataDir: filepath.Join(vs.Config.DataDir, "indexer"), + IgnoreLiveResults: vs.Config.Indexer.IgnoreLiveResults, + }) if err != nil { return err } diff --git a/test/testcommon/vochain.go b/test/testcommon/vochain.go index d73eb349f..b071a8c81 100644 --- a/test/testcommon/vochain.go +++ b/test/testcommon/vochain.go @@ -105,7 +105,7 @@ func NewVochainStateWithProcess(tb testing.TB) *state.State { func NewMockIndexer(tb testing.TB, vnode *vochain.BaseApplication) *indexer.Indexer { tb.Log("starting vochain indexer") - sc, err := indexer.New(tb.TempDir(), vnode, indexer.Options{}) + sc, err := indexer.New(vnode, indexer.Options{DataDir: tb.TempDir()}) if err != nil { tb.Fatal(err) } diff --git a/vochain/indexer/indexer.go b/vochain/indexer/indexer.go index 687937d99..59a795a92 100644 --- a/vochain/indexer/indexer.go +++ b/vochain/indexer/indexer.go @@ -95,12 +95,14 @@ type Indexer struct { } type Options struct { + DataDir string + IgnoreLiveResults bool } // New returns an instance of the Indexer -// using the local storage database in dataDir and integrated into the state vochain instance -func New(dataDir string, app *vochain.BaseApplication, opts Options) (*Indexer, error) { +// using the local storage database in DataDir and integrated into the state vochain instance. +func New(app *vochain.BaseApplication, opts Options) (*Indexer, error) { idx := &Indexer{ App: app, ignoreLiveResults: opts.IgnoreLiveResults, @@ -113,14 +115,14 @@ func New(dataDir string, app *vochain.BaseApplication, opts Options) (*Indexer, blockUpdateProcs: make(map[string]bool), blockUpdateProcVoteCounts: make(map[string]bool), } - log.Infow("indexer initialization", "dataDir", dataDir, "liveResults", !opts.IgnoreLiveResults) + log.Infow("indexer initialization", "dataDir", opts.DataDir, "liveResults", !opts.IgnoreLiveResults) // The DB itself is opened in "rwc" mode, so it is created if it does not yet exist. // Create the parent directory as well if it doesn't exist. - if err := os.MkdirAll(dataDir, os.ModePerm); err != nil { + if err := os.MkdirAll(opts.DataDir, os.ModePerm); err != nil { return nil, err } - dbPath := filepath.Join(dataDir, "db.sqlite") + dbPath := filepath.Join(opts.DataDir, "db.sqlite") var err error // sqlite doesn't support multiple concurrent writers. diff --git a/vochain/indexer/indexer_test.go b/vochain/indexer/indexer_test.go index 2a7ca8e7a..ba283dee8 100644 --- a/vochain/indexer/indexer_test.go +++ b/vochain/indexer/indexer_test.go @@ -31,7 +31,7 @@ func init() { } func newTestIndexer(tb testing.TB, app *vochain.BaseApplication) *Indexer { - idx, err := New(tb.TempDir(), app, Options{}) + idx, err := New(app, Options{DataDir: tb.TempDir()}) if err != nil { tb.Fatal(err) } diff --git a/vocone/vocone.go b/vocone/vocone.go index 33c41bf59..ffd7a5235 100644 --- a/vocone/vocone.go +++ b/vocone/vocone.go @@ -88,9 +88,9 @@ func NewVocone(dataDir string, keymanager *ethereum.SignKeys, disableIPFS bool, vc.App.State.SetHeight(uint32(vc.height.Load())) // Create indexer - if vc.Indexer, err = indexer.New(filepath.Join(dataDir, "indexer"), vc.App, - indexer.Options{}, - ); err != nil { + if vc.Indexer, err = indexer.New(vc.App, indexer.Options{ + DataDir: filepath.Join(dataDir, "indexer"), + }); err != nil { return nil, err }