diff --git a/engine/libtest.go b/engine/libtest.go index 43170b693..ee2c2b0a5 100644 --- a/engine/libtest.go +++ b/engine/libtest.go @@ -45,7 +45,7 @@ import ( ) func InitDataDb(cfg *config.CGRConfig) error { - d, err := NewDataDBConn(cfg.DataDbCfg().Type, + dataDB, err := NewDataDBConn(cfg.DataDbCfg().Type, cfg.DataDbCfg().Host, cfg.DataDbCfg().Port, cfg.DataDbCfg().Name, cfg.DataDbCfg().User, cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding, @@ -53,7 +53,8 @@ func InitDataDb(cfg *config.CGRConfig) error { if err != nil { return err } - dm := NewDataManager(d, cfg.CacheCfg(), connMgr) + defer dataDB.Close() + dm := NewDataManager(dataDB, cfg.CacheCfg(), connMgr) if err := dm.DataDB().Flush(""); err != nil { return err @@ -65,31 +66,8 @@ func InitDataDb(cfg *config.CGRConfig) error { return nil } -// Initiates DataDB, flushes it, and closes the connection after -func PreInitDataDb(cfg *config.CGRConfig) error { - d, err := NewDataDBConn(cfg.DataDbCfg().Type, - cfg.DataDbCfg().Host, cfg.DataDbCfg().Port, - cfg.DataDbCfg().Name, cfg.DataDbCfg().User, - cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding, - cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items) - if err != nil { - return err - } - dm := NewDataManager(d, cfg.CacheCfg(), connMgr) - - if err := dm.DataDB().Flush(""); err != nil { - return err - } - // Write version before starting - if err := OverwriteDBVersions(dm.dataDB); err != nil { - return err - } - d.Close() - return nil -} - func InitStorDb(cfg *config.CGRConfig) error { - storDb, err := NewStorDBConn(cfg.StorDbCfg().Type, + storDB, err := NewStorDBConn(cfg.StorDbCfg().Type, cfg.StorDbCfg().Host, cfg.StorDbCfg().Port, cfg.StorDbCfg().Name, cfg.StorDbCfg().User, cfg.StorDbCfg().Password, cfg.GeneralCfg().DBDataEncoding, @@ -98,46 +76,21 @@ func InitStorDb(cfg *config.CGRConfig) error { if err != nil { return err } + defer storDB.Close() dbPath := strings.Trim(cfg.StorDbCfg().Type, "*") - if err := storDb.Flush(path.Join(cfg.DataFolderPath, "storage", + if err := storDB.Flush(path.Join(cfg.DataFolderPath, "storage", dbPath)); err != nil { return err } if slices.Contains([]string{utils.MetaMongo, utils.MetaMySQL, utils.MetaPostgres}, cfg.StorDbCfg().Type) { - if err := SetDBVersions(storDb); err != nil { + if err := SetDBVersions(storDB); err != nil { return err } } return nil } -// Initiates StorDB, flushes it, and closed the connection after -func PreInitStorDb(cfg *config.CGRConfig) error { - storDb, err := NewStorDBConn(cfg.StorDbCfg().Type, - cfg.StorDbCfg().Host, cfg.StorDbCfg().Port, - cfg.StorDbCfg().Name, cfg.StorDbCfg().User, - cfg.StorDbCfg().Password, cfg.GeneralCfg().DBDataEncoding, - cfg.StorDbCfg().StringIndexedFields, cfg.StorDbCfg().PrefixIndexedFields, - cfg.StorDbCfg().Opts, cfg.StorDbCfg().Items) - if err != nil { - return err - } - dbPath := strings.Trim(cfg.StorDbCfg().Type, "*") - if err := storDb.Flush(path.Join(cfg.DataFolderPath, "storage", - dbPath)); err != nil { - return err - } - if slices.Contains([]string{utils.MetaMongo, utils.MetaMySQL, utils.MetaPostgres}, - cfg.StorDbCfg().Type) { - if err := SetDBVersions(storDb); err != nil { - return err - } - } - storDb.Close() - return nil -} - // Return reference towards the command started so we can stop it if necessary func StartEngine(cfgPath string, waitEngine int) (*exec.Cmd, error) { enginePath, err := exec.LookPath("cgr-engine") @@ -395,7 +348,6 @@ type TestEngine struct { TpPath string // path to the tariff plans TpFiles map[string]string // CSV data for tariff plans: filename -> content GracefulShutdown bool // shutdown the engine gracefuly, otherwise use process.Kill - PreInitDB bool // close db connections after initiating and flushing db // PreStartHook executes custom logic relying on CGRConfig // before starting cgr-engine. @@ -408,7 +360,7 @@ type TestEngine struct { func (ng TestEngine) Run(t testing.TB, extraFlags ...string) (*birpc.Client, *config.CGRConfig) { t.Helper() cfg := parseCfg(t, ng.ConfigPath, ng.ConfigJSON, ng.DBCfg) - FlushDBs(t, cfg, !ng.PreserveDataDB, !ng.PreserveStorDB, ng.PreInitDB) + FlushDBs(t, cfg, !ng.PreserveDataDB, !ng.PreserveStorDB) if ng.PreStartHook != nil { ng.PreStartHook(t, cfg) } @@ -582,28 +534,16 @@ func LoadCSVs(t testing.TB, client *birpc.Client, tpPath string, csvFiles map[st } // flushDBs resets the databases specified in the configuration if the corresponding flags are true. -func FlushDBs(t testing.TB, cfg *config.CGRConfig, flushDataDB, flushStorDB bool, preInitDB bool) { +func FlushDBs(t testing.TB, cfg *config.CGRConfig, flushDataDB, flushStorDB bool) { t.Helper() if flushDataDB { - if preInitDB { - if err := PreInitDataDb(cfg); err != nil { - t.Fatalf("failed to flush %s dataDB: %v", cfg.DataDbCfg().Type, err) - } - } else { - if err := InitDataDb(cfg); err != nil { - t.Fatalf("failed to flush %s dataDB: %v", cfg.DataDbCfg().Type, err) - } + if err := InitDataDb(cfg); err != nil { + t.Fatalf("failed to flush %s dataDB: %v", cfg.DataDbCfg().Type, err) } } if flushStorDB { - if preInitDB { - if err := PreInitStorDb(cfg); err != nil { - t.Fatalf("failed to flush %s storDB: %v", cfg.StorDbCfg().Type, err) - } - } else { - if err := InitStorDb(cfg); err != nil { - t.Fatalf("failed to flush %s storDB: %v", cfg.StorDbCfg().Type, err) - } + if err := InitStorDb(cfg); err != nil { + t.Fatalf("failed to flush %s storDB: %v", cfg.StorDbCfg().Type, err) } } } diff --git a/general_tests/fs_session_offline_internal_it_test.go b/general_tests/fs_session_offline_internal_it_test.go index 6b9439c07..d11f9bfd6 100644 --- a/general_tests/fs_session_offline_internal_it_test.go +++ b/general_tests/fs_session_offline_internal_it_test.go @@ -64,12 +64,7 @@ func TestFsSessionOfflineInternal(t *testing.T) { tutorialCallsCfg.DataFolderPath = *utils.DataDir // Share DataFolderPath through config towards StoreDb for Flush() config.SetCgrConfig(tutorialCallsCfg) - if err := engine.PreInitDataDb(tutorialCallsCfg); err != nil { - t.Fatal(err) - } - if err := engine.PreInitStorDb(tutorialCallsCfg); err != nil { - t.Fatal(err) - } + engine.FlushDBs(t, tutorialCallsCfg, true, true) engine.KillProcName(utils.Freeswitch, 5000) if err := engine.CallScript(path.Join(*fsConfig, "freeswitch", "etc", "init.d", "freeswitch"), "start", 3000); err != nil { t.Fatal(err) diff --git a/general_tests/offline_internal_it_test.go b/general_tests/offline_internal_it_test.go index 3919dc327..c0da2be90 100644 --- a/general_tests/offline_internal_it_test.go +++ b/general_tests/offline_internal_it_test.go @@ -65,7 +65,6 @@ func TestOfflineInternal(t *testing.T) { // run with sudo t.Run("OfflineInternal"+strconv.Itoa(i), func(t *testing.T) { ng := engine.TestEngine{ ConfigPath: pth, - PreInitDB: true, GracefulShutdown: true, } client, cfg := ng.Run(t) diff --git a/general_tests/ranking_schedule_it_test.go b/general_tests/ranking_schedule_it_test.go index 0479d2bcc..1d7cd032d 100644 --- a/general_tests/ranking_schedule_it_test.go +++ b/general_tests/ranking_schedule_it_test.go @@ -52,7 +52,7 @@ func TestRankingSchedule(t *testing.T) { PreserveStorDB: true, PreserveDataDB: true, PreStartHook: func(t testing.TB, c *config.CGRConfig) { - engine.FlushDBs(t, c, true, true, false) + engine.FlushDBs(t, c, true, true) engine.LoadCSVsWithCGRLoader(t, c.ConfigPath, path.Join(*utils.DataDir, "tariffplans", "tutrankings"), nil, nil, "-caches_address=") }, } diff --git a/sessions/sessions_bkup_it_test.go b/sessions/sessions_bkup_it_test.go index 96daf458f..5a626d19d 100644 --- a/sessions/sessions_bkup_it_test.go +++ b/sessions/sessions_bkup_it_test.go @@ -118,21 +118,7 @@ func testSessionSBkupInitCfg(t *testing.T) { // Remove data in both rating and accounting db func testSessionSBkupResetDB(t *testing.T) { - if *utils.DBType == utils.MetaInternal { - if err := engine.PreInitDataDb(sBkupCfg); err != nil { - t.Fatal(err) - } - if err := engine.PreInitStorDb(sBkupCfg); err != nil { - t.Fatal(err) - } - } else { - if err := engine.InitDataDb(sBkupCfg); err != nil { - t.Fatal(err) - } - if err := engine.InitStorDb(sBkupCfg); err != nil { - t.Fatal(err) - } - } + engine.FlushDBs(t, sBkupCfg, true, true) } // Start CGR Engine