diff --git a/apier/v1/apier.go b/apier/v1/apier.go
index 9fae2316b..a300d0824 100644
--- a/apier/v1/apier.go
+++ b/apier/v1/apier.go
@@ -332,7 +332,7 @@ func (apierSv1 *APIerSv1) LoadRatingProfile(attrs *utils.TPRatingProfile, reply
if err := apierSv1.DataManager.SetLoadIDs(map[string]int64{utils.CacheRatingProfiles: time.Now().UnixNano()}); err != nil {
return utils.APIErrorHandler(err)
}
- if err = dbReader.ReloadCache(config.CgrConfig().GeneralCfg().DefaultCaching, true, make(map[string]interface{})); err != nil {
+ if err = dbReader.ReloadCache(config.CgrConfig().GeneralCfg().DefaultCaching, true, make(map[string]interface{}), attrs.Tenant); err != nil {
return utils.NewErrServerError(err)
}
*reply = utils.OK
@@ -406,7 +406,7 @@ func (apierSv1 *APIerSv1) LoadTariffPlanFromStorDb(attrs *AttrLoadTpFromStorDb,
}
// reload cache
utils.Logger.Info("APIerSv1.LoadTariffPlanFromStorDb, reloading cache.")
- if err := dbReader.ReloadCache(caching, true, attrs.APIOpts); err != nil {
+ if err := dbReader.ReloadCache(caching, true, attrs.APIOpts, apierSv1.Config.GeneralCfg().DefaultTenant); err != nil {
return utils.NewErrServerError(err)
}
if len(apierSv1.Config.ApierCfg().SchedulerConns) != 0 {
@@ -1088,7 +1088,7 @@ func (apierSv1 *APIerSv1) LoadTariffPlanFromFolder(attrs *utils.AttrLoadTpFromFo
}
// reload cache
utils.Logger.Info("APIerSv1.LoadTariffPlanFromFolder, reloading cache.")
- if err := loader.ReloadCache(caching, true, attrs.APIOpts); err != nil {
+ if err := loader.ReloadCache(caching, true, attrs.APIOpts, apierSv1.Config.GeneralCfg().DefaultTenant); err != nil {
return utils.NewErrServerError(err)
}
if len(apierSv1.Config.ApierCfg().SchedulerConns) != 0 {
@@ -1154,7 +1154,7 @@ func (apierSv1 *APIerSv1) RemoveTPFromFolder(attrs *utils.AttrLoadTpFromFolder,
}
// reload cache
utils.Logger.Info("APIerSv1.RemoveTPFromFolder, reloading cache.")
- if err := loader.ReloadCache(caching, true, attrs.APIOpts); err != nil {
+ if err := loader.ReloadCache(caching, true, attrs.APIOpts, apierSv1.Config.GeneralCfg().DefaultTenant); err != nil {
return utils.NewErrServerError(err)
}
if len(apierSv1.Config.ApierCfg().SchedulerConns) != 0 {
@@ -1206,7 +1206,7 @@ func (apierSv1 *APIerSv1) RemoveTPFromStorDB(attrs *AttrLoadTpFromStorDb, reply
}
// reload cache
utils.Logger.Info("APIerSv1.RemoveTPFromStorDB, reloading cache.")
- if err := dbReader.ReloadCache(caching, true, attrs.APIOpts); err != nil {
+ if err := dbReader.ReloadCache(caching, true, attrs.APIOpts, apierSv1.Config.GeneralCfg().DefaultTenant); err != nil {
return utils.NewErrServerError(err)
}
if len(apierSv1.Config.ApierCfg().SchedulerConns) != 0 {
diff --git a/apier/v2/apier.go b/apier/v2/apier.go
index 3e3abfc9a..e0f355095 100644
--- a/apier/v2/apier.go
+++ b/apier/v2/apier.go
@@ -67,7 +67,7 @@ func (apiv2 *APIerSv2) LoadRatingProfile(attrs *AttrLoadRatingProfile, reply *st
if err := apiv2.DataManager.SetLoadIDs(map[string]int64{utils.CacheRatingProfiles: time.Now().UnixNano()}); err != nil {
return utils.APIErrorHandler(err)
}
- if err = dbReader.ReloadCache(config.CgrConfig().GeneralCfg().DefaultCaching, true, make(map[string]interface{})); err != nil {
+ if err = dbReader.ReloadCache(config.CgrConfig().GeneralCfg().DefaultCaching, true, make(map[string]interface{}), apiv2.Config.GeneralCfg().DefaultTenant); err != nil {
return utils.NewErrServerError(err)
}
*reply = utils.OK
@@ -149,7 +149,7 @@ func (apiv2 *APIerSv2) LoadTariffPlanFromFolder(attrs *utils.AttrLoadTpFromFolde
if attrs.Caching != nil {
caching = *attrs.Caching
}
- if err := loader.ReloadCache(caching, true, attrs.APIOpts); err != nil {
+ if err := loader.ReloadCache(caching, true, attrs.APIOpts, apiv2.Config.GeneralCfg().DefaultTimezone); err != nil {
return utils.NewErrServerError(err)
}
if len(apiv2.Config.ApierCfg().SchedulerConns) != 0 {
diff --git a/cmd/cgr-loader/cgr-loader.go b/cmd/cgr-loader/cgr-loader.go
index 53597d3cb..451f6e11b 100644
--- a/cmd/cgr-loader/cgr-loader.go
+++ b/cmd/cgr-loader/cgr-loader.go
@@ -104,6 +104,7 @@ var (
remove = cgrLoaderFlags.Bool(utils.RemoveCgr, false, "Will remove instead of adding data from DB")
apiKey = cgrLoaderFlags.String(utils.APIKeyCfg, utils.EmptyString, "Api Key used to comosed ArgDispatcher")
routeID = cgrLoaderFlags.String(utils.RouteIDCfg, utils.EmptyString, "RouteID used to comosed ArgDispatcher")
+ tenant = cgrLoaderFlags.String(utils.TenantCfg, dfltCfg.GeneralCfg().DefaultTenant, "")
fromStorDB = cgrLoaderFlags.Bool(utils.FromStorDBCgr, false, "Load the tariff plan from storDb to dataDb")
toStorDB = cgrLoaderFlags.Bool(utils.ToStorDBcgr, false, "Import the tariff plan from files to storDb")
@@ -389,7 +390,7 @@ func main() {
if err = tpReader.ReloadCache(ldrCfg.GeneralCfg().DefaultCaching, *verbose, map[string]interface{}{
utils.OptsAPIKey: *apiKey,
utils.OptsRouteID: *routeID,
- }); err != nil {
+ }, *tenant); err != nil {
log.Fatal("Could not reload cache: ", err)
}
diff --git a/cmd/cgr-loader/cgr-loader_it_test.go b/cmd/cgr-loader/cgr-loader_it_test.go
index f393678a5..5c6c4c62a 100644
--- a/cmd/cgr-loader/cgr-loader_it_test.go
+++ b/cmd/cgr-loader/cgr-loader_it_test.go
@@ -211,6 +211,8 @@ var (
testLoadItResetDataDB,
testLoadItResetStorDb,
testLoadItStartLoader,
+ // testLoadItStartLoaderFlushStorDB,
+ testLoadItStartLoaderWithTenant,
testLoadItConnectToDB,
testLoadItCheckAttributes,
testLoadItStartLoaderRemove,
@@ -362,6 +364,17 @@ func testLoadItStartLoaderFromStorDB(t *testing.T) {
}
}
+func testLoadItStartLoaderWithTenant(t *testing.T) {
+ cmd := exec.Command("cgr-loader", "-config_path="+ldrItCfgPath, "-path="+path.Join(*dataDir, "tariffplans", "tutorial"), "-caches_address=", "-scheduler_address=", `-tenant="tenant.com"`)
+ output := bytes.NewBuffer(nil)
+ cmd.Stdout = output
+ if err := cmd.Run(); err != nil {
+ t.Log(cmd.Args)
+ t.Log(output.String())
+ t.Fatal(err)
+ }
+}
+
func testLoadItStartLoaderFlushStorDB(t *testing.T) {
cmd := exec.Command("cgr-loader", "-config_path="+ldrItCfgPath, "-path="+path.Join(*dataDir, "tariffplans", "dispatchers"), "-caches_address=", "-scheduler_address=", "-to_stordb", "-flush_stordb", "-tpid=TPID")
output := bytes.NewBuffer(nil)
diff --git a/cmd/cgr-loader/flags_test.go b/cmd/cgr-loader/flags_test.go
index b0b69df67..f116df997 100644
--- a/cmd/cgr-loader/flags_test.go
+++ b/cmd/cgr-loader/flags_test.go
@@ -243,6 +243,12 @@ func TestCGRLoaderFlags(t *testing.T) {
t.Errorf("Expected route_idss, received %+v", *routeID)
}
+ if err := cgrLoaderFlags.Parse([]string{"-tenant", "tenant.com"}); err != nil {
+ t.Error(err)
+ } else if *tenant != "tenant.com" {
+ t.Errorf("Expected tenant.com, received %+v", *tenant)
+ }
+
if err := cgrLoaderFlags.Parse([]string{"-from_stordb", "true"}); err != nil {
t.Error(err)
} else if *fromStorDB != true {
diff --git a/config/config_test.go b/config/config_test.go
index 2453bdf96..d1860aeae 100644
--- a/config/config_test.go
+++ b/config/config_test.go
@@ -2236,10 +2236,7 @@ func TestFilterSConfig(t *testing.T) {
}
func TestLoaderConfig(t *testing.T) {
- ten, err := NewRSRParsers("", utils.InfieldSep)
- if err != nil {
- t.Error(err)
- }
+ ten := ""
expected := LoaderSCfgs{
{
Enabled: false,
diff --git a/config/loaderscfg.go b/config/loaderscfg.go
index 8e50da459..777dafc98 100644
--- a/config/loaderscfg.go
+++ b/config/loaderscfg.go
@@ -68,7 +68,7 @@ func (ldrs LoaderSCfgs) Clone() (cln LoaderSCfgs) {
type LoaderSCfg struct {
ID string
Enabled bool
- Tenant RSRParsers
+ Tenant string
DryRun bool
RunDelay time.Duration
LockFileName string
@@ -124,9 +124,7 @@ func (l *LoaderSCfg) loadFromJSONCfg(jsnCfg *LoaderJsonCfg, msgTemplates map[str
l.Enabled = *jsnCfg.Enabled
}
if jsnCfg.Tenant != nil {
- if l.Tenant, err = NewRSRParsers(*jsnCfg.Tenant, separator); err != nil {
- return err
- }
+ l.Tenant = *jsnCfg.Tenant
}
if jsnCfg.Dry_run != nil {
l.DryRun = *jsnCfg.Dry_run
@@ -231,7 +229,7 @@ func (lData *LoaderDataType) AsMapInterface(separator string) (initialMP map[str
func (l *LoaderSCfg) AsMapInterface(separator string) (initialMP map[string]interface{}) {
initialMP = map[string]interface{}{
utils.IDCfg: l.ID,
- utils.TenantCfg: l.Tenant.GetRule(separator),
+ utils.TenantCfg: l.Tenant,
utils.EnabledCfg: l.Enabled,
utils.DryRunCfg: l.DryRun,
utils.LockFileNameCfg: l.LockFileName,
diff --git a/config/loaderscfg_test.go b/config/loaderscfg_test.go
index 00a74c691..044e8cfad 100644
--- a/config/loaderscfg_test.go
+++ b/config/loaderscfg_test.go
@@ -54,10 +54,8 @@ func TestLoaderSCfgloadFromJsonCfgCase1(t *testing.T) {
if err != nil {
t.Error(err)
}
- ten, err := NewRSRParsers("cgrates.org", utils.InfieldSep)
- if err != nil {
- t.Error(err)
- }
+ ten := "cgrates.org"
+
expected := LoaderSCfgs{
{
Enabled: true,
@@ -100,18 +98,18 @@ func TestLoaderSCfgloadFromJsonCfgCase1(t *testing.T) {
}
}
-func TestLoaderSCfgloadFromJsonCfgCase2(t *testing.T) {
- cfgJSON := &LoaderJsonCfg{
- Tenant: utils.StringPointer("a{*"),
- }
- expected := "invalid converter terminator in rule: "
- jsonCfg := NewDefaultCGRConfig()
- if err = jsonCfg.loaderCfg[0].loadFromJSONCfg(nil, jsonCfg.templates, jsonCfg.generalCfg.RSRSep); err != nil {
- t.Error(err)
- } else if err = jsonCfg.loaderCfg[0].loadFromJSONCfg(cfgJSON, jsonCfg.templates, jsonCfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
- t.Errorf("Expected %+v, received %+v", expected, err)
- }
-}
+// func TestLoaderSCfgloadFromJsonCfgCase2(t *testing.T) {
+// cfgJSON := &LoaderJsonCfg{
+// Tenant: utils.StringPointer("a{*"),
+// }
+// expected := "invalid converter terminator in rule: "
+// jsonCfg := NewDefaultCGRConfig()
+// if err = jsonCfg.loaderCfg[0].loadFromJSONCfg(nil, jsonCfg.templates, jsonCfg.generalCfg.RSRSep); err != nil {
+// t.Error(err)
+// } else if err = jsonCfg.loaderCfg[0].loadFromJSONCfg(cfgJSON, jsonCfg.templates, jsonCfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+// t.Errorf("Expected %+v, received %+v", expected, err)
+// }
+// }
func TestLoaderSCfgloadFromJsonCfgCase3(t *testing.T) {
cfg := &LoaderJsonCfg{
@@ -406,7 +404,7 @@ func TestLoaderSCfgsClone(t *testing.T) {
ban := LoaderSCfgs{{
Enabled: true,
ID: utils.MetaDefault,
- Tenant: NewRSRParsersMustCompile("cgrate.org", utils.InfieldSep),
+ Tenant: "cgrate.org",
LockFileName: ".cgr.lck",
CacheSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches), "*conn1"},
FieldSeparator: ",",
diff --git a/engine/tpreader.go b/engine/tpreader.go
index 67f541c5d..18a5526d3 100644
--- a/engine/tpreader.go
+++ b/engine/tpreader.go
@@ -2223,7 +2223,7 @@ func (tpr *TpReader) RemoveFromDatabase(verbose, disableReverse bool) (err error
return tpr.dm.SetLoadIDs(loadIDs)
}
-func (tpr *TpReader) ReloadCache(caching string, verbose bool, opts map[string]interface{}) (err error) {
+func (tpr *TpReader) ReloadCache(caching string, verbose bool, opts map[string]interface{}, tenant string) (err error) {
if tpr.isInternalDB {
return
}
@@ -2305,7 +2305,7 @@ func (tpr *TpReader) ReloadCache(caching string, verbose bool, opts map[string]i
cacheIDs = append(cacheIDs, utils.CacheReverseFilterIndexes)
}
- if err = CallCache(connMgr, tpr.cacheConns, caching, cacheArgs, cacheIDs, opts, verbose); err != nil {
+ if err = CallCache(connMgr, tpr.cacheConns, caching, cacheArgs, cacheIDs, opts, verbose, tenant); err != nil {
return
}
//get loadIDs for all types
@@ -2324,7 +2324,7 @@ func (tpr *TpReader) ReloadCache(caching string, verbose bool, opts map[string]i
}
// CallCache call the cache reload after data load
-func CallCache(connMgr *ConnManager, cacheConns []string, caching string, args map[string][]string, cacheIDs []string, opts map[string]interface{}, verbose bool) (err error) {
+func CallCache(connMgr *ConnManager, cacheConns []string, caching string, args map[string][]string, cacheIDs []string, opts map[string]interface{}, verbose bool, tenant string) (err error) {
for k, v := range args {
if len(v) == 0 {
delete(args, k)
@@ -2334,6 +2334,7 @@ func CallCache(connMgr *ConnManager, cacheConns []string, caching string, args m
var cacheArgs interface{} = &utils.AttrReloadCacheWithAPIOpts{
APIOpts: opts,
ArgsCache: args,
+ Tenant: tenant,
}
switch caching {
case utils.MetaNone:
@@ -2346,7 +2347,7 @@ func CallCache(connMgr *ConnManager, cacheConns []string, caching string, args m
method = utils.CacheSv1RemoveItems
case utils.MetaClear:
method = utils.CacheSv1Clear
- cacheArgs = &utils.AttrCacheIDsWithAPIOpts{APIOpts: opts}
+ cacheArgs = &utils.AttrCacheIDsWithAPIOpts{APIOpts: opts, Tenant: tenant}
}
if verbose {
log.Print("Reloading cache")
@@ -2363,6 +2364,7 @@ func CallCache(connMgr *ConnManager, cacheConns []string, caching string, args m
if err = connMgr.Call(cacheConns, nil, utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
APIOpts: opts,
CacheIDs: cacheIDs,
+ Tenant: tenant,
}, &reply); err != nil {
if verbose {
log.Printf("WARNING: Got error on cache clear: %s\n", err.Error())
diff --git a/engine/tpreader_test.go b/engine/tpreader_test.go
index b9a726a9a..154f955ef 100644
--- a/engine/tpreader_test.go
+++ b/engine/tpreader_test.go
@@ -57,7 +57,7 @@ func TestCallCacheNoCaching(t *testing.T) {
expArgs := map[string][]string{
utils.FilterIDs: {"cgrates.org:FLTR_ID1", "cgrates.org:FLTR_ID2"},
}
- err := CallCache(cM, cacheConns, caching, args, cacheIDs, opts, true)
+ err := CallCache(cM, cacheConns, caching, args, cacheIDs, opts, true, "cgrates.org")
if err != nil {
t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", nil, err)
@@ -89,6 +89,7 @@ func TestCallCacheReloadCacheFirstCallErr(t *testing.T) {
ArgsCache: map[string][]string{
utils.FilterIDs: {"cgrates.org:FLTR_ID1", "cgrates.org:FLTR_ID2"},
},
+ Tenant: "cgrates.org",
}
if !reflect.DeepEqual(args, expArgs) {
@@ -123,7 +124,7 @@ func TestCallCacheReloadCacheFirstCallErr(t *testing.T) {
explog := "Reloading cache\n"
experr := utils.ErrUnsupporteServiceMethod
- err := CallCache(cM, cacheConns, caching, args, cacheIDs, opts, true)
+ err := CallCache(cM, cacheConns, caching, args, cacheIDs, opts, true, "cgrates.org")
if err == nil || err != experr {
t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
@@ -157,6 +158,7 @@ func TestCallCacheReloadCacheSecondCallErr(t *testing.T) {
utils.Subsys: utils.MetaChargers,
},
CacheIDs: []string{"cacheID"},
+ Tenant: "cgrates.org",
}
if !reflect.DeepEqual(args, expArgs) {
@@ -193,7 +195,7 @@ func TestCallCacheReloadCacheSecondCallErr(t *testing.T) {
explog2 := "Clearing indexes"
experr := utils.ErrUnsupporteServiceMethod
explog3 := fmt.Sprintf("WARNING: Got error on cache clear: %s\n", experr)
- err := CallCache(cM, cacheConns, caching, args, cacheIDs, opts, true)
+ err := CallCache(cM, cacheConns, caching, args, cacheIDs, opts, true, "cgrates.org")
if err == nil || err != experr {
t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
@@ -236,6 +238,7 @@ func TestCallCacheLoadCache(t *testing.T) {
ArgsCache: map[string][]string{
utils.FilterIDs: {"cgrates.org:FLTR_ID1", "cgrates.org:FLTR_ID2"},
},
+ Tenant: "cgrates.org",
}
if !reflect.DeepEqual(args, expArgs) {
@@ -252,6 +255,7 @@ func TestCallCacheLoadCache(t *testing.T) {
utils.Subsys: utils.MetaChargers,
},
CacheIDs: []string{"cacheID"},
+ Tenant: "cgrates.org",
}
if !reflect.DeepEqual(args, expArgs) {
@@ -278,7 +282,7 @@ func TestCallCacheLoadCache(t *testing.T) {
utils.Subsys: utils.MetaChargers,
}
- err := CallCache(cM, cacheConns, caching, args, cacheIDs, opts, false)
+ err := CallCache(cM, cacheConns, caching, args, cacheIDs, opts, false, "cgrates.org")
if err != nil {
t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", nil, err)
@@ -306,6 +310,7 @@ func TestCallCacheRemoveItems(t *testing.T) {
ArgsCache: map[string][]string{
utils.FilterIDs: {"cgrates.org:FLTR_ID1", "cgrates.org:FLTR_ID2"},
},
+ Tenant: "cgrates.org",
}
if !reflect.DeepEqual(args, expArgs) {
@@ -322,6 +327,7 @@ func TestCallCacheRemoveItems(t *testing.T) {
utils.Subsys: utils.MetaChargers,
},
CacheIDs: []string{"cacheID"},
+ Tenant: "cgrates.org",
}
if !reflect.DeepEqual(args, expArgs) {
@@ -348,7 +354,7 @@ func TestCallCacheRemoveItems(t *testing.T) {
utils.Subsys: utils.MetaChargers,
}
- err := CallCache(cM, cacheConns, caching, args, cacheIDs, opts, false)
+ err := CallCache(cM, cacheConns, caching, args, cacheIDs, opts, false, "cgrates.org")
if err != nil {
t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", nil, err)
@@ -373,6 +379,7 @@ func TestCallCacheClear(t *testing.T) {
APIOpts: map[string]interface{}{
utils.Subsys: utils.MetaChargers,
},
+ Tenant: "cgrates.org",
}
if !reflect.DeepEqual(args, expArgs) {
@@ -399,7 +406,7 @@ func TestCallCacheClear(t *testing.T) {
utils.Subsys: utils.MetaChargers,
}
- err := CallCache(cM, cacheConns, caching, args, cacheIDs, opts, false)
+ err := CallCache(cM, cacheConns, caching, args, cacheIDs, opts, false, "cgrates.org")
if err != nil {
t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", nil, err)
@@ -941,7 +948,7 @@ func TestReloadCache(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
argExpect := &utils.AttrReloadCacheWithAPIOpts{
APIOpts: map[string]interface{}{},
- Tenant: "",
+ Tenant: "cgrates.org",
ArgsCache: map[string][]string{
"ActionIDs": {"ActionsID"},
"ActionPlanIDs": {"ActionPlansID"},
@@ -1042,7 +1049,7 @@ func TestReloadCache(t *testing.T) {
dm: NewDataManager(data, config.CgrConfig().CacheCfg(), cnMgr),
}
tpr.cacheConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches)}
- if err := tpr.ReloadCache(utils.MetaReload, false, make(map[string]interface{})); err != nil {
+ if err := tpr.ReloadCache(utils.MetaReload, false, make(map[string]interface{}), "cgrates.org"); err != nil {
t.Error(err)
}
}
diff --git a/loaders/libloader.go b/loaders/libloader.go
index 825d604d3..01e21505c 100644
--- a/loaders/libloader.go
+++ b/loaders/libloader.go
@@ -48,12 +48,9 @@ func (ld LoaderData) GetRateIDs() ([]string, error) {
// UpdateFromCSV will update LoaderData with data received from fileName,
// contained in record and processed with cfgTpl
func (ld LoaderData) UpdateFromCSV(fileName string, record []string,
- cfgTpl []*config.FCTemplate, tnt config.RSRParsers, filterS *engine.FilterS) (err error) {
+ cfgTpl []*config.FCTemplate, tnt string, filterS *engine.FilterS) (err error) {
csvProvider := newCsvProvider(record, fileName)
- tenant, err := tnt.ParseValue("")
- if err != nil {
- return err
- }
+ tenant := tnt
for _, cfgFld := range cfgTpl {
// Make sure filters are matching
if len(cfgFld.Filters) != 0 {
diff --git a/loaders/libloader_test.go b/loaders/libloader_test.go
index 89896bd21..9896ba820 100644
--- a/loaders/libloader_test.go
+++ b/loaders/libloader_test.go
@@ -80,7 +80,7 @@ func TestDataUpdateFromCSVOneFile(t *testing.T) {
}
lData := make(LoaderData)
if err := lData.UpdateFromCSV("Attributes.csv", rows[0], attrSFlds,
- config.NewRSRParsersMustCompile("cgrates.org", utils.InfieldSep), nil); err != nil {
+ "cgrates.org", nil); err != nil {
t.Error(err)
}
eLData := LoaderData{"Tenant": "cgrates.org",
@@ -99,7 +99,7 @@ func TestDataUpdateFromCSVOneFile(t *testing.T) {
}
lData = make(LoaderData)
if err := lData.UpdateFromCSV("Attributes.csv", rows[1], attrSFlds,
- config.NewRSRParsersMustCompile("cgrates.org", utils.InfieldSep), nil); err != nil {
+ "cgrates.org", nil); err != nil {
t.Error(err)
}
eLData = LoaderData{"Tenant": "cgrates.org",
@@ -170,7 +170,7 @@ func TestDataUpdateFromCSVOneFile2(t *testing.T) {
}
lData := make(LoaderData)
if err := lData.UpdateFromCSV("Attributes.csv", rows[0], attrSFlds,
- config.NewRSRParsersMustCompile("cgrates.org", utils.InfieldSep), nil); err != nil {
+ "cgrates.org", nil); err != nil {
t.Error(err)
}
eLData := LoaderData{"Tenant": "cgrates.org",
@@ -189,7 +189,7 @@ func TestDataUpdateFromCSVOneFile2(t *testing.T) {
}
lData = make(LoaderData)
if err := lData.UpdateFromCSV("Attributes.csv", rows[1], attrSFlds,
- config.NewRSRParsersMustCompile("cgrates.org", utils.InfieldSep), nil); err != nil {
+ "cgrates.org", nil); err != nil {
t.Error(err)
}
eLData = LoaderData{"Tenant": "cgrates.org",
@@ -253,7 +253,7 @@ func TestDataUpdateFromCSVMultiFiles(t *testing.T) {
lData := make(LoaderData)
for fName, record := range loadRun1 {
if err := lData.UpdateFromCSV(fName, record, attrSFlds,
- config.NewRSRParsersMustCompile("cgrates.org", utils.InfieldSep), nil); err != nil {
+ "cgrates.org", nil); err != nil {
t.Error(err)
}
}
@@ -282,16 +282,16 @@ func TestGetRateIDsLoaderData(t *testing.T) {
}
}
-func TestUpdateFromCsvParseValueError(t *testing.T) {
- ldrData := LoaderData{
- "File1.csv": []string{"Subject", "*any", "1001"},
- }
- tnt := config.NewRSRParsersMustCompile("asd{*duration_seconds}", utils.InfieldSep)
- expected := "time: invalid duration \"asd\""
- if err := ldrData.UpdateFromCSV("File1.csv", nil, nil, tnt, nil); err == nil || err.Error() != expected {
- t.Errorf("Expected %+v, received %+v", expected, err)
- }
-}
+// func TestUpdateFromCsvParseValueError(t *testing.T) {
+// ldrData := LoaderData{
+// "File1.csv": []string{"Subject", "*any", "1001"},
+// }
+// tnt := config.NewRSRParsersMustCompile("asd{*duration_seconds}", utils.InfieldSep)
+// expected := "time: invalid duration \"asd\""
+// if err := ldrData.UpdateFromCSV("File1.csv", nil, nil, tnt, nil); err == nil || err.Error() != expected {
+// t.Errorf("Expected %+v, received %+v", expected, err)
+// }
+// }
func TestUpdateFromCsvWithFiltersError(t *testing.T) {
attrSFlds := []*config.FCTemplate{
@@ -321,7 +321,7 @@ func TestUpdateFromCsvWithFiltersError(t *testing.T) {
for fName, record := range loadRunStr {
expected := "Ignoring record: [\"cgrates.org\" \"TEST_1\"] with error : strconv.Atoi: parsing \"Account\": invalid syntax"
if err := lData.UpdateFromCSV(fName, record, attrSFlds,
- config.NewRSRParsersMustCompile("cgrates.org", utils.InfieldSep), filterS); err == nil || err.Error() != expected {
+ "cgrates.org", filterS); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -354,7 +354,7 @@ func TestUpdateFromCsvWithFiltersContinue(t *testing.T) {
for fName, record := range loadRunStr {
if err := lData.UpdateFromCSV(fName, record, attrSFlds,
- config.NewRSRParsersMustCompile("cgrates.org", utils.InfieldSep), filterS); err != nil {
+ "cgrates.org", filterS); err != nil {
t.Error(err)
}
}
diff --git a/loaders/loader.go b/loaders/loader.go
index 48f3f87d3..8931e5abc 100644
--- a/loaders/loader.go
+++ b/loaders/loader.go
@@ -86,7 +86,7 @@ func NewLoader(dm *engine.DataManager, cfg *config.LoaderSCfg,
// Loader is one instance loading from a folder
type Loader struct {
enabled bool
- tenant config.RSRParsers
+ tenant string
dryRun bool
ldrID string
tpInDir string
@@ -544,7 +544,7 @@ func (ldr *Loader) storeLoadedData(loaderType string,
}
if len(ldr.cacheConns) != 0 {
- return engine.CallCache(ldr.connMgr, ldr.cacheConns, caching, cacheArgs, cacheIDs, nil, false)
+ return engine.CallCache(ldr.connMgr, ldr.cacheConns, caching, cacheArgs, cacheIDs, nil, false, ldr.tenant)
}
return
}
@@ -791,7 +791,7 @@ func (ldr *Loader) removeLoadedData(loaderType string, lds map[string][]LoaderDa
}
if len(ldr.cacheConns) != 0 {
- return engine.CallCache(ldr.connMgr, ldr.cacheConns, caching, cacheArgs, cacheIDs, nil, false)
+ return engine.CallCache(ldr.connMgr, ldr.cacheConns, caching, cacheArgs, cacheIDs, nil, false, ldr.tenant)
}
return
}
diff --git a/services/loaders_test.go b/services/loaders_test.go
index 5aad07ba3..7d090da41 100644
--- a/services/loaders_test.go
+++ b/services/loaders_test.go
@@ -57,7 +57,7 @@ func TestLoaderSCoverage(t *testing.T) {
[]*config.LoaderSCfg{{
ID: "test_id",
Enabled: true,
- Tenant: nil,
+ Tenant: "",
DryRun: false,
RunDelay: 0,
LockFileName: "",