Added flag for tenant in cgr-loader

This commit is contained in:
nickolasdaniel
2021-07-21 16:24:38 +03:00
committed by Dan Christian Bogos
parent 9da84ddac7
commit 4aaa2311ee
14 changed files with 91 additions and 72 deletions

View File

@@ -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())

View File

@@ -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)
}
}