local test passes

This commit is contained in:
Radu Ioan Fericean
2015-08-10 18:56:45 +03:00
parent 241306a9ae
commit 3d09334fff
17 changed files with 100 additions and 88 deletions

View File

@@ -56,7 +56,7 @@ func TestSetAccounts(t *testing.T) {
t.Error(err)
}
}
apierAcntsAcntStorage.CachePrefixes(utils.ACTION_PREFIX)
apierAcntsAcntStorage.CacheRatingPrefixes(utils.ACTION_PREFIX)
}
/*

View File

@@ -18,6 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
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
}
*/

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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 {

View File

@@ -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 {