diff --git a/config/config_json.go b/config/config_json.go index eeb19e6fe..ae815ba0d 100644 --- a/config/config_json.go +++ b/config/config_json.go @@ -63,10 +63,12 @@ const ( ) var ( - sortedCfgSections = []string{GENERAL_JSN, RPCConnsJsonName, DATADB_JSN, STORDB_JSN, LISTEN_JSN, TlsCfgJson, HTTP_JSN, SCHEDULER_JSN, CACHE_JSN, FilterSjsn, RALS_JSN, + sortedCfgSections = []string{GENERAL_JSN, RPCConnsJsonName, DATADB_JSN, STORDB_JSN, LISTEN_JSN, TlsCfgJson, HTTP_JSN, + SCHEDULER_JSN, CACHE_JSN, FilterSjsn, RALS_JSN, CDRS_JSN, CDRE_JSN, ERsJson, SessionSJson, AsteriskAgentJSN, FreeSWITCHAgentJSN, KamailioAgentJSN, DA_JSN, RA_JSN, HttpAgentJson, DNSAgentJson, ATTRIBUTE_JSN, ChargerSCfgJson, RESOURCES_JSON, STATS_JSON, THRESHOLDS_JSON, - RouteSJson, LoaderJson, MAILER_JSN, SURETAX_JSON, CgrLoaderCfgJson, CgrMigratorCfgJson, DispatcherSJson, AnalyzerCfgJson, ApierS} + RouteSJson, LoaderJson, MAILER_JSN, SURETAX_JSON, CgrLoaderCfgJson, CgrMigratorCfgJson, DispatcherSJson, + AnalyzerCfgJson, ApierS, EEsJson} ) // Loads the json config out of io.Reader, eg other sources than file, maybe over http diff --git a/engine/datamanager.go b/engine/datamanager.go index 49284d62c..528cfda80 100644 --- a/engine/datamanager.go +++ b/engine/datamanager.go @@ -207,6 +207,9 @@ func (dm *DataManager) CacheDataFromDB(prfx string, ids []string, mustBeCached b utils.UnsupportedCachePrefix, fmt.Sprintf("prefix <%s> is not a supported cache prefix", prfx)) } + if dm.cacheCfg.Partitions[utils.CachePrefixToInstance[prfx]].Limit == 0 { + return + } if ids == nil { keyIDs, err := dm.DataDB().GetKeysForPrefix(prfx) if err != nil { diff --git a/engine/loader_it_test.go b/engine/loader_it_test.go index dd4af9e59..13e80f1ee 100644 --- a/engine/loader_it_test.go +++ b/engine/loader_it_test.go @@ -92,7 +92,7 @@ func testLoaderITInitDataDB(t *testing.T) { if err != nil { t.Fatal("Error on dataDb connection: ", err.Error()) } - dataDbCsv = NewDataManager(dbConn, nil, nil) + dataDbCsv = NewDataManager(dbConn, lCfg.CacheCfg(), nil) if err = dbConn.Flush(utils.EmptyString); err != nil { t.Fatal("Error when flushing datadb") } diff --git a/engine/onstor_it_test.go b/engine/onstor_it_test.go index 03933bef7..ca3360df4 100644 --- a/engine/onstor_it_test.go +++ b/engine/onstor_it_test.go @@ -163,11 +163,14 @@ func testOnStorITCacheDestinations(t *testing.T) { if err := onStor.CacheDataFromDB(utils.DESTINATION_PREFIX, []string{dst.Id}, false); err != nil { t.Error(err) } - if itm, hasIt := Cache.Get(utils.CacheDestinations, dst.Id); !hasIt { - t.Error("Did not cache") - } else if !reflect.DeepEqual(dst, itm.(*Destination)) { - t.Error("Wrong item in the cache") + if onStor.dataDB.GetStorageType() != utils.INTERNAL { + if itm, hasIt := Cache.Get(utils.CacheDestinations, dst.Id); !hasIt { + t.Error("Did not cache") + } else if !reflect.DeepEqual(dst, itm.(*Destination)) { + t.Error("Wrong item in the cache") + } } + } func testOnStorITCacheReverseDestinations(t *testing.T) { @@ -183,11 +186,13 @@ func testOnStorITCacheReverseDestinations(t *testing.T) { if err := onStor.CacheDataFromDB(utils.REVERSE_DESTINATION_PREFIX, dst.Prefixes, false); err != nil { t.Error(err) } - for _, prfx := range dst.Prefixes { - if itm, hasIt := Cache.Get(utils.CacheReverseDestinations, prfx); !hasIt { - t.Error("Did not cache") - } else if !reflect.DeepEqual([]string{dst.Id}, itm.([]string)) { - t.Error("Wrong item in the cache") + if onStor.dataDB.GetStorageType() != utils.INTERNAL { + for _, prfx := range dst.Prefixes { + if itm, hasIt := Cache.Get(utils.CacheReverseDestinations, prfx); !hasIt { + t.Error("Did not cache") + } else if !reflect.DeepEqual([]string{dst.Id}, itm.([]string)) { + t.Error("Wrong item in the cache") + } } } } @@ -242,10 +247,12 @@ func testOnStorITCacheActionPlan(t *testing.T) { if err := onStor.CacheDataFromDB(utils.ACTION_PLAN_PREFIX, []string{ap.Id}, false); err != nil { t.Error(err) } - if itm, hasIt := Cache.Get(utils.CacheActionPlans, ap.Id); !hasIt { - t.Error("Did not cache") - } else if rcv := itm.(*ActionPlan); !reflect.DeepEqual(ap, rcv) { - t.Errorf("Expecting: %+v, received: %+v", ap, rcv) + if onStor.dataDB.GetStorageType() != utils.INTERNAL { + if itm, hasIt := Cache.Get(utils.CacheActionPlans, ap.Id); !hasIt { + t.Error("Did not cache") + } else if rcv := itm.(*ActionPlan); !reflect.DeepEqual(ap, rcv) { + t.Errorf("Expecting: %+v, received: %+v", ap, rcv) + } } if err := onStor.RemoveActionPlan(ap.Id, utils.NonTransactional); err != nil { t.Error(err) @@ -267,10 +274,12 @@ func testOnStorITCacheAccountActionPlans(t *testing.T) { if err := onStor.CacheDataFromDB(utils.AccountActionPlansPrefix, []string{acntID}, false); err != nil { t.Error(err) } - if itm, hasIt := Cache.Get(utils.CacheAccountActionPlans, acntID); !hasIt { - t.Error("Did not cache") - } else if rcv := itm.([]string); !reflect.DeepEqual(aAPs, rcv) { - t.Errorf("Expecting: %+v, received: %+v", aAPs, rcv) + if onStor.dataDB.GetStorageType() != utils.INTERNAL { + if itm, hasIt := Cache.Get(utils.CacheAccountActionPlans, acntID); !hasIt { + t.Error("Did not cache") + } else if rcv := itm.([]string); !reflect.DeepEqual(aAPs, rcv) { + t.Errorf("Expecting: %+v, received: %+v", aAPs, rcv) + } } } @@ -437,11 +446,13 @@ func testOnStorITRatingPlan(t *testing.T) { if err := onStor.SetRatingPlan(rp, utils.NonTransactional); err != nil { t.Error(err) } - //get from cache - if rcv, err := onStor.GetRatingPlan(rp.Id, false, utils.NonTransactional); err != nil { - t.Error(err) - } else if !reflect.DeepEqual(rp, rcv) { - t.Errorf("Expecting: %v, received: %v", rp, rcv) + if onStor.dataDB.GetStorageType() != utils.INTERNAL { + //get from cache + if rcv, err := onStor.GetRatingPlan(rp.Id, false, utils.NonTransactional); err != nil { + t.Error(err) + } else if !reflect.DeepEqual(rp, rcv) { + t.Errorf("Expecting: %v, received: %v", rp, rcv) + } } //get from database if rcv, err := onStor.GetRatingPlan(rp.Id, true, utils.NonTransactional); err != nil { @@ -520,12 +531,14 @@ func testOnStorITRatingProfile(t *testing.T) { if err := onStor.SetRatingProfile(rpf, utils.NonTransactional); err != nil { t.Error(err) } - //get from cache - if rcv, err := onStor.GetRatingProfile(rpf.Id, false, - utils.NonTransactional); err != nil { - t.Error(err) - } else if !reflect.DeepEqual(rpf, rcv) { - t.Errorf("Expecting: %v, received: %v", utils.ToJSON(rpf), utils.ToJSON(rcv)) + if onStor.dataDB.GetStorageType() != utils.INTERNAL { + //get from cache + if rcv, err := onStor.GetRatingProfile(rpf.Id, false, + utils.NonTransactional); err != nil { + t.Error(err) + } else if !reflect.DeepEqual(rpf, rcv) { + t.Errorf("Expecting: %v, received: %v", utils.ToJSON(rpf), utils.ToJSON(rcv)) + } } //get from database @@ -554,12 +567,14 @@ func testOnStorITRatingProfile(t *testing.T) { t.Error(err) } time.Sleep(sleepDelay) - //get from cache - if rcv, err := onStor.GetRatingProfile(rpf.Id, false, - utils.NonTransactional); err != nil { - t.Error(err) - } else if !reflect.DeepEqual(rpf, rcv) { - t.Errorf("Expecting: %v, received: %v", utils.ToJSON(rpf), utils.ToJSON(rcv)) + if onStor.dataDB.GetStorageType() != utils.INTERNAL { + //get from cache + if rcv, err := onStor.GetRatingProfile(rpf.Id, false, + utils.NonTransactional); err != nil { + t.Error(err) + } else if !reflect.DeepEqual(rpf, rcv) { + t.Errorf("Expecting: %v, received: %v", utils.ToJSON(rpf), utils.ToJSON(rcv)) + } } //get from database if rcv, err := onStor.GetRatingProfile(rpf.Id, true, @@ -733,12 +748,14 @@ func testOnStorITActions(t *testing.T) { } else if rcv != true { t.Errorf("Expecting: true, received: %v", rcv) } - //get from cache - if rcv, err := onStor.GetActions(acts[0].Id, - false, utils.NonTransactional); err != nil { - t.Error(err) - } else if !reflect.DeepEqual(acts[0], rcv[0]) { - t.Errorf("Expecting: %v, received: %v", utils.ToJSON(acts[0]), utils.ToJSON(rcv[0])) + if onStor.dataDB.GetStorageType() != utils.INTERNAL { + //get from cache + if rcv, err := onStor.GetActions(acts[0].Id, + false, utils.NonTransactional); err != nil { + t.Error(err) + } else if !reflect.DeepEqual(acts[0], rcv[0]) { + t.Errorf("Expecting: %v, received: %v", utils.ToJSON(acts[0]), utils.ToJSON(rcv[0])) + } } //get from database if rcv, err := onStor.GetActions(acts[0].Id, @@ -837,12 +854,14 @@ func testOnStorITActions(t *testing.T) { t.Error(err) } time.Sleep(sleepDelay) - //get from cache - if rcv, err := onStor.GetActions(acts[0].Id, - false, utils.NonTransactional); err != nil { - t.Error(err) - } else if !reflect.DeepEqual(acts[0], rcv[0]) { - t.Errorf("Expecting: %v, received: %v", utils.ToJSON(acts[0]), utils.ToJSON(rcv[0])) + if onStor.dataDB.GetStorageType() != utils.INTERNAL { + //get from cache + if rcv, err := onStor.GetActions(acts[0].Id, + false, utils.NonTransactional); err != nil { + t.Error(err) + } else if !reflect.DeepEqual(acts[0], rcv[0]) { + t.Errorf("Expecting: %v, received: %v", utils.ToJSON(acts[0]), utils.ToJSON(rcv[0])) + } } //get from database if rcv, err := onStor.GetActions(acts[0].Id, @@ -884,12 +903,14 @@ func testOnStorITSharedGroup(t *testing.T) { if err := onStor.SetSharedGroup(sg, utils.NonTransactional); err != nil { t.Error(err) } - //get from cache - if rcv, err := onStor.GetSharedGroup(sg.Id, false, - utils.NonTransactional); err != nil { - t.Error(err) - } else if !reflect.DeepEqual(sg, rcv) { - t.Errorf("Expecting: %v, received: %v", sg, rcv) + if onStor.dataDB.GetStorageType() != utils.INTERNAL { + //get from cache + if rcv, err := onStor.GetSharedGroup(sg.Id, false, + utils.NonTransactional); err != nil { + t.Error(err) + } else if !reflect.DeepEqual(sg, rcv) { + t.Errorf("Expecting: %v, received: %v", sg, rcv) + } } //get from database if rcv, err := onStor.GetSharedGroup(sg.Id, true, @@ -912,12 +933,14 @@ func testOnStorITSharedGroup(t *testing.T) { if err := onStor.SetSharedGroup(sg, utils.NonTransactional); err != nil { t.Error(err) } - //get from cache - if rcv, err := onStor.GetSharedGroup(sg.Id, false, - utils.NonTransactional); err != nil { - t.Error(err) - } else if !reflect.DeepEqual(sg, rcv) { - t.Errorf("Expecting: %v, received: %v", sg, rcv) + if onStor.dataDB.GetStorageType() != utils.INTERNAL { + //get from cache + if rcv, err := onStor.GetSharedGroup(sg.Id, false, + utils.NonTransactional); err != nil { + t.Error(err) + } else if !reflect.DeepEqual(sg, rcv) { + t.Errorf("Expecting: %v, received: %v", sg, rcv) + } } //get from database if rcv, err := onStor.GetSharedGroup(sg.Id, true, @@ -1276,11 +1299,13 @@ func testOnStorITTiming(t *testing.T) { if err := onStor.SetTiming(tmg); err != nil { t.Error(err) } - //get from cache - if rcv, err := onStor.GetTiming(tmg.ID, false, utils.NonTransactional); err != nil { - t.Error(err) - } else if !reflect.DeepEqual(tmg, rcv) { - t.Errorf("Expecting: %v, received: %v", tmg, rcv) + if onStor.dataDB.GetStorageType() != utils.INTERNAL { + //get from cache + if rcv, err := onStor.GetTiming(tmg.ID, false, utils.NonTransactional); err != nil { + t.Error(err) + } else if !reflect.DeepEqual(tmg, rcv) { + t.Errorf("Expecting: %v, received: %v", tmg, rcv) + } } //get from database if rcv, err := onStor.GetTiming(tmg.ID, true, utils.NonTransactional); err != nil {