From 7fc624a45ed91414de27d52daa6f1ff9507887ee Mon Sep 17 00:00:00 2001 From: porosnicuadrian Date: Fri, 11 Sep 2020 12:27:11 +0300 Subject: [PATCH] Update apiercfg AsMapInterface method --- config/apiercfg.go | 72 ++++++++++++++++++++++++----------------- config/apiercfg_test.go | 72 ++++++++++++++++++----------------------- utils/consts.go | 1 + 3 files changed, 75 insertions(+), 70 deletions(-) diff --git a/config/apiercfg.go b/config/apiercfg.go index 4a895f076..55942c30f 100644 --- a/config/apiercfg.go +++ b/config/apiercfg.go @@ -84,44 +84,56 @@ func (aCfg *ApierCfg) loadFromJsonCfg(jsnCfg *ApierJsonCfg) (err error) { } } } - return nil } -func (aCfg *ApierCfg) AsMapInterface() map[string]interface{} { - cachesConns := make([]string, len(aCfg.CachesConns)) - for i, item := range aCfg.CachesConns { - buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches) - if item == buf { - cachesConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaCaches, utils.EmptyString) - } else { - cachesConns[i] = item +func (aCfg *ApierCfg) AsMapInterface() (initialMap map[string]interface{}) { + initialMap = map[string]interface{}{ + utils.EnabledCfg: aCfg.Enabled, + } + if aCfg.CachesConns != nil { + cachesConns := make([]string, len(aCfg.CachesConns)) + for i, item := range aCfg.CachesConns { + if item == utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches) { + cachesConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaCaches, utils.EmptyString) + } else { + cachesConns[i] = item + } } + initialMap[utils.CachesConnsCfg] = cachesConns } - schedulerConns := make([]string, len(aCfg.SchedulerConns)) - for i, item := range aCfg.SchedulerConns { - buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaScheduler) - if item == buf { - schedulerConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaScheduler, utils.EmptyString) - } else { - schedulerConns[i] = item + if aCfg.SchedulerConns != nil { + schedulerConns := make([]string, len(aCfg.SchedulerConns)) + for i, item := range aCfg.SchedulerConns { + if item == utils.ConcatenatedKey(utils.MetaInternal, utils.MetaScheduler) { + schedulerConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaScheduler, utils.EmptyString) + } else { + schedulerConns[i] = item + } } + initialMap[utils.SchedulerConnsCfg] = schedulerConns } - attributeSConns := make([]string, len(aCfg.AttributeSConns)) - for i, item := range aCfg.AttributeSConns { - buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes) - if item == buf { - attributeSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaAttributes, utils.EmptyString) - } else { - attributeSConns[i] = item + if aCfg.AttributeSConns != nil { + attributeSConns := make([]string, len(aCfg.AttributeSConns)) + for i, item := range aCfg.AttributeSConns { + if item == utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes) { + attributeSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaAttributes, utils.EmptyString) + } else { + attributeSConns[i] = item + } } + initialMap[utils.AttributeSConnsCfg] = attributeSConns } - - return map[string]interface{}{ - utils.EnabledCfg: aCfg.Enabled, - utils.CachesConnsCfg: cachesConns, - utils.SchedulerConnsCfg: schedulerConns, - utils.AttributeSConnsCfg: attributeSConns, + if aCfg.EEsConns != nil { + eesConns := make([]string, len(aCfg.EEsConns)) + for i, item := range aCfg.EEsConns { + if item == utils.ConcatenatedKey(utils.MetaInternal, utils.MetaEEs) { + eesConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaEEs, utils.EmptyString) + } else { + eesConns[i] = item + } + } + initialMap[utils.EEsConnsCfg] = eesConns } - + return } diff --git a/config/apiercfg_test.go b/config/apiercfg_test.go index db8869e98..f9fb2a0af 100644 --- a/config/apiercfg_test.go +++ b/config/apiercfg_test.go @@ -61,53 +61,45 @@ func TestApierCfgloadFromJsonCfg(t *testing.T) { } } -func TestApierCfgAsMapInterface(t *testing.T) { - var aCfg ApierCfg +func TestApierCfgAsMapInterface1(t *testing.T) { cfgJSONStr := `{ "apiers": { - "enabled": false, "caches_conns":[], - "scheduler_conns": [], - "attributes_conns": [], }, }` + sls := make([]string, 0) eMap := map[string]interface{}{ - "enabled": false, - "caches_conns": []string{}, - "scheduler_conns": []string{}, - "attributes_conns": []string{}, + utils.EnabledCfg: false, + utils.CachesConnsCfg: sls, + utils.SchedulerConnsCfg: sls, + utils.AttributeSConnsCfg: sls, + utils.EEsConnsCfg: sls, } - if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil { + if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil { t.Error(err) - } else if jsnaCfg, err := jsnCfg.ApierCfgJson(); err != nil { - t.Error(err) - } else if err = aCfg.loadFromJsonCfg(jsnaCfg); err != nil { - t.Error(err) - } else if rcv := aCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) { - t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv)) - } - - cfgJSONStr = `{ - "apiers": { - "enabled": false, - "caches_conns":["*internal"], - "scheduler_conns": ["*internal"], - "attributes_conns": ["*internal"], - }, - }` - eMap = map[string]interface{}{ - "enabled": false, - "caches_conns": []string{"*internal"}, - "scheduler_conns": []string{"*internal"}, - "attributes_conns": []string{"*internal"}, - } - if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil { - t.Error(err) - } else if jsnaCfg, err := jsnCfg.ApierCfgJson(); err != nil { - t.Error(err) - } else if err = aCfg.loadFromJsonCfg(jsnaCfg); err != nil { - t.Error(err) - } else if rcv := aCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) { - t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv)) + } else if newMap := cgrCfg.apier.AsMapInterface(); !reflect.DeepEqual(newMap, eMap) { + t.Errorf("Expected %+v, recived %+v", eMap, newMap) + } +} + +func TestApierCfgAsMapInterface2(t *testing.T) { + myJSONStr := `{ + "apiers": { + "enabled": true, + "attributes_conns": ["conn1", "conn2"], + "ees_conns": ["*internal"], + }, +}` + expectedMap := map[string]interface{}{ + utils.EnabledCfg: true, + utils.CachesConnsCfg: []string{"*internal"}, + utils.SchedulerConnsCfg: []string{}, + utils.AttributeSConnsCfg: []string{"conn1", "conn2"}, + utils.EEsConnsCfg: []string{"*internal"}, + } + if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(myJSONStr); err != nil { + t.Error(err) + } else if newMap := cgrCfg.apier.AsMapInterface(); !reflect.DeepEqual(expectedMap, newMap) { + t.Errorf("Expected %+v, recived %+v", expectedMap, newMap) } } diff --git a/utils/consts.go b/utils/consts.go index ba97311e8..1f5095f41 100755 --- a/utils/consts.go +++ b/utils/consts.go @@ -1878,6 +1878,7 @@ const ( MaxParallelConnsCfg = "max_parallel_conns" ConcurrentRequestsCfg = "concurrent_requests" ConcurrentStrategyCfg = "concurrent_strategy" + EEsConnsCfg = "ees_conns" ) // StorDbCfg