From 7d2f784a9550e455792f077afe1593bfd92f8c4e Mon Sep 17 00:00:00 2001 From: TeoV Date: Fri, 10 Apr 2020 17:44:58 +0300 Subject: [PATCH] Process "replications_conns" after "partitions" for cache config --- config/cachecfg.go | 20 ++++++++++---------- config/config_json_test.go | 2 +- config/config_test.go | 2 +- config/libconfig_json.go | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/config/cachecfg.go b/config/cachecfg.go index 211a7d6c2..3b38f6f13 100755 --- a/config/cachecfg.go +++ b/config/cachecfg.go @@ -58,23 +58,14 @@ func (cParam *CacheParamCfg) loadFromJsonCfg(jsnCfg *CacheParamJsonCfg) error { // CacheCfg used to store the cache config type CacheCfg struct { - ReplicationConns []string Partitions map[string]*CacheParamCfg + ReplicationConns []string } func (cCfg *CacheCfg) loadFromJsonCfg(jsnCfg *CacheJsonCfg) (err error) { if jsnCfg == nil { return } - if jsnCfg.Replication_conns != nil { - cCfg.ReplicationConns = make([]string, len(*jsnCfg.Replication_conns)) - for idx, connID := range *jsnCfg.Replication_conns { - if connID == utils.MetaInternal { - return fmt.Errorf("replication connection ID needs to be different than *internal") - } - cCfg.ReplicationConns[idx] = connID - } - } if jsnCfg.Partitions != nil { for kJsn, vJsn := range *jsnCfg.Partitions { val := new(CacheParamCfg) @@ -84,6 +75,15 @@ func (cCfg *CacheCfg) loadFromJsonCfg(jsnCfg *CacheJsonCfg) (err error) { cCfg.Partitions[kJsn] = val } } + if jsnCfg.Replication_conns != nil { + cCfg.ReplicationConns = make([]string, len(*jsnCfg.Replication_conns)) + for idx, connID := range *jsnCfg.Replication_conns { + if connID == utils.MetaInternal { + return fmt.Errorf("replication connection ID needs to be different than *internal") + } + cCfg.ReplicationConns[idx] = connID + } + } return nil } diff --git a/config/config_json_test.go b/config/config_json_test.go index 365a2916a..95429bc7a 100755 --- a/config/config_json_test.go +++ b/config/config_json_test.go @@ -72,7 +72,6 @@ func TestDfGeneralJsonCfg(t *testing.T) { func TestCacheJsonCfg(t *testing.T) { eCfg := &CacheJsonCfg{ - Replication_conns: &[]string{}, Partitions: &map[string]*CacheParamJsonCfg{ utils.CacheDestinations: &CacheParamJsonCfg{Limit: utils.IntPointer(-1), Ttl: utils.StringPointer(""), Static_ttl: utils.BoolPointer(false), @@ -174,6 +173,7 @@ func TestCacheJsonCfg(t *testing.T) { utils.CacheUCH: &CacheParamJsonCfg{Limit: utils.IntPointer(-1), Ttl: utils.StringPointer("3h"), Static_ttl: utils.BoolPointer(false)}, }, + Replication_conns: &[]string{}, } if gCfg, err := dfCgrJsonCfg.CacheJsonCfg(); err != nil { diff --git a/config/config_test.go b/config/config_test.go index f4f15db83..116a1a8f7 100755 --- a/config/config_test.go +++ b/config/config_test.go @@ -630,7 +630,6 @@ func TestCgrCfgJSONDefaultsSMGenericCfg(t *testing.T) { func TestCgrCfgJSONDefaultsCacheCFG(t *testing.T) { eCacheCfg := &CacheCfg{ - ReplicationConns: []string{}, Partitions: map[string]*CacheParamCfg{ utils.CacheDestinations: &CacheParamCfg{Limit: -1, TTL: time.Duration(0), StaticTTL: false, Precache: false}, @@ -709,6 +708,7 @@ func TestCgrCfgJSONDefaultsCacheCFG(t *testing.T) { utils.CacheUCH: &CacheParamCfg{Limit: -1, TTL: time.Duration(3 * time.Hour), StaticTTL: false}, }, + ReplicationConns: []string{}, } if !reflect.DeepEqual(eCacheCfg, cgrCfg.CacheCfg()) { diff --git a/config/libconfig_json.go b/config/libconfig_json.go index d5928345d..db86d9e82 100755 --- a/config/libconfig_json.go +++ b/config/libconfig_json.go @@ -282,8 +282,8 @@ type CacheParamJsonCfg struct { } type CacheJsonCfg struct { - Replication_conns *[]string Partitions *map[string]*CacheParamJsonCfg + Replication_conns *[]string } // SM-Kamailio config section