diff --git a/cmd/cgr-loader/cgr-loader.go b/cmd/cgr-loader/cgr-loader.go index 348df518c..48f7380a2 100755 --- a/cmd/cgr-loader/cgr-loader.go +++ b/cmd/cgr-loader/cgr-loader.go @@ -274,17 +274,14 @@ func loadConfig() (ldrCfg *config.CGRConfig) { return } -func getLoader(cfg *config.CGRConfig) (loader engine.LoadReader, err error) { - +func getLoader(cfg *config.CGRConfig) (engine.LoadReader, error) { if gprefix := utils.MetaGoogleAPI + utils.ConcatenatedKeySep; strings.HasPrefix(*dataPath, gprefix) { // Default load from csv files to dataDb return engine.NewGoogleCSVStorage(cfg.LoaderCgrCfg().FieldSeparator, strings.TrimPrefix(*dataPath, gprefix)) } if !utils.IsURL(*dataPath) { - loader = engine.NewFileCSVStorage(cfg.LoaderCgrCfg().FieldSeparator, *dataPath) - return + return engine.NewFileCSVStorage(cfg.LoaderCgrCfg().FieldSeparator, *dataPath) } - loader = engine.NewURLCSVStorage(cfg.LoaderCgrCfg().FieldSeparator, *dataPath) - return + return engine.NewURLCSVStorage(cfg.LoaderCgrCfg().FieldSeparator, *dataPath), nil } func main() { diff --git a/engine/libtest.go b/engine/libtest.go index c0dafe11b..73f6870fc 100644 --- a/engine/libtest.go +++ b/engine/libtest.go @@ -172,7 +172,11 @@ func StopStartEngine(cfgPath string, waitEngine int) (*exec.Cmd, error) { func LoadTariffPlanFromFolder(tpPath, timezone string, dm *DataManager, disableReverse bool, cacheConns, schedConns []string) error { - loader, err := NewTpReader(dm.dataDB, NewFileCSVStorage(utils.CSVSep, tpPath), "", + csvStorage, err := NewFileCSVStorage(utils.CSVSep, tpPath) + if err != nil { + return utils.NewErrServerError(err) + } + loader, err := NewTpReader(dm.dataDB, csvStorage, "", timezone, cacheConns, schedConns, false) if err != nil { return utils.NewErrServerError(err) diff --git a/engine/storage_csv.go b/engine/storage_csv.go index 9175292b5..0ba516a79 100644 --- a/engine/storage_csv.go +++ b/engine/storage_csv.go @@ -86,10 +86,10 @@ func NewCSVStorage(sep rune, } // NewFileCSVStorage returns a csv storage that uses all files from the folder -func NewFileCSVStorage(sep rune, dataPath string) *CSVStorage { +func NewFileCSVStorage(sep rune, dataPath string) (*CSVStorage, error) { allFoldersPath, err := getAllFolders(dataPath) if err != nil { - log.Fatal(err) + return nil, fmt.Errorf("could not retrieve any folders from %q: %v", dataPath, err) } resourcesPaths := appendName(allFoldersPath, utils.ResourcesCsv) statsPaths := appendName(allFoldersPath, utils.StatsCsv) @@ -120,7 +120,7 @@ func NewFileCSVStorage(sep rune, dataPath string) *CSVStorage { rateProfilesFn, actionProfilesFn, accountsFn, - ) + ), nil } // NewStringCSVStorage creates a csv storage from strings diff --git a/engine/z_loader_it_test.go b/engine/z_loader_it_test.go index 034688419..b5223c82b 100644 --- a/engine/z_loader_it_test.go +++ b/engine/z_loader_it_test.go @@ -120,8 +120,11 @@ func testLoaderITRemoveLoad(t *testing.T) { t.Error("Failed validating data: ", err.Error()) } }*/ - loader, err = NewTpReader(dataDbCsv.DataDB(), NewFileCSVStorage(utils.CSVSep, - path.Join(*utils.DataDir, "tariffplans", *tpCsvScenario)), "", "", + csvStorage, err := NewFileCSVStorage(utils.CSVSep, path.Join(*utils.DataDir, "tariffplans", *tpCsvScenario)) + if err != nil { + t.Fatal(err) + } + loader, err = NewTpReader(dataDbCsv.DataDB(), csvStorage, "", "", []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches)}, nil, false) if err != nil { t.Error(err) @@ -169,8 +172,11 @@ func testLoaderITLoadFromCSV(t *testing.T) { t.Error("Failed validating data: ", err.Error()) } }*/ - loader, err = NewTpReader(dataDbCsv.DataDB(), NewFileCSVStorage(utils.CSVSep, - path.Join(*utils.DataDir, "tariffplans", *tpCsvScenario)), "", "", + csvStorage, err := NewFileCSVStorage(utils.CSVSep, path.Join(*utils.DataDir, "tariffplans", *tpCsvScenario)) + if err != nil { + t.Fatal(err) + } + loader, err = NewTpReader(dataDbCsv.DataDB(), csvStorage, "", "", []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches)}, nil, false) if err != nil { t.Error(err)