Update apiercfg AsMapInterface method

This commit is contained in:
porosnicuadrian
2020-09-11 12:27:11 +03:00
committed by Dan Christian Bogos
parent e2db68d966
commit 7fc624a45e
3 changed files with 75 additions and 70 deletions

View File

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

View File

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

View File

@@ -1878,6 +1878,7 @@ const (
MaxParallelConnsCfg = "max_parallel_conns"
ConcurrentRequestsCfg = "concurrent_requests"
ConcurrentStrategyCfg = "concurrent_strategy"
EEsConnsCfg = "ees_conns"
)
// StorDbCfg