Updated diameter AsMapInterface method

This commit is contained in:
porosnicuadrian
2020-09-16 16:35:41 +03:00
committed by Dan Christian Bogos
parent bebd8f8115
commit 34ce1addab
5 changed files with 70 additions and 42 deletions

View File

@@ -1601,11 +1601,11 @@ func (cfg *CGRConfig) AsMapInterface(separator string) map[string]interface{} {
}
return map[string]interface{}{
utils.LoaderCfg: loaderCfg,
utils.HttpAgentCfg: httpAgentCfg,
utils.RpcConns: rpcConns,
utils.GeneralCfg: cfg.generalCfg.AsMapInterface(),
utils.DataDbCfg: cfg.dataDbCfg.AsMapInterface(),
utils.LoaderCfg: loaderCfg,
utils.HttpAgentCfg: httpAgentCfg,
utils.RpcConns: rpcConns,
utils.GeneralCfg: cfg.generalCfg.AsMapInterface(),
//utils.DataDbCfg: cfg.dataDbCfg.AsMapInterface(),
utils.StorDbCfg: cfg.storDbCfg.AsMapInterface(),
utils.TlsCfg: cfg.tlsCfg.AsMapInterface(),
utils.CacheCfg: cfg.cacheCfg.AsMapInterface(),

View File

@@ -129,7 +129,7 @@ func (dbcfg *DataDbCfg) Clone() *DataDbCfg {
}
}
func (dbcfg *DataDbCfg) AsMapInterface() (initialMP map[string]interface{}) {
func (dbcfg *DataDbCfg) AsMapInterface() (initialMP map[string]interface{}, err error) {
initialMP = map[string]interface{}{
utils.DataDbTypeCfg: utils.Meta + dbcfg.DataDbType,
utils.DataDbHostCfg: dbcfg.DataDbHost,
@@ -148,7 +148,10 @@ func (dbcfg *DataDbCfg) AsMapInterface() (initialMP map[string]interface{}) {
initialMP[utils.ItemsCfg] = items
}
if dbcfg.DataDbPort != "" {
dbPort, _ := strconv.Atoi(dbcfg.DataDbPort)
var dbPort int
if dbPort, err = strconv.Atoi(dbcfg.DataDbPort); err != nil {
return
}
initialMP[utils.DataDbPortCfg] = dbPort
}
return

View File

@@ -447,7 +447,10 @@ func TestDataDbCfgAsMapInterface(t *testing.T) {
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
} else {
rcv := cgrCfg.dataDbCfg.AsMapInterface()
rcv, err := cgrCfg.dataDbCfg.AsMapInterface()
if err != nil {
t.Error(err)
}
if !reflect.DeepEqual(eMap[utils.ItemsCfg].(map[string]interface{})[utils.MetaAccounts],
rcv[utils.ItemsCfg].(map[string]interface{})[utils.MetaAccounts]) {
t.Errorf("Expected %+v, received %+v", eMap[utils.ItemsCfg].(map[string]interface{})[utils.MetaAccounts],
@@ -473,7 +476,9 @@ func TestDataDbCfgAsMapInterface(t *testing.T) {
t.Error(err)
} else if err = dbcfg.loadFromJsonCfg(jsnDataDbCfg); err != nil {
t.Error(err)
} else if rcv := dbcfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
} else if rcv, err := dbcfg.AsMapInterface(); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v, recieved %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}

View File

@@ -134,13 +134,13 @@ func (ds *DiameterAgentCfg) AsMapInterface(separator string) (initialMP map[stri
utils.RARTemplateCfg: ds.RARTemplate,
utils.ForcedDisconnectCfg: ds.ForcedDisconnect,
}
if ds.RequestProcessors != nil {
requestProcessors := make([]map[string]interface{}, len(ds.RequestProcessors))
for i, item := range ds.RequestProcessors {
requestProcessors[i] = item.AsMapInterface(separator)
}
initialMP[utils.RequestProcessorsCfg] = requestProcessors
requestProcessors := make([]map[string]interface{}, len(ds.RequestProcessors))
for i, item := range ds.RequestProcessors {
requestProcessors[i] = item.AsMapInterface(separator)
}
initialMP[utils.RequestProcessorsCfg] = requestProcessors
if ds.SessionSConns != nil {
sessionSConns := make([]string, len(ds.SessionSConns))
for i, item := range ds.SessionSConns {

View File

@@ -72,7 +72,6 @@ func TestDiameterAgentCfgloadFromJsonCfg(t *testing.T) {
}
func TestDiameterAgentCfgAsMapInterface(t *testing.T) {
//var dacfg DiameterAgentCfg
cfgJSONStr := `{
"diameter_agent": {
"enabled": false,
@@ -88,36 +87,57 @@ func TestDiameterAgentCfgAsMapInterface(t *testing.T) {
},
}`
eMap := map[string]interface{}{
"asr_template": "",
"concurrent_requests": -1,
"dictionaries_path": "/usr/share/cgrates/diameter/dict/",
"enabled": false,
"forced_disconnect": "*none",
"listen": "127.0.0.1:3868",
"listen_net": "tcp",
"origin_host": "CGR-DA",
"origin_realm": "cgrates.org",
"product_name": "CGRateS",
"rar_template": "",
"sessions_conns": []string{"*internal"},
"synced_conn_requests": true,
"vendor_id": 0,
"request_processors": []map[string]interface{}{},
utils.ASRTemplateCfg: "",
utils.ConcurrentRequestsCfg: -1,
utils.DictionariesPathCfg: "/usr/share/cgrates/diameter/dict/",
utils.EnabledCfg: false,
utils.ForcedDisconnectCfg: "*none",
utils.ListenCfg: "127.0.0.1:3868",
utils.ListenNetCfg: "tcp",
utils.OriginHostCfg: "CGR-DA",
utils.OriginRealmCfg: "cgrates.org",
utils.ProductNameCfg: "CGRateS",
utils.RARTemplateCfg: "",
utils.SessionSConnsCfg: []string{"*internal"},
utils.SyncedConnReqsCfg: true,
utils.VendorIdCfg: 0,
utils.RequestProcessorsCfg: []map[string]interface{}{},
}
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
} else if rcv := cgrCfg.diameterAgentCfg.AsMapInterface(utils.EmptyString); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, received %+v", eMap, rcv)
}
}
func TestDiameterAgentCfgAsMapInterface1(t *testing.T) {
cfgJSONStr := `{
"diameter_agent": {
"enabled": true,
"dictionaries_path": "/usr/share/cgrates/diameter",
"synced_conn_requests": false,
},
}`
eMap := map[string]interface{}{
utils.ASRTemplateCfg: "",
utils.ConcurrentRequestsCfg: -1,
utils.DictionariesPathCfg: "/usr/share/cgrates/diameter",
utils.EnabledCfg: true,
utils.ForcedDisconnectCfg: "*none",
utils.ListenCfg: "127.0.0.1:3868",
utils.ListenNetCfg: "tcp",
utils.OriginHostCfg: "CGR-DA",
utils.OriginRealmCfg: "cgrates.org",
utils.ProductNameCfg: "CGRateS",
utils.RARTemplateCfg: "",
utils.SessionSConnsCfg: []string{"*internal"},
utils.SyncedConnReqsCfg: false,
utils.VendorIdCfg: 0,
utils.RequestProcessorsCfg: []map[string]interface{}{},
}
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
} else if rcv := cgrCfg.diameterAgentCfg.AsMapInterface(utils.EmptyString); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, received %+v", eMap, rcv)
}
/*
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
t.Error(err)
} else if jsnDaCfg, err := jsnCfg.DiameterAgentJsonCfg(); err != nil {
t.Error(err)
} else if err = dacfg.loadFromJsonCfg(jsnDaCfg, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if rcv := dacfg.AsMapInterface(utils.EmptyString); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected: %+v,\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
*/
}