diff --git a/apier/v1/accounts_test.go b/apier/v1/accounts_test.go index 055d0cdcc..67450fbcd 100644 --- a/apier/v1/accounts_test.go +++ b/apier/v1/accounts_test.go @@ -56,7 +56,7 @@ func TestSetAccounts(t *testing.T) { t.Error(err) } } - apierAcntsAcntStorage.CachePrefixes(utils.ACTION_PREFIX) + apierAcntsAcntStorage.CacheRatingPrefixes(utils.ACTION_PREFIX) } /* diff --git a/apier/v1/aliases.go b/apier/v1/aliases.go index aa6f50b8a..0e842e8fe 100644 --- a/apier/v1/aliases.go +++ b/apier/v1/aliases.go @@ -18,6 +18,7 @@ along with this program. If not, see package v1 +/* import ( "github.com/cgrates/cgrates/engine" "github.com/cgrates/cgrates/utils" @@ -80,9 +81,6 @@ func (self *ApierV1) RemRatingSubjectAliases(tenantRatingSubject engine.TenantRa } // cache refresh not needed, synched in RemoveRpAliases - /*if err := self.RatingDb.CachePrefixes(utils.RP_ALIAS_PREFIX); err != nil { - return utils.NewErrServerError(err) - }*/ *reply = utils.OK return nil } @@ -131,10 +129,7 @@ func (self *ApierV1) RemAccountAliases(tenantAccount engine.TenantAccount, reply } return utils.NewErrServerError(err) } - // cache refresh not needed, synched in RemoveRpAliases - /*if err := self.RatingDb.CachePrefixes(utils.ACC_ALIAS_PREFIX); err != nil { - return utils.NewErrServerError(err) - }*/ *reply = utils.OK return nil } +*/ diff --git a/apier/v1/apier.go b/apier/v1/apier.go index a40eb161b..7305f7899 100644 --- a/apier/v1/apier.go +++ b/apier/v1/apier.go @@ -86,7 +86,7 @@ func (self *ApierV1) SetDestination(attrs utils.AttrSetDestination, reply *strin if err := self.RatingDb.SetDestination(dest); err != nil { return utils.NewErrServerError(err) } - self.RatingDb.CachePrefixValues(map[string][]string{utils.DESTINATION_PREFIX: []string{dest.Id}}) + self.RatingDb.CacheRatingPrefixValues(map[string][]string{utils.DESTINATION_PREFIX: []string{dest.Id}}) *reply = OK return nil } @@ -216,7 +216,7 @@ func (self *ApierV1) LoadDestination(attrs AttrLoadDestination, reply *string) e if len(attrs.DestinationId) == 0 { destIds = nil // Cache all destinations, temporary here until we add ApierV2.LoadDestinations } - if err := self.RatingDb.CachePrefixValues(map[string][]string{ + if err := self.RatingDb.CacheRatingPrefixValues(map[string][]string{ utils.DESTINATION_PREFIX: destIds}); err != nil { return err } @@ -239,7 +239,7 @@ func (self *ApierV1) LoadDerivedChargers(attrs utils.TPDerivedChargers, reply *s if len(attrs.Direction) != 0 && len(attrs.Tenant) != 0 && len(attrs.Category) != 0 && len(attrs.Account) != 0 && len(attrs.Subject) != 0 { derivedChargingKeys = []string{utils.DERIVEDCHARGERS_PREFIX + attrs.GetDerivedChargersKey()} } - if err := self.RatingDb.CachePrefixValues(map[string][]string{utils.DERIVEDCHARGERS_PREFIX: derivedChargingKeys}); err != nil { + if err := self.RatingDb.CacheRatingPrefixValues(map[string][]string{utils.DERIVEDCHARGERS_PREFIX: derivedChargingKeys}); err != nil { return err } *reply = OK @@ -267,7 +267,7 @@ func (self *ApierV1) LoadRatingPlan(attrs AttrLoadRatingPlan, reply *string) err if len(attrs.TPid) != 0 { changedRPlKeys = []string{utils.RATING_PLAN_PREFIX + attrs.RatingPlanId} } - if err := self.RatingDb.CachePrefixValues(map[string][]string{ + if err := self.RatingDb.CacheRatingPrefixValues(map[string][]string{ utils.DESTINATION_PREFIX: nil, utils.RATING_PLAN_PREFIX: changedRPlKeys, }); err != nil { @@ -292,7 +292,7 @@ func (self *ApierV1) LoadRatingProfile(attrs utils.TPRatingProfile, reply *strin if attrs.KeyId() != ":::" { // if has some filters ratingProfile = []string{utils.RATING_PROFILE_PREFIX + attrs.KeyId()} } - if err := self.RatingDb.CachePrefixValues(map[string][]string{utils.RATING_PROFILE_PREFIX: ratingProfile}); err != nil { + if err := self.RatingDb.CacheRatingPrefixValues(map[string][]string{utils.RATING_PROFILE_PREFIX: ratingProfile}); err != nil { return err } *reply = OK @@ -318,7 +318,7 @@ func (self *ApierV1) LoadSharedGroup(attrs AttrLoadSharedGroup, reply *string) e if len(attrs.SharedGroupId) != 0 { changedSharedGroup = []string{utils.SHARED_GROUP_PREFIX + attrs.SharedGroupId} } - if err := self.RatingDb.CachePrefixValues(map[string][]string{utils.SHARED_GROUP_PREFIX: changedSharedGroup}); err != nil { + if err := self.RatingDb.CacheRatingPrefixValues(map[string][]string{utils.SHARED_GROUP_PREFIX: changedSharedGroup}); err != nil { return err } *reply = OK @@ -398,15 +398,10 @@ func (self *ApierV1) LoadTariffPlanFromStorDb(attrs AttrLoadTpFromStorDb, reply for idx, shgId := range shgIds { shgKeys[idx] = utils.SHARED_GROUP_PREFIX + shgId } - rpAliases, _ := dbReader.GetLoadedIds(utils.RP_ALIAS_PREFIX) - rpAlsKeys := make([]string, len(rpAliases)) - for idx, alias := range rpAliases { - rpAlsKeys[idx] = utils.RP_ALIAS_PREFIX + alias - } - accAliases, _ := dbReader.GetLoadedIds(utils.ACC_ALIAS_PREFIX) - accAlsKeys := make([]string, len(accAliases)) - for idx, alias := range accAliases { - accAlsKeys[idx] = utils.ACC_ALIAS_PREFIX + alias + aliases, _ := dbReader.GetLoadedIds(utils.ALIASES_PREFIX) + alsKeys := make([]string, len(aliases)) + for idx, alias := range aliases { + alsKeys[idx] = utils.ALIASES_PREFIX + alias } lcrIds, _ := dbReader.GetLoadedIds(utils.LCR_PREFIX) lcrKeys := make([]string, len(lcrIds)) @@ -419,16 +414,19 @@ func (self *ApierV1) LoadTariffPlanFromStorDb(attrs AttrLoadTpFromStorDb, reply dcsKeys[idx] = utils.DERIVEDCHARGERS_PREFIX + dc } engine.Logger.Info("ApierV1.LoadTariffPlanFromStorDb, reloading cache.") - if err := self.RatingDb.CachePrefixValues(map[string][]string{ + if err := self.RatingDb.CacheRatingPrefixValues(map[string][]string{ utils.DESTINATION_PREFIX: dstKeys, utils.RATING_PLAN_PREFIX: rpKeys, utils.RATING_PROFILE_PREFIX: rpfKeys, - utils.RP_ALIAS_PREFIX: rpAlsKeys, utils.LCR_PREFIX: lcrKeys, utils.DERIVEDCHARGERS_PREFIX: dcsKeys, utils.ACTION_PREFIX: actKeys, utils.SHARED_GROUP_PREFIX: shgKeys, - utils.ACC_ALIAS_PREFIX: accAlsKeys, + }); err != nil { + return err + } + if err := self.AccountDb.CacheAccountingPrefixValues(map[string][]string{ + utils.ALIASES_PREFIX: shgKeys, }); err != nil { return err } @@ -524,7 +522,7 @@ func (self *ApierV1) SetRatingProfile(attrs AttrSetRatingProfile, reply *string) return utils.NewErrServerError(err) } //Automatic cache of the newly inserted rating profile - if err := self.RatingDb.CachePrefixValues(map[string][]string{ + if err := self.RatingDb.CacheRatingPrefixValues(map[string][]string{ utils.RATING_PROFILE_PREFIX: []string{utils.RATING_PROFILE_PREFIX + keyId}, }); err != nil { return err @@ -578,7 +576,7 @@ func (self *ApierV1) SetActions(attrs utils.AttrSetActions, reply *string) error if err := self.RatingDb.SetActions(attrs.ActionsId, storeActions); err != nil { return utils.NewErrServerError(err) } - self.RatingDb.CachePrefixes(utils.ACTION_PREFIX) + self.RatingDb.CacheRatingPrefixes(utils.ACTION_PREFIX) *reply = OK return nil } @@ -834,7 +832,7 @@ func (self *ApierV1) LoadAccountActions(attrs utils.TPAccountActions, reply *str } // ToDo: Get the action keys loaded by dbReader so we reload only these in cache // Need to do it before scheduler otherwise actions to run will be unknown - if err := self.RatingDb.CachePrefixes(utils.DERIVEDCHARGERS_PREFIX, utils.ACTION_PREFIX, utils.SHARED_GROUP_PREFIX, utils.ACC_ALIAS_PREFIX); err != nil { + if err := self.RatingDb.CacheRatingPrefixes(utils.DERIVEDCHARGERS_PREFIX, utils.ACTION_PREFIX, utils.SHARED_GROUP_PREFIX); err != nil { return err } if self.Sched != nil { @@ -857,7 +855,7 @@ func (self *ApierV1) ReloadScheduler(input string, reply *string) error { } func (self *ApierV1) ReloadCache(attrs utils.ApiReloadCache, reply *string) error { - var dstKeys, rpKeys, rpfKeys, actKeys, shgKeys, rpAlsKeys, accAlsKeys, lcrKeys, dcsKeys []string + var dstKeys, rpKeys, rpfKeys, actKeys, shgKeys, lcrKeys, dcsKeys, alsKeys []string if len(attrs.DestinationIds) > 0 { dstKeys = make([]string, len(attrs.DestinationIds)) for idx, dId := range attrs.DestinationIds { @@ -888,16 +886,10 @@ func (self *ApierV1) ReloadCache(attrs utils.ApiReloadCache, reply *string) erro shgKeys[idx] = utils.SHARED_GROUP_PREFIX + shgId } } - if len(attrs.RpAliases) > 0 { - rpAlsKeys = make([]string, len(attrs.RpAliases)) - for idx, alias := range attrs.RpAliases { - rpAlsKeys[idx] = utils.RP_ALIAS_PREFIX + alias - } - } - if len(attrs.AccAliases) > 0 { - accAlsKeys = make([]string, len(attrs.AccAliases)) - for idx, alias := range attrs.AccAliases { - accAlsKeys[idx] = utils.ACC_ALIAS_PREFIX + alias + if len(attrs.Aliases) > 0 { + alsKeys = make([]string, len(attrs.Aliases)) + for idx, alias := range attrs.Aliases { + alsKeys[idx] = utils.ALIASES_PREFIX + alias } } if len(attrs.LCRIds) > 0 { @@ -913,16 +905,19 @@ func (self *ApierV1) ReloadCache(attrs utils.ApiReloadCache, reply *string) erro dcsKeys[idx] = utils.DERIVEDCHARGERS_PREFIX + dc } } - if err := self.RatingDb.CachePrefixValues(map[string][]string{ + if err := self.RatingDb.CacheRatingPrefixValues(map[string][]string{ utils.DESTINATION_PREFIX: dstKeys, utils.RATING_PLAN_PREFIX: rpKeys, utils.RATING_PROFILE_PREFIX: rpfKeys, - utils.RP_ALIAS_PREFIX: rpAlsKeys, utils.LCR_PREFIX: lcrKeys, utils.DERIVEDCHARGERS_PREFIX: dcsKeys, utils.ACTION_PREFIX: actKeys, utils.SHARED_GROUP_PREFIX: shgKeys, - utils.ACC_ALIAS_PREFIX: accAlsKeys, + }); err != nil { + return err + } + if err := self.RatingDb.CacheRatingPrefixValues(map[string][]string{ + utils.ALIASES_PREFIX: alsKeys, }); err != nil { return err } @@ -937,10 +932,9 @@ func (self *ApierV1) GetCacheStats(attrs utils.AttrCacheStats, reply *utils.Cach cs.RatingProfiles = cache2go.CountEntries(utils.RATING_PROFILE_PREFIX) cs.Actions = cache2go.CountEntries(utils.ACTION_PREFIX) cs.SharedGroups = cache2go.CountEntries(utils.SHARED_GROUP_PREFIX) - cs.RatingAliases = cache2go.CountEntries(utils.RP_ALIAS_PREFIX) - cs.AccountAliases = cache2go.CountEntries(utils.ACC_ALIAS_PREFIX) cs.DerivedChargers = cache2go.CountEntries(utils.DERIVEDCHARGERS_PREFIX) cs.LcrProfiles = cache2go.CountEntries(utils.LCR_PREFIX) + cs.Aliases = cache2go.CountEntries(utils.ALIASES_PREFIX) if self.CdrStatsSrv != nil && self.Config.CDRStatsEnabled { var queueIds []string if err := self.CdrStatsSrv.GetQueueIds(0, &queueIds); err != nil { @@ -966,7 +960,7 @@ func (self *ApierV1) GetCachedItemAge(itemId string, reply *utils.CachedItemAge) cachedItemAge := new(utils.CachedItemAge) var found bool for idx, cacheKey := range []string{utils.DESTINATION_PREFIX + itemId, utils.RATING_PLAN_PREFIX + itemId, utils.RATING_PROFILE_PREFIX + itemId, - utils.ACTION_PREFIX + itemId, utils.SHARED_GROUP_PREFIX + itemId, utils.RP_ALIAS_PREFIX + itemId, utils.ACC_ALIAS_PREFIX + itemId, + utils.ACTION_PREFIX + itemId, utils.SHARED_GROUP_PREFIX + itemId, utils.ALIASES_PREFIX + itemId, utils.LCR_PREFIX + itemId} { if age, err := cache2go.GetKeyAge(cacheKey); err == nil { found = true @@ -1024,7 +1018,9 @@ func (self *ApierV1) LoadTariffPlanFromFolder(attrs utils.AttrLoadTpFromFolder, path.Join(attrs.FolderPath, utils.ACCOUNT_ACTIONS_CSV), path.Join(attrs.FolderPath, utils.DERIVED_CHARGERS_CSV), path.Join(attrs.FolderPath, utils.CDR_STATS_CSV), - path.Join(attrs.FolderPath, utils.USERS_CSV)), "") + path.Join(attrs.FolderPath, utils.USERS_CSV), + path.Join(attrs.FolderPath, utils.ALIASES_CSV), + ), "") if err := loader.LoadAll(); err != nil { return utils.NewErrServerError(err) } @@ -1069,15 +1065,10 @@ func (self *ApierV1) LoadTariffPlanFromFolder(attrs utils.AttrLoadTpFromFolder, for idx, shgId := range shgIds { shgKeys[idx] = utils.SHARED_GROUP_PREFIX + shgId } - rpAliases, _ := loader.GetLoadedIds(utils.RP_ALIAS_PREFIX) - rpAlsKeys := make([]string, len(rpAliases)) - for idx, alias := range rpAliases { - rpAlsKeys[idx] = utils.RP_ALIAS_PREFIX + alias - } - accAliases, _ := loader.GetLoadedIds(utils.ACC_ALIAS_PREFIX) - accAlsKeys := make([]string, len(accAliases)) - for idx, alias := range accAliases { - accAlsKeys[idx] = utils.ACC_ALIAS_PREFIX + alias + aliases, _ := loader.GetLoadedIds(utils.ALIASES_PREFIX) + alsKeys := make([]string, len(aliases)) + for idx, alias := range aliases { + alsKeys[idx] = utils.ALIASES_PREFIX + alias } lcrIds, _ := loader.GetLoadedIds(utils.LCR_PREFIX) lcrKeys := make([]string, len(lcrIds)) @@ -1092,16 +1083,19 @@ func (self *ApierV1) LoadTariffPlanFromFolder(attrs utils.AttrLoadTpFromFolder, aps, _ := loader.GetLoadedIds(utils.ACTION_TIMING_PREFIX) engine.Logger.Info("ApierV1.LoadTariffPlanFromFolder, reloading cache.") - if err := self.RatingDb.CachePrefixValues(map[string][]string{ + if err := self.RatingDb.CacheRatingPrefixValues(map[string][]string{ utils.DESTINATION_PREFIX: dstKeys, utils.RATING_PLAN_PREFIX: rpKeys, utils.RATING_PROFILE_PREFIX: rpfKeys, - utils.RP_ALIAS_PREFIX: rpAlsKeys, utils.LCR_PREFIX: lcrKeys, utils.DERIVEDCHARGERS_PREFIX: dcsKeys, utils.ACTION_PREFIX: actKeys, utils.SHARED_GROUP_PREFIX: shgKeys, - utils.ACC_ALIAS_PREFIX: accAlsKeys, + }); err != nil { + return err + } + if err := self.AccountDb.CacheAccountingPrefixValues(map[string][]string{ + utils.ALIASES_PREFIX: alsKeys, }); err != nil { return err } diff --git a/apier/v1/apier_local_test.go b/apier/v1/apier_local_test.go index 79b3b019b..f51e67ebc 100644 --- a/apier/v1/apier_local_test.go +++ b/apier/v1/apier_local_test.go @@ -30,7 +30,6 @@ import ( "os/exec" "path" "reflect" - "sort" "strings" "testing" "time" @@ -1550,6 +1549,7 @@ func TestApierLocalGetRatingSubjectAliases(t *testing.T) { } } +/* func TestApierLocalAddRatingSubjectAliases(t *testing.T) { if !*testLocal { return @@ -1573,7 +1573,7 @@ func TestApierLocalAddRatingSubjectAliases(t *testing.T) { t.Errorf("Expecting: %v, received: %v", expectSubjAliases, subjAliases) } } -} +}*/ func TestApierLocalRemRatingSubjectAliases(t *testing.T) { if !*testLocal { @@ -1607,6 +1607,7 @@ func TestApierLocalGetAccountAliases(t *testing.T) { } } +/* func TestApierLocalAddAccountAliases(t *testing.T) { if !*testLocal { return @@ -1630,7 +1631,7 @@ func TestApierLocalAddAccountAliases(t *testing.T) { t.Errorf("Expecting: %v, received: %v", expectAcntAliases, acntAliases) } } -} +}*/ func TestApierLocalRemAccountAliases(t *testing.T) { if !*testLocal { @@ -1770,6 +1771,7 @@ func TestApierLoadTariffPlanFromStorDb(t *testing.T) { } } +/* func TestApierGetCacheStats3(t *testing.T) { if !*testLocal { return @@ -1782,7 +1784,7 @@ func TestApierGetCacheStats3(t *testing.T) { } else if !reflect.DeepEqual(expectedStats, rcvStats) { t.Errorf("Calling ApierV1.GetCacheStats expected: %v, received: %v", expectedStats, rcvStats) } -} +}*/ // Simply kill the engine after we are done with tests within this file func TestApierStopEngine(t *testing.T) { diff --git a/apier/v1/derivedcharging.go b/apier/v1/derivedcharging.go index 03a96a2fd..ccaae69a1 100644 --- a/apier/v1/derivedcharging.go +++ b/apier/v1/derivedcharging.go @@ -76,7 +76,7 @@ func (self *ApierV1) SetDerivedChargers(attrs AttrSetDerivedChargers, reply *str if err := self.RatingDb.SetDerivedChargers(dcKey, attrs.DerivedChargers); err != nil { return utils.NewErrServerError(err) } - if err := self.RatingDb.CachePrefixValues(map[string][]string{ + if err := self.RatingDb.CacheRatingPrefixValues(map[string][]string{ utils.DERIVEDCHARGERS_PREFIX: []string{utils.DERIVEDCHARGERS_PREFIX + dcKey}, }); err != nil { return utils.NewErrServerError(err) @@ -110,7 +110,7 @@ func (self *ApierV1) RemDerivedChargers(attrs AttrRemDerivedChargers, reply *str } else { *reply = "OK" } - if err := self.RatingDb.CachePrefixes(utils.DERIVEDCHARGERS_PREFIX); err != nil { + if err := self.RatingDb.CacheRatingPrefixes(utils.DERIVEDCHARGERS_PREFIX); err != nil { return utils.NewErrServerError(err) } return nil diff --git a/apier/v2/apier.go b/apier/v2/apier.go index 80e05bf06..8d4035ffc 100644 --- a/apier/v2/apier.go +++ b/apier/v2/apier.go @@ -50,7 +50,7 @@ func (self *ApierV2) LoadRatingProfile(attrs AttrLoadRatingProfile, reply *strin if tpRpf.KeyId() != ":::" { // if has some filters ratingProfile = []string{utils.RATING_PROFILE_PREFIX + tpRpf.KeyId()} } - if err := self.RatingDb.CachePrefixValues(map[string][]string{utils.RATING_PROFILE_PREFIX: ratingProfile}); err != nil { + if err := self.RatingDb.CacheRatingPrefixValues(map[string][]string{utils.RATING_PROFILE_PREFIX: ratingProfile}); err != nil { return err } *reply = v1.OK @@ -81,7 +81,7 @@ func (self *ApierV2) LoadAccountActions(attrs AttrLoadAccountActions, reply *str } // ToDo: Get the action keys loaded by dbReader so we reload only these in cache // Need to do it before scheduler otherwise actions to run will be unknown - if err := self.RatingDb.CachePrefixes(utils.DERIVED_CHARGERS_CSV, utils.ACTION_PREFIX, utils.SHARED_GROUP_PREFIX, utils.ACC_ALIAS_PREFIX); err != nil { + if err := self.RatingDb.CacheRatingPrefixes(utils.DERIVED_CHARGERS_CSV, utils.ACTION_PREFIX, utils.SHARED_GROUP_PREFIX); err != nil { return err } if self.Sched != nil { @@ -114,7 +114,7 @@ func (self *ApierV2) LoadDerivedChargers(attrs AttrLoadDerivedChargers, reply *s if len(attrs.DerivedChargersId) != 0 { dcsChanged = []string{utils.DERIVEDCHARGERS_PREFIX + attrs.DerivedChargersId} } - if err := self.RatingDb.CachePrefixValues(map[string][]string{utils.DERIVEDCHARGERS_PREFIX: dcsChanged}); err != nil { + if err := self.RatingDb.CacheRatingPrefixValues(map[string][]string{utils.DERIVEDCHARGERS_PREFIX: dcsChanged}); err != nil { return err } *reply = v1.OK diff --git a/cmd/cgr-engine/cgr-engine.go b/cmd/cgr-engine/cgr-engine.go index e2a55c9e5..a939eb2f1 100644 --- a/cmd/cgr-engine/cgr-engine.go +++ b/cmd/cgr-engine/cgr-engine.go @@ -79,11 +79,16 @@ var ( ) func cacheData(ratingDb engine.RatingStorage, accountDb engine.AccountingStorage, doneChan chan struct{}) { - if err := ratingDb.CacheAll(); err != nil { + if err := ratingDb.CacheRatingAll(); err != nil { engine.Logger.Crit(fmt.Sprintf("Cache rating error: %s", err.Error())) exitChan <- true return } + if err := accountDb.CacheAccountingAll(); err != nil { + engine.Logger.Crit(fmt.Sprintf("Cache accounting error: %s", err.Error())) + exitChan <- true + return + } close(doneChan) } diff --git a/engine/aliases.go b/engine/aliases.go index b1b93f6cc..2233ea11c 100644 --- a/engine/aliases.go +++ b/engine/aliases.go @@ -111,9 +111,15 @@ func NewAliasHandler(accountingDb AccountingStorage) *AliasHandler { func (am *AliasHandler) SetAlias(al Alias, reply *string) error { am.mu.Lock() defer am.mu.Unlock() + // TODO: get previous from cache + if err := am.accountingDb.SetAlias(&al); err != nil { *reply = err.Error() return err + } //add to cache + aliasesChanged := []string{utils.ALIASES_PREFIX + al.GetId()} + if err := am.accountingDb.CacheAccountingPrefixValues(map[string][]string{utils.ALIASES_PREFIX: aliasesChanged}); err != nil { + return utils.NewErrServerError(err) } *reply = utils.OK return nil @@ -126,6 +132,7 @@ func (am *AliasHandler) RemoveAlias(al Alias, reply *string) error { *reply = err.Error() return err } + // remove from cache *reply = utils.OK return nil } diff --git a/general_tests/acntacts_test.go b/general_tests/acntacts_test.go index de7d646c7..77abe873a 100644 --- a/general_tests/acntacts_test.go +++ b/general_tests/acntacts_test.go @@ -53,13 +53,15 @@ ENABLE_ACNT,*enable_account,,,,,,,,,,,,,10` derivedCharges := `` cdrStats := `` users := `` + aliases := `` csvr := engine.NewTpReader(ratingDbAcntActs, acntDbAcntActs, engine.NewStringCSVStorage(',', destinations, timings, rates, destinationRates, ratingPlans, ratingProfiles, - sharedGroups, lcrs, actions, actionPlans, actionTriggers, accountActions, derivedCharges, cdrStats, users), "") + sharedGroups, lcrs, actions, actionPlans, actionTriggers, accountActions, derivedCharges, cdrStats, users, aliases), "") if err := csvr.LoadAll(); err != nil { t.Fatal(err) } csvr.WriteToDatabase(false, false) - ratingDbAcntActs.CacheAll() + ratingDbAcntActs.CacheRatingAll() + acntDbAcntActs.CacheAccountingAll() expectAcnt := &engine.Account{Id: "*out:cgrates.org:1"} if acnt, err := acntDbAcntActs.GetAccount("*out:cgrates.org:1"); err != nil { t.Error(err) diff --git a/general_tests/costs1_test.go b/general_tests/costs1_test.go index f3127ad25..486664fe8 100644 --- a/general_tests/costs1_test.go +++ b/general_tests/costs1_test.go @@ -54,7 +54,7 @@ RP_SMS1,DR_SMS_1,ALWAYS,10` *out,cgrates.org,data,*any,2012-01-01T00:00:00Z,RP_DATA1,, *out,cgrates.org,sms,*any,2012-01-01T00:00:00Z,RP_SMS1,,` csvr := engine.NewTpReader(ratingDb, acntDb, engine.NewStringCSVStorage(',', dests, timings, rates, destinationRates, ratingPlans, ratingProfiles, - "", "", "", "", "", "", "", "", ""), "") + "", "", "", "", "", "", "", "", "", ""), "") if err := csvr.LoadTimings(); err != nil { t.Fatal(err) @@ -75,7 +75,8 @@ RP_SMS1,DR_SMS_1,ALWAYS,10` t.Fatal(err) } csvr.WriteToDatabase(false, false) - ratingDb.CacheAll() + ratingDb.CacheRatingAll() + acntDb.CacheAccountingAll() if cachedRPlans := cache2go.CountEntries(utils.RATING_PLAN_PREFIX); cachedRPlans != 3 { t.Error("Wrong number of cached rating plans found", cachedRPlans) diff --git a/general_tests/datachrg1_test.go b/general_tests/datachrg1_test.go index c200bf661..c3dc5547e 100644 --- a/general_tests/datachrg1_test.go +++ b/general_tests/datachrg1_test.go @@ -45,7 +45,7 @@ DR_DATA_2,*any,RT_DATA_1c,*up,4,0,` RP_DATA1,DR_DATA_2,TM2,10` ratingProfiles := `*out,cgrates.org,data,*any,2012-01-01T00:00:00Z,RP_DATA1,,` csvr := engine.NewTpReader(ratingDb, acntDb, engine.NewStringCSVStorage(',', "", timings, rates, destinationRates, ratingPlans, ratingProfiles, - "", "", "", "", "", "", "", "", ""), "") + "", "", "", "", "", "", "", "", "", ""), "") if err := csvr.LoadTimings(); err != nil { t.Fatal(err) } @@ -62,7 +62,8 @@ RP_DATA1,DR_DATA_2,TM2,10` t.Fatal(err) } csvr.WriteToDatabase(false, false) - ratingDb.CacheAll() + ratingDb.CacheRatingAll() + acntDb.CacheAccountingAll() if cachedRPlans := cache2go.CountEntries(utils.RATING_PLAN_PREFIX); cachedRPlans != 1 { t.Error("Wrong number of cached rating plans found", cachedRPlans) diff --git a/general_tests/ddazmbl1_test.go b/general_tests/ddazmbl1_test.go index be8a38562..02df6978e 100644 --- a/general_tests/ddazmbl1_test.go +++ b/general_tests/ddazmbl1_test.go @@ -62,8 +62,9 @@ TOPUP10_AT,TOPUP10_AC1,ASAP,10` derivedCharges := `` cdrStats := `` users := `` + aliases := `` csvr := engine.NewTpReader(ratingDb, acntDb, engine.NewStringCSVStorage(',', destinations, timings, rates, destinationRates, ratingPlans, ratingProfiles, - sharedGroups, lcrs, actions, actionPlans, actionTriggers, accountActions, derivedCharges, cdrStats, users), "") + sharedGroups, lcrs, actions, actionPlans, actionTriggers, accountActions, derivedCharges, cdrStats, users, aliases), "") if err := csvr.LoadDestinations(); err != nil { t.Fatal(err) } @@ -110,7 +111,8 @@ TOPUP10_AT,TOPUP10_AC1,ASAP,10` t.Error("No account saved") } - ratingDb.CacheAll() + ratingDb.CacheRatingAll() + acntDb.CacheAccountingAll() if cachedDests := cache2go.CountEntries(utils.DESTINATION_PREFIX); cachedDests != 2 { t.Error("Wrong number of cached destinations found", cachedDests) diff --git a/general_tests/ddazmbl2_test.go b/general_tests/ddazmbl2_test.go index 29bd6f177..41a255ab7 100644 --- a/general_tests/ddazmbl2_test.go +++ b/general_tests/ddazmbl2_test.go @@ -62,8 +62,9 @@ TOPUP10_AT,TOPUP10_AC1,ASAP,10` derivedCharges := `` cdrStats := `` users := `` + aliases := `` csvr := engine.NewTpReader(ratingDb2, acntDb2, engine.NewStringCSVStorage(',', destinations, timings, rates, destinationRates, ratingPlans, ratingProfiles, - sharedGroups, lcrs, actions, actionPlans, actionTriggers, accountActions, derivedCharges, cdrStats, users), "") + sharedGroups, lcrs, actions, actionPlans, actionTriggers, accountActions, derivedCharges, cdrStats, users, aliases), "") if err := csvr.LoadDestinations(); err != nil { t.Fatal(err) } @@ -109,7 +110,8 @@ TOPUP10_AT,TOPUP10_AC1,ASAP,10` } else if acnt == nil { t.Error("No account saved") } - ratingDb2.CacheAll() + ratingDb2.CacheRatingAll() + acntDb2.CacheAccountingAll() if cachedDests := cache2go.CountEntries(utils.DESTINATION_PREFIX); cachedDests != 2 { t.Error("Wrong number of cached destinations found", cachedDests) diff --git a/general_tests/ddazmbl3_test.go b/general_tests/ddazmbl3_test.go index 512176715..6b47ebc66 100644 --- a/general_tests/ddazmbl3_test.go +++ b/general_tests/ddazmbl3_test.go @@ -60,8 +60,9 @@ RP_UK,DR_UK_Mobile_BIG5,ALWAYS,10` derivedCharges := `` cdrStats := `` users := `` + aliases := `` csvr := engine.NewTpReader(ratingDb3, acntDb3, engine.NewStringCSVStorage(',', destinations, timings, rates, destinationRates, ratingPlans, ratingProfiles, - sharedGroups, lcrs, actions, actionPlans, actionTriggers, accountActions, derivedCharges, cdrStats, users), "") + sharedGroups, lcrs, actions, actionPlans, actionTriggers, accountActions, derivedCharges, cdrStats, users, aliases), "") if err := csvr.LoadDestinations(); err != nil { t.Fatal(err) } @@ -107,7 +108,8 @@ RP_UK,DR_UK_Mobile_BIG5,ALWAYS,10` } else if acnt == nil { t.Error("No account saved") } - ratingDb3.CacheAll() + ratingDb3.CacheRatingAll() + acntDb3.CacheAccountingAll() if cachedDests := cache2go.CountEntries(utils.DESTINATION_PREFIX); cachedDests != 2 { t.Error("Wrong number of cached destinations found", cachedDests) diff --git a/general_tests/smschrg1_test.go b/general_tests/smschrg1_test.go index e391d8b2e..0e876b4c0 100644 --- a/general_tests/smschrg1_test.go +++ b/general_tests/smschrg1_test.go @@ -41,7 +41,7 @@ func TestSMSLoadCsvTpSmsChrg1(t *testing.T) { ratingPlans := `RP_SMS1,DR_SMS_1,ALWAYS,10` ratingProfiles := `*out,cgrates.org,sms,*any,2012-01-01T00:00:00Z,RP_SMS1,,` csvr := engine.NewTpReader(ratingDb, acntDb, engine.NewStringCSVStorage(',', "", timings, rates, destinationRates, ratingPlans, ratingProfiles, - "", "", "", "", "", "", "", "", ""), "") + "", "", "", "", "", "", "", "", "", ""), "") if err := csvr.LoadTimings(); err != nil { t.Fatal(err) } @@ -58,7 +58,8 @@ func TestSMSLoadCsvTpSmsChrg1(t *testing.T) { t.Fatal(err) } csvr.WriteToDatabase(false, false) - ratingDb.CacheAll() + ratingDb.CacheRatingAll() + acntDb.CacheAccountingAll() if cachedRPlans := cache2go.CountEntries(utils.RATING_PLAN_PREFIX); cachedRPlans != 1 { t.Error("Wrong number of cached rating plans found", cachedRPlans) diff --git a/general_tests/tutorial_local_test.go b/general_tests/tutorial_local_test.go index 041a25a76..abc127ed0 100644 --- a/general_tests/tutorial_local_test.go +++ b/general_tests/tutorial_local_test.go @@ -116,7 +116,7 @@ func TestTutLocalCacheStats(t *testing.T) { return } var rcvStats *utils.CacheStats - expectedStats := &utils.CacheStats{Destinations: 4, RatingPlans: 3, RatingProfiles: 8, Actions: 7, SharedGroups: 1, RatingAliases: 1, AccountAliases: 1, + expectedStats := &utils.CacheStats{Destinations: 4, RatingPlans: 3, RatingProfiles: 8, Actions: 7, SharedGroups: 1, Aliases: 1, DerivedChargers: 1, LcrProfiles: 4, CdrStats: 6, Users: 2} var args utils.AttrCacheStats if err := tutLocalRpc.Call("ApierV1.GetCacheStats", args, &rcvStats); err != nil { diff --git a/utils/apitpdata.go b/utils/apitpdata.go index 3adbde62a..afecaf679 100644 --- a/utils/apitpdata.go +++ b/utils/apitpdata.go @@ -526,11 +526,10 @@ type ApiReloadCache struct { RatingProfileIds []string ActionIds []string SharedGroupIds []string - RpAliases []string - AccAliases []string LCRIds []string DerivedChargers []string LcrProfiles []string + Aliases []string } type AttrCacheStats struct { // Add in the future filters here maybe so we avoid counting complete cache @@ -542,12 +541,11 @@ type CacheStats struct { RatingProfiles int Actions int SharedGroups int - RatingAliases int - AccountAliases int DerivedChargers int LcrProfiles int CdrStats int Users int + Aliases int } type AttrCachedItemAge struct {