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 }