diff --git a/config/config.go b/config/config.go index f8591a11e..be054bbbd 100755 --- a/config/config.go +++ b/config/config.go @@ -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(), diff --git a/config/datadbcfg.go b/config/datadbcfg.go index 6f8b289d4..8270edfa5 100644 --- a/config/datadbcfg.go +++ b/config/datadbcfg.go @@ -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 diff --git a/config/datadbcfg_test.go b/config/datadbcfg_test.go index 100df29a4..b4c8fcafd 100644 --- a/config/datadbcfg_test.go +++ b/config/datadbcfg_test.go @@ -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)) } } diff --git a/config/diametercfg.go b/config/diametercfg.go index 4e5ca1e23..43f2c2fbd 100644 --- a/config/diametercfg.go +++ b/config/diametercfg.go @@ -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 { diff --git a/config/diametercfg_test.go b/config/diametercfg_test.go index 93623de89..f3acbf7b9 100644 --- a/config/diametercfg_test.go +++ b/config/diametercfg_test.go @@ -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)) - } - */ }