diff --git a/config/cachecfg.go b/config/cachecfg.go index 5052a9f0e..f1bafa162 100644 --- a/config/cachecfg.go +++ b/config/cachecfg.go @@ -164,34 +164,18 @@ type CacheParamJsonCfg struct { Replicate *bool } -func diffCacheParamJsonCfg(d *CacheParamJsonCfg, v1, v2 *CacheParamCfg) *CacheParamJsonCfg { - if d == nil { - d = new(CacheParamJsonCfg) - } - if v1.Limit != v2.Limit { - d.Limit = utils.IntPointer(v2.Limit) - } - if v1.TTL != v2.TTL { - d.Ttl = utils.StringPointer(v2.TTL.String()) - } - if v1.StaticTTL != v2.StaticTTL { - d.Static_ttl = utils.BoolPointer(v2.StaticTTL) - } - if v1.Precache != v2.Precache { - d.Precache = utils.BoolPointer(v2.Precache) - } - if v1.Replicate != v2.Replicate { - d.Replicate = utils.BoolPointer(v2.Replicate) - } - return d -} - -func diffCacheParamsJsonCfg(d map[string]*CacheParamJsonCfg, v1, v2 map[string]*CacheParamCfg) map[string]*CacheParamJsonCfg { +func diffCacheParamsJsonCfg(d map[string]*CacheParamJsonCfg, v2 map[string]*CacheParamCfg) map[string]*CacheParamJsonCfg { if d == nil { d = make(map[string]*CacheParamJsonCfg) } for k, val2 := range v2 { - d[k] = diffCacheParamJsonCfg(d[k], new(CacheParamCfg), val2) + d[k] = &CacheParamJsonCfg{ + Limit: utils.IntPointer(val2.Limit), + Ttl: utils.StringPointer(val2.TTL.String()), + Static_ttl: utils.BoolPointer(val2.StaticTTL), + Precache: utils.BoolPointer(val2.Precache), + Replicate: utils.BoolPointer(val2.Replicate), + } } return d } @@ -205,7 +189,7 @@ func diffCacheJsonCfg(d *CacheJsonCfg, v1, v2 *CacheCfg) *CacheJsonCfg { if d == nil { d = new(CacheJsonCfg) } - d.Partitions = diffCacheParamsJsonCfg(d.Partitions, v1.Partitions, v2.Partitions) + d.Partitions = diffCacheParamsJsonCfg(d.Partitions, v2.Partitions) if !utils.SliceStringEqual(v1.ReplicationConns, v2.ReplicationConns) { d.Replication_conns = &v2.ReplicationConns } diff --git a/config/cachecfg_test.go b/config/cachecfg_test.go index 1a0114251..ada4788ca 100644 --- a/config/cachecfg_test.go +++ b/config/cachecfg_test.go @@ -178,65 +178,8 @@ func TestCacheCfgClone(t *testing.T) { } } -func TestDiffCacheParamJsonCfg(t *testing.T) { - var d *CacheParamJsonCfg - - v1 := &CacheParamCfg{ - Limit: 2, - TTL: 2 * time.Minute, - StaticTTL: false, - Precache: true, - Replicate: false, - } - - v2 := &CacheParamCfg{ - Limit: 3, - TTL: 5 * time.Minute, - StaticTTL: true, - Precache: false, - Replicate: true, - } - - expected := &CacheParamJsonCfg{ - Limit: utils.IntPointer(3), - Ttl: utils.StringPointer("5m0s"), - Static_ttl: utils.BoolPointer(true), - Precache: utils.BoolPointer(false), - Replicate: utils.BoolPointer(true), - } - - rcv := diffCacheParamJsonCfg(d, v1, v2) - if !reflect.DeepEqual(rcv, expected) { - t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv)) - } - - v2_2 := v1 - expected2 := &CacheParamJsonCfg{ - Limit: nil, - Ttl: nil, - Static_ttl: nil, - Precache: nil, - Replicate: nil, - } - rcv = diffCacheParamJsonCfg(d, v1, v2_2) - if !reflect.DeepEqual(rcv, expected2) { - t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected2), utils.ToJSON(rcv)) - } -} - func TestDiffCacheParamsJsonCfg(t *testing.T) { var d map[string]*CacheParamJsonCfg - - v1 := map[string]*CacheParamCfg{ - "CACHE_1": { - Limit: 2, - TTL: 2 * time.Minute, - StaticTTL: false, - Precache: true, - Replicate: false, - }, - } - v2 := map[string]*CacheParamCfg{ "CACHE_2": { Limit: 3, @@ -252,27 +195,35 @@ func TestDiffCacheParamsJsonCfg(t *testing.T) { Limit: utils.IntPointer(3), Ttl: utils.StringPointer("5m0s"), Static_ttl: utils.BoolPointer(true), - Precache: nil, + Precache: utils.BoolPointer(false), Replicate: utils.BoolPointer(true), }, } - rcv := diffCacheParamsJsonCfg(d, v1, v2) + rcv := diffCacheParamsJsonCfg(d, v2) if !reflect.DeepEqual(rcv, expected) { t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv)) } - v2_2 := v1 - expected2 := map[string]*CacheParamJsonCfg{ + v2_2 := map[string]*CacheParamCfg{ "CACHE_1": { - Limit: nil, - Ttl: nil, - Static_ttl: nil, - Precache: nil, - Replicate: nil, + Limit: 2, + TTL: 2 * time.Minute, + StaticTTL: false, + Precache: true, + Replicate: false, }, } - rcv = diffCacheParamsJsonCfg(d, v1, v2_2) + expected2 := map[string]*CacheParamJsonCfg{ + "CACHE_1": { + Limit: utils.IntPointer(2), + Ttl: utils.StringPointer("2m0s"), + Static_ttl: utils.BoolPointer(false), + Precache: utils.BoolPointer(true), + Replicate: utils.BoolPointer(false), + }, + } + rcv = diffCacheParamsJsonCfg(d, v2_2) if !reflect.DeepEqual(rcv, expected2) { t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected2), utils.ToJSON(rcv)) } @@ -329,11 +280,11 @@ func TestDiffCacheJsonCfg(t *testing.T) { expected2 := &CacheJsonCfg{ Partitions: map[string]*CacheParamJsonCfg{ "CACHE_2": { - Limit: nil, - Ttl: nil, - Static_ttl: nil, - Precache: nil, - Replicate: nil, + Limit: utils.IntPointer(2), + Ttl: utils.StringPointer("2m0s"), + Static_ttl: utils.BoolPointer(false), + Precache: utils.BoolPointer(true), + Replicate: utils.BoolPointer(false), }, }, Replication_conns: nil, diff --git a/config/eescfg.go b/config/eescfg.go index 8a2eba63d..06e8ed170 100644 --- a/config/eescfg.go +++ b/config/eescfg.go @@ -448,7 +448,7 @@ func diffEEsJsonCfg(d *EEsJsonCfg, v1, v2 *EEsCfg, separator string) *EEsJsonCfg if !utils.SliceStringEqual(v1.AttributeSConns, v2.AttributeSConns) { d.Attributes_conns = utils.SliceStringPointer(getInternalJSONConns(v2.AttributeSConns)) } - d.Cache = diffCacheParamsJsonCfg(d.Cache, v1.Cache, v2.Cache) + d.Cache = diffCacheParamsJsonCfg(d.Cache, v2.Cache) d.Exporters = diffEventExportersJsonCfg(d.Exporters, v1.Exporters, v2.Exporters, separator) return d } diff --git a/config/eescfg_test.go b/config/eescfg_test.go index bea113586..7751a718c 100644 --- a/config/eescfg_test.go +++ b/config/eescfg_test.go @@ -1112,7 +1112,11 @@ func TestDiffEEsJsonCfg(t *testing.T) { Attributes_conns: &[]string{"*birpc"}, Cache: map[string]*CacheParamJsonCfg{ "CACHE_1": { - Limit: utils.IntPointer(1), + Limit: utils.IntPointer(1), + Ttl: utils.StringPointer("0s"), + Static_ttl: utils.BoolPointer(false), + Precache: utils.BoolPointer(false), + Replicate: utils.BoolPointer(false), }, }, Exporters: &[]*EventExporterJsonCfg{ @@ -1131,7 +1135,13 @@ func TestDiffEEsJsonCfg(t *testing.T) { v1 = v2 expected = &EEsJsonCfg{ Cache: map[string]*CacheParamJsonCfg{ - "CACHE_1": {}, + "CACHE_1": { + Limit: utils.IntPointer(1), + Ttl: utils.StringPointer("0s"), + Static_ttl: utils.BoolPointer(false), + Precache: utils.BoolPointer(false), + Replicate: utils.BoolPointer(false), + }, }, Exporters: &[]*EventExporterJsonCfg{ {