New cacheCfg params

This commit is contained in:
adi
2022-09-12 17:49:03 +03:00
committed by Dan Christian Bogos
parent 72fc4b6f18
commit 1bcf5f7f91
9 changed files with 164 additions and 126 deletions

View File

@@ -33,6 +33,7 @@ type CacheParamCfg struct {
TTL time.Duration
StaticTTL bool
Precache bool
Remote bool
Replicate bool
}
@@ -49,6 +50,9 @@ func (cParam *CacheParamCfg) loadFromJSONCfg(jsnCfg *CacheParamJsonCfg) (err err
if jsnCfg.Precache != nil {
cParam.Precache = *jsnCfg.Precache
}
if jsnCfg.Remote != nil {
cParam.Remote = *jsnCfg.Remote
}
if jsnCfg.Replicate != nil {
cParam.Replicate = *jsnCfg.Replicate
}
@@ -64,6 +68,7 @@ func (cParam *CacheParamCfg) AsMapInterface() (initialMP map[string]interface{})
utils.LimitCfg: cParam.Limit,
utils.StaticTTLCfg: cParam.StaticTTL,
utils.PrecacheCfg: cParam.Precache,
utils.RemoteCfg: cParam.Remote,
utils.ReplicateCfg: cParam.Replicate,
}
if cParam.TTL != 0 {
@@ -79,6 +84,7 @@ func (cParam CacheParamCfg) Clone() (cln *CacheParamCfg) {
TTL: cParam.TTL,
StaticTTL: cParam.StaticTTL,
Precache: cParam.Precache,
Remote: cParam.Remote,
Replicate: cParam.Replicate,
}
}
@@ -87,6 +93,7 @@ func (cParam CacheParamCfg) Clone() (cln *CacheParamCfg) {
type CacheCfg struct {
Partitions map[string]*CacheParamCfg
ReplicationConns []string
RemoteConns []string
}
// loadCacheCfg loads the Cache section of the configuration
@@ -118,6 +125,12 @@ func (cCfg *CacheCfg) loadFromJSONCfg(jsnCfg *CacheJsonCfg) (err error) {
cCfg.ReplicationConns[idx] = connID
}
}
if jsnCfg.Remote_conns != nil {
cCfg.RemoteConns = make([]string, len(*jsnCfg.Remote_conns))
for idx, connID := range *jsnCfg.Remote_conns {
cCfg.RemoteConns[idx] = connID
}
}
return nil
}
@@ -144,6 +157,9 @@ func (cCfg CacheCfg) AsMapInterface(string) interface{} {
if cCfg.ReplicationConns != nil {
mp[utils.ReplicationConnsCfg] = cCfg.ReplicationConns
}
if cCfg.RemoteConns != nil {
mp[utils.RemoteConnsCfg] = cCfg.RemoteConns
}
return mp
}
@@ -161,6 +177,9 @@ func (cCfg CacheCfg) Clone() (cln *CacheCfg) {
if cCfg.ReplicationConns != nil {
cln.ReplicationConns = utils.CloneStringSlice(cCfg.ReplicationConns)
}
if cCfg.RemoteConns != nil {
cln.RemoteConns = utils.CloneStringSlice(cCfg.RemoteConns)
}
return
}
@@ -169,6 +188,7 @@ type CacheParamJsonCfg struct {
Ttl *string
Static_ttl *bool
Precache *bool
Remote *bool
Replicate *bool
}
@@ -182,6 +202,7 @@ func diffCacheParamsJsonCfg(d map[string]*CacheParamJsonCfg, v2 map[string]*Cach
Ttl: utils.StringPointer(val2.TTL.String()),
Static_ttl: utils.BoolPointer(val2.StaticTTL),
Precache: utils.BoolPointer(val2.Precache),
Remote: utils.BoolPointer(val2.Remote),
Replicate: utils.BoolPointer(val2.Replicate),
}
}
@@ -191,6 +212,7 @@ func diffCacheParamsJsonCfg(d map[string]*CacheParamJsonCfg, v2 map[string]*Cach
type CacheJsonCfg struct {
Partitions map[string]*CacheParamJsonCfg
Replication_conns *[]string
Remote_conns *[]string
}
func diffCacheJsonCfg(d *CacheJsonCfg, v1, v2 *CacheCfg) *CacheJsonCfg {
@@ -201,5 +223,8 @@ func diffCacheJsonCfg(d *CacheJsonCfg, v1, v2 *CacheCfg) *CacheJsonCfg {
if !utils.SliceStringEqual(v1.ReplicationConns, v2.ReplicationConns) {
d.Replication_conns = &v2.ReplicationConns
}
if !utils.SliceStringEqual(v1.RemoteConns, v2.RemoteConns) {
d.Remote_conns = &v2.RemoteConns
}
return d
}

View File

@@ -137,13 +137,13 @@ func TestCachesCfgAsMapInterface1(t *testing.T) {
cfgJSONStr := `{
"caches":{
"partitions": {
"*dispatchers": {"limit": -1, "ttl": "", "static_ttl": false, "precache": true, "replicate": true},
"*dispatchers": {"limit": -1, "ttl": "", "static_ttl": false, "precache": true, "remote":false, "replicate": true},
},
},
}`
eMap := map[string]interface{}{
utils.PartitionsCfg: map[string]interface{}{
utils.MetaDispatchers: map[string]interface{}{"limit": -1, "static_ttl": false, "precache": true, "replicate": true},
utils.MetaDispatchers: map[string]interface{}{"limit": -1, "static_ttl": false, "precache": true, "remote": false, "replicate": true},
},
utils.ReplicationConnsCfg: []string{},
}
@@ -186,6 +186,7 @@ func TestDiffCacheParamsJsonCfg(t *testing.T) {
TTL: 5 * time.Minute,
StaticTTL: true,
Precache: false,
Remote: true,
Replicate: true,
},
}
@@ -196,6 +197,7 @@ func TestDiffCacheParamsJsonCfg(t *testing.T) {
Ttl: utils.StringPointer("5m0s"),
Static_ttl: utils.BoolPointer(true),
Precache: utils.BoolPointer(false),
Remote: utils.BoolPointer(true),
Replicate: utils.BoolPointer(true),
},
}
@@ -220,6 +222,7 @@ func TestDiffCacheParamsJsonCfg(t *testing.T) {
Ttl: utils.StringPointer("2m0s"),
Static_ttl: utils.BoolPointer(false),
Precache: utils.BoolPointer(true),
Remote: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false),
},
}
@@ -239,6 +242,7 @@ func TestDiffCacheJsonCfg(t *testing.T) {
TTL: 2 * time.Minute,
StaticTTL: false,
Precache: true,
Remote: false,
Replicate: false,
},
},
@@ -252,6 +256,7 @@ func TestDiffCacheJsonCfg(t *testing.T) {
TTL: 5 * time.Minute,
StaticTTL: true,
Precache: false,
Remote: true,
Replicate: true,
},
},
@@ -265,6 +270,7 @@ func TestDiffCacheJsonCfg(t *testing.T) {
Ttl: utils.StringPointer("5m0s"),
Static_ttl: utils.BoolPointer(true),
Precache: utils.BoolPointer(false),
Remote: utils.BoolPointer(true),
Replicate: utils.BoolPointer(true),
},
},
@@ -284,6 +290,7 @@ func TestDiffCacheJsonCfg(t *testing.T) {
Ttl: utils.StringPointer("2m0s"),
Static_ttl: utils.BoolPointer(false),
Precache: utils.BoolPointer(true),
Remote: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false),
},
},

View File

@@ -225,51 +225,52 @@ const CGRATES_CFG_JSON = `
"caches":{
"partitions": {
"*resource_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control resource profiles caching
"*resources": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control resources caching
"*event_resources": {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // matching resources to events
"*statqueue_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // statqueue profiles
"*statqueues": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // statqueues with metrics
"*threshold_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control threshold profiles caching
"*thresholds": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control thresholds caching
"*filters": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control filters caching
"*route_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control route profile caching
"*attribute_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control attribute profile caching
"*charger_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control charger profile caching
"*dispatcher_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control dispatcher profile caching
"*dispatcher_hosts": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control dispatcher hosts caching
"*rate_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control rate profile caching
"*action_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control action profile caching
"*accounts": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control account profile caching
"*resource_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control resource filter indexes caching
"*stat_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control stat filter indexes caching
"*threshold_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control threshold filter indexes caching
"*route_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control route filter indexes caching
"*attribute_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control attribute filter indexes caching
"*charger_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control charger filter indexes caching
"*dispatcher_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control dispatcher filter indexes caching
"*rate_profile_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control rate profile filter indexes caching
"*rate_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control rate filter indexes caching
"*action_profile_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control action profile filter indexes caching
"*account_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control coount profile filter indexes caching
"*reverse_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control reverse filter indexes caching used only for set and remove filters
"*dispatcher_routes": {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control dispatcher routes caching
"*dispatcher_loads": {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control dispatcher load( in case of *ratio ConnParams is present)
"*dispatchers": {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // control dispatcher interface
"*diameter_messages": {"limit": -1, "ttl": "3h", "static_ttl": false, "replicate": false}, // diameter messages caching
"*rpc_responses": {"limit": 0, "ttl": "2s", "static_ttl": false, "replicate": false}, // RPC responses caching
"*closed_sessions": {"limit": -1, "ttl": "10s", "static_ttl": false, "replicate": false}, // closed sessions cached for CDRs
"*event_charges": {"limit": 0, "ttl": "10s", "static_ttl": false, "replicate": false}, // events proccessed by ChargerS
"*cdr_ids": {"limit": -1, "ttl": "10m", "static_ttl": false, "replicate": false}, // protects CDRs against double-charging
"*load_ids": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "replicate": false}, // control the load_ids for items
"*rpc_connections": {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // RPC connections caching
"*uch": {"limit": -1, "ttl": "3h", "static_ttl": false, "replicate": false}, // User cache
"*stir": {"limit": -1, "ttl": "3h", "static_ttl": false, "replicate": false}, // stirShaken cache keys
"*apiban":{"limit": -1, "ttl": "2m", "static_ttl": false, "replicate": false},
"*caps_events": {"limit": -1, "ttl": "", "static_ttl": false, "replicate": false}, // caps cached samples
"*replication_hosts": {"limit": 0, "ttl": "", "static_ttl": false, "replicate": false}, // the replication hosts cache(used when replication_filtered is enbled)
"*resource_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control resource profiles caching
"*resources": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control resources caching
"*event_resources": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // matching resources to events
"*statqueue_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // statqueue profiles
"*statqueues": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // statqueues with metrics
"*threshold_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control threshold profiles caching
"*thresholds": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control thresholds caching
"*filters": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control filters caching
"*route_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control route profile caching
"*attribute_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control attribute profile caching
"*charger_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control charger profile caching
"*dispatcher_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control dispatcher profile caching
"*dispatcher_hosts": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control dispatcher hosts caching
"*rate_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control rate profile caching
"*action_profiles": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control action profile caching
"*accounts": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control account profile caching
"*resource_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control resource filter indexes caching
"*stat_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control stat filter indexes caching
"*threshold_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control threshold filter indexes caching
"*route_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control route filter indexes caching
"*attribute_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control attribute filter indexes caching
"*charger_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control charger filter indexes caching
"*dispatcher_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control dispatcher filter indexes caching
"*rate_profile_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control rate profile filter indexes caching
"*rate_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control rate filter indexes caching
"*action_profile_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control action profile filter indexes caching
"*account_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control coount profile filter indexes caching
"*reverse_filter_indexes" : {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control reverse filter indexes caching used only for set and remove filters
"*dispatcher_routes": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control dispatcher routes caching
"*dispatcher_loads": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control dispatcher load( in case of *ratio ConnParams is present)
"*dispatchers": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // control dispatcher interface
"*diameter_messages": {"limit": -1, "ttl": "3h", "static_ttl": false, "remote":false, "replicate": false}, // diameter messages caching
"*rpc_responses": {"limit": 0, "ttl": "2s", "static_ttl": false, "remote":false, "replicate": false}, // RPC responses caching
"*closed_sessions": {"limit": -1, "ttl": "10s", "static_ttl": false, "remote":false, "replicate": false}, // closed sessions cached for CDRs
"*event_charges": {"limit": 0, "ttl": "10s", "static_ttl": false, "remote":false, "replicate": false}, // events proccessed by ChargerS
"*cdr_ids": {"limit": -1, "ttl": "10m", "static_ttl": false, "remote":false, "replicate": false}, // protects CDRs against double-charging
"*load_ids": {"limit": -1, "ttl": "", "static_ttl": false, "precache": false, "remote":false, "replicate": false}, // control the load_ids for items
"*rpc_connections": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // RPC connections caching
"*uch": {"limit": -1, "ttl": "3h", "static_ttl": false, "remote":false, "replicate": false}, // User cache
"*stir": {"limit": -1, "ttl": "3h", "static_ttl": false, "remote":false, "replicate": false}, // stirShaken cache keys
"*apiban":{"limit": -1, "ttl": "2m", "static_ttl": false, "remote":false, "replicate": false},
"*caps_events": {"limit": -1, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // caps cached samples
"*replication_hosts": {"limit": 0, "ttl": "", "static_ttl": false, "remote":false, "replicate": false}, // the replication hosts cache(used when replication_filtered is enbled)
},
"replication_conns": [],
"remote_conns": [], // the conns that are queried when the items are not found in cache
},

View File

@@ -93,136 +93,137 @@ func TestCacheJsonCfg(t *testing.T) {
Partitions: map[string]*CacheParamJsonCfg{
utils.CacheResourceProfiles: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Precache: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
Precache: utils.BoolPointer(false), Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheResources: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Precache: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
Precache: utils.BoolPointer(false), Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheEventResources: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheStatQueueProfiles: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Precache: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
Precache: utils.BoolPointer(false), Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheStatQueues: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Precache: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
Precache: utils.BoolPointer(false), Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheThresholdProfiles: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Precache: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
Precache: utils.BoolPointer(false), Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheThresholds: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Precache: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
Precache: utils.BoolPointer(false), Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheFilters: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Precache: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
Precache: utils.BoolPointer(false), Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheRouteProfiles: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Precache: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
Precache: utils.BoolPointer(false), Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheAttributeProfiles: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Precache: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
Precache: utils.BoolPointer(false), Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheChargerProfiles: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Precache: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
Precache: utils.BoolPointer(false), Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheDispatcherProfiles: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Precache: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
Precache: utils.BoolPointer(false), Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheRateProfiles: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Precache: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
Precache: utils.BoolPointer(false), Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheActionProfiles: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Precache: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
Precache: utils.BoolPointer(false), Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheAccounts: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Precache: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
Precache: utils.BoolPointer(false), Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheDispatcherHosts: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Precache: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
Precache: utils.BoolPointer(false), Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheResourceFilterIndexes: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheStatFilterIndexes: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheThresholdFilterIndexes: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheRouteFilterIndexes: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheAttributeFilterIndexes: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheChargerFilterIndexes: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheDispatcherFilterIndexes: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheRateProfilesFilterIndexes: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheRateFilterIndexes: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheActionProfilesFilterIndexes: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheAccountsFilterIndexes: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheReverseFilterIndexes: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheDispatcherRoutes: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheDispatcherLoads: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheDispatchers: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheDiameterMessages: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer("3h"), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheRPCResponses: {Limit: utils.IntPointer(0),
Ttl: utils.StringPointer("2s"), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheClosedSessions: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer("10s"), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheEventCharges: {Limit: utils.IntPointer(0),
Ttl: utils.StringPointer("10s"), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheCDRIDs: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer("10m"), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheLoadIDs: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Precache: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
Precache: utils.BoolPointer(false), Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheRPCConnections: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheUCH: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer("3h"), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheSTIR: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer("3h"), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheCapsEvents: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false),
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false),
},
utils.MetaAPIBan: {Limit: utils.IntPointer(-1),
Ttl: utils.StringPointer("2m"), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
utils.CacheReplicationHosts: {Limit: utils.IntPointer(0),
Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false)},
Remote: utils.BoolPointer(false), Replicate: utils.BoolPointer(false)},
},
Replication_conns: &[]string{},
Remote_conns: &[]string{},
}
dfCgrJSONCfg, err := NewCgrJsonCfgFromBytes([]byte(CGRATES_CFG_JSON))
if err != nil {

File diff suppressed because one or more lines are too long

View File

@@ -642,6 +642,7 @@ func TestEEsCfgAsMapInterface(t *testing.T) {
utils.MetaFileCSV: map[string]interface{}{
utils.LimitCfg: -2,
utils.PrecacheCfg: false,
utils.RemoteCfg: false,
utils.ReplicateCfg: false,
utils.TTLCfg: "1s",
utils.StaticTTLCfg: false,
@@ -1103,6 +1104,7 @@ func TestDiffEEsJsonCfg(t *testing.T) {
Limit: utils.IntPointer(1),
Ttl: utils.StringPointer("0s"),
Static_ttl: utils.BoolPointer(false),
Remote: utils.BoolPointer(false),
Precache: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false),
},
@@ -1128,6 +1130,7 @@ func TestDiffEEsJsonCfg(t *testing.T) {
Ttl: utils.StringPointer("0s"),
Static_ttl: utils.BoolPointer(false),
Precache: utils.BoolPointer(false),
Remote: utils.BoolPointer(false),
Replicate: utils.BoolPointer(false),
},
},

View File

@@ -2089,18 +2089,18 @@ func TestLoaderCfgAsMapInterfaceCase1(t *testing.T) {
},
},
utils.CacheCfg: map[string]interface{}{
utils.MetaFilters: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaAttributes: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaResources: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaStats: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaThresholds: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaRoutes: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaChargers: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaDispatchers: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaDispatcherHosts: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaRateProfiles: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaActionProfiles: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaAccounts: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaFilters: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.RemoteCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaAttributes: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.RemoteCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaResources: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.RemoteCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaStats: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.RemoteCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaThresholds: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.RemoteCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaRoutes: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.RemoteCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaChargers: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.RemoteCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaDispatchers: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.RemoteCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaDispatcherHosts: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.RemoteCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaRateProfiles: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.RemoteCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaActionProfiles: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.RemoteCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
utils.MetaAccounts: map[string]interface{}{utils.LimitCfg: -1, utils.TTLCfg: "5s", utils.PrecacheCfg: false, utils.RemoteCfg: false, utils.ReplicateCfg: false, utils.StaticTTLCfg: false},
},
},
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long