mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Updated configs AsMapInterface method
This commit is contained in:
committed by
Dan Christian Bogos
parent
00ecfbee13
commit
bebd8f8115
@@ -106,3 +106,12 @@ func handleConfigSFile(path string, w http.ResponseWriter) {
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (cScfg *ConfigSCfg) AsMapInterface() (initialMP map[string]interface{}) {
|
||||
initialMP = map[string]interface{}{
|
||||
utils.EnabledCfg: cScfg.Enabled,
|
||||
utils.UrlCfg: cScfg.Url,
|
||||
utils.RootDirCfg: cScfg.RootDir,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
64
config/configs_test.go
Normal file
64
config/configs_test.go
Normal file
@@ -0,0 +1,64 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
)
|
||||
|
||||
func TestConfigsloadFromJsonCfg(t *testing.T) {
|
||||
jsonCfgs := &ConfigSCfgJson{
|
||||
Enabled: utils.BoolPointer(true),
|
||||
Url: utils.StringPointer("/randomURL/"),
|
||||
Root_dir: utils.StringPointer("/randomPath/"),
|
||||
}
|
||||
expectedCfg := &ConfigSCfg{
|
||||
Enabled: true,
|
||||
Url: "/randomURL/",
|
||||
RootDir: "/randomPath/",
|
||||
}
|
||||
if cgrCfg, err := NewDefaultCGRConfig(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err := cgrCfg.configSCfg.loadFromJsonCfg(jsonCfgs); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(cgrCfg.configSCfg, expectedCfg) {
|
||||
t.Errorf("Expected %+v, received %+v", expectedCfg, cgrCfg.configSCfg)
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigsAsMapInterface(t *testing.T) {
|
||||
cfgsJSONStr := `{
|
||||
"configs": {
|
||||
"enabled": true,
|
||||
"url": "",
|
||||
"root_dir": "/var/spool/cgrates/configs"
|
||||
},
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
utils.EnabledCfg: true,
|
||||
utils.UrlCfg: "",
|
||||
utils.RootDirCfg: "/var/spool/cgrates/configs",
|
||||
}
|
||||
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgsJSONStr); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := cgrCfg.configSCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
|
||||
t.Errorf("Expected %+v, received %+v", eMap, rcv)
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigsAsMapInterface2(t *testing.T) {
|
||||
cfgsJSONStr := `{
|
||||
"configs":{}
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
utils.EnabledCfg: false,
|
||||
utils.UrlCfg: "/configs/",
|
||||
utils.RootDirCfg: "/var/spool/cgrates/configs",
|
||||
}
|
||||
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgsJSONStr); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := cgrCfg.configSCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
|
||||
t.Errorf("Expected %+v, received %+v", eMap, rcv)
|
||||
}
|
||||
}
|
||||
@@ -129,25 +129,29 @@ func (dbcfg *DataDbCfg) Clone() *DataDbCfg {
|
||||
}
|
||||
}
|
||||
|
||||
func (dbcfg *DataDbCfg) AsMapInterface() map[string]interface{} {
|
||||
items := make(map[string]interface{})
|
||||
for key, item := range dbcfg.Items {
|
||||
items[key] = item.AsMapInterface()
|
||||
}
|
||||
dbPort, _ := strconv.Atoi(dbcfg.DataDbPort)
|
||||
|
||||
return map[string]interface{}{
|
||||
func (dbcfg *DataDbCfg) AsMapInterface() (initialMP map[string]interface{}) {
|
||||
initialMP = map[string]interface{}{
|
||||
utils.DataDbTypeCfg: utils.Meta + dbcfg.DataDbType,
|
||||
utils.DataDbHostCfg: dbcfg.DataDbHost,
|
||||
utils.DataDbPortCfg: dbPort,
|
||||
utils.DataDbNameCfg: dbcfg.DataDbName,
|
||||
utils.DataDbUserCfg: dbcfg.DataDbUser,
|
||||
utils.DataDbPassCfg: dbcfg.DataDbPass,
|
||||
utils.RmtConnsCfg: dbcfg.RmtConns,
|
||||
utils.RplConnsCfg: dbcfg.RplConns,
|
||||
utils.ItemsCfg: items,
|
||||
utils.OptsCfg: dbcfg.Opts,
|
||||
}
|
||||
if dbcfg.Items != nil {
|
||||
items := make(map[string]interface{}, len(dbcfg.Items))
|
||||
for key, item := range dbcfg.Items {
|
||||
items[key] = item.AsMapInterface()
|
||||
}
|
||||
initialMP[utils.ItemsCfg] = items
|
||||
}
|
||||
if dbcfg.DataDbPort != "" {
|
||||
dbPort, _ := strconv.Atoi(dbcfg.DataDbPort)
|
||||
initialMP[utils.DataDbPortCfg] = dbPort
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
type ItemOpt struct {
|
||||
@@ -158,13 +162,14 @@ type ItemOpt struct {
|
||||
APIKey string
|
||||
}
|
||||
|
||||
func (itm *ItemOpt) AsMapInterface() map[string]interface{} {
|
||||
return map[string]interface{}{
|
||||
func (itm *ItemOpt) AsMapInterface() (initialMP map[string]interface{}) {
|
||||
initialMP = map[string]interface{}{
|
||||
utils.RemoteCfg: itm.Remote,
|
||||
utils.ReplicateCfg: itm.Replicate,
|
||||
utils.RouteID: itm.RouteID,
|
||||
utils.APIKey: itm.APIKey,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (itm *ItemOpt) loadFromJsonCfg(jsonItm *ItemOptJson) (err error) {
|
||||
|
||||
@@ -444,6 +444,29 @@ func TestDataDbCfgAsMapInterface(t *testing.T) {
|
||||
"*reverse_destinations": map[string]interface{}{"remote": false, "replicate": false, "ApiKey": "", "RouteID": ""},
|
||||
},
|
||||
}
|
||||
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
|
||||
t.Error(err)
|
||||
} else {
|
||||
rcv := cgrCfg.dataDbCfg.AsMapInterface()
|
||||
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],
|
||||
rcv[utils.ItemsCfg].(map[string]interface{})[utils.MetaAccounts])
|
||||
} else if !reflect.DeepEqual(eMap[utils.ItemsCfg].(map[string]interface{})[utils.MetaReverseDestinations],
|
||||
rcv[utils.ItemsCfg].(map[string]interface{})[utils.MetaReverseDestinations]) {
|
||||
t.Errorf("Expected %+v, received %+v", eMap[utils.ItemsCfg].(map[string]interface{})[utils.MetaReverseDestinations],
|
||||
rcv[utils.ItemsCfg].(map[string]interface{})[utils.MetaReverseDestinations])
|
||||
}
|
||||
}
|
||||
|
||||
/*if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := cgrCfg.dataDbCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
|
||||
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnDataDbCfg, err := jsnCfg.DbJsonCfg(DATADB_JSN); err != nil {
|
||||
@@ -451,6 +474,6 @@ func TestDataDbCfgAsMapInterface(t *testing.T) {
|
||||
} else if err = dbcfg.loadFromJsonCfg(jsnDataDbCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := dbcfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("Expected: %+v ,\n recived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
t.Errorf("Expected %+v, recieved %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -118,37 +118,40 @@ func (da *DiameterAgentCfg) loadFromJsonCfg(jsnCfg *DiameterAgentJsonCfg, separa
|
||||
return
|
||||
}
|
||||
|
||||
func (ds *DiameterAgentCfg) AsMapInterface(separator string) map[string]interface{} {
|
||||
requestProcessors := make([]map[string]interface{}, len(ds.RequestProcessors))
|
||||
for i, item := range ds.RequestProcessors {
|
||||
requestProcessors[i] = item.AsMapInterface(separator)
|
||||
func (ds *DiameterAgentCfg) AsMapInterface(separator string) (initialMP map[string]interface{}) {
|
||||
initialMP = map[string]interface{}{
|
||||
utils.EnabledCfg: ds.Enabled,
|
||||
utils.ListenNetCfg: ds.ListenNet,
|
||||
utils.ListenCfg: ds.Listen,
|
||||
utils.DictionariesPathCfg: ds.DictionariesPath,
|
||||
utils.OriginHostCfg: ds.OriginHost,
|
||||
utils.OriginRealmCfg: ds.OriginRealm,
|
||||
utils.VendorIdCfg: ds.VendorId,
|
||||
utils.ProductNameCfg: ds.ProductName,
|
||||
utils.ConcurrentReqsCfg: ds.ConcurrentReqs,
|
||||
utils.SyncedConnReqsCfg: ds.SyncedConnReqs,
|
||||
utils.ASRTemplateCfg: ds.ASRTemplate,
|
||||
utils.RARTemplateCfg: ds.RARTemplate,
|
||||
utils.ForcedDisconnectCfg: ds.ForcedDisconnect,
|
||||
}
|
||||
|
||||
sessionSConns := make([]string, len(ds.SessionSConns))
|
||||
for i, item := range ds.SessionSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS)
|
||||
if item == buf {
|
||||
sessionSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaSessionS, utils.EmptyString)
|
||||
} else {
|
||||
sessionSConns[i] = item
|
||||
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
|
||||
}
|
||||
|
||||
return map[string]interface{}{
|
||||
utils.EnabledCfg: ds.Enabled,
|
||||
utils.ListenNetCfg: ds.ListenNet,
|
||||
utils.ListenCfg: ds.Listen,
|
||||
utils.DictionariesPathCfg: ds.DictionariesPath,
|
||||
utils.SessionSConnsCfg: sessionSConns,
|
||||
utils.OriginHostCfg: ds.OriginHost,
|
||||
utils.OriginRealmCfg: ds.OriginRealm,
|
||||
utils.VendorIdCfg: ds.VendorId,
|
||||
utils.ProductNameCfg: ds.ProductName,
|
||||
utils.ConcurrentReqsCfg: ds.ConcurrentReqs,
|
||||
utils.SyncedConnReqsCfg: ds.SyncedConnReqs,
|
||||
utils.ASRTemplateCfg: ds.ASRTemplate,
|
||||
utils.RARTemplateCfg: ds.RARTemplate,
|
||||
utils.ForcedDisconnectCfg: ds.ForcedDisconnect,
|
||||
utils.RequestProcessorsCfg: requestProcessors,
|
||||
if ds.SessionSConns != nil {
|
||||
sessionSConns := make([]string, len(ds.SessionSConns))
|
||||
for i, item := range ds.SessionSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS)
|
||||
if item == buf {
|
||||
sessionSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaSessionS, utils.EmptyString)
|
||||
} else {
|
||||
sessionSConns[i] = item
|
||||
}
|
||||
}
|
||||
initialMP[utils.SessionSConnsCfg] = sessionSConns
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ func TestDiameterAgentCfgloadFromJsonCfg(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDiameterAgentCfgAsMapInterface(t *testing.T) {
|
||||
var dacfg DiameterAgentCfg
|
||||
//var dacfg DiameterAgentCfg
|
||||
cfgJSONStr := `{
|
||||
"diameter_agent": {
|
||||
"enabled": false,
|
||||
@@ -89,12 +89,12 @@ func TestDiameterAgentCfgAsMapInterface(t *testing.T) {
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
"asr_template": "",
|
||||
"concurrent_requests": 0,
|
||||
"concurrent_requests": -1,
|
||||
"dictionaries_path": "/usr/share/cgrates/diameter/dict/",
|
||||
"enabled": false,
|
||||
"forced_disconnect": "",
|
||||
"forced_disconnect": "*none",
|
||||
"listen": "127.0.0.1:3868",
|
||||
"listen_net": "",
|
||||
"listen_net": "tcp",
|
||||
"origin_host": "CGR-DA",
|
||||
"origin_realm": "cgrates.org",
|
||||
"product_name": "CGRateS",
|
||||
@@ -104,13 +104,20 @@ func TestDiameterAgentCfgAsMapInterface(t *testing.T) {
|
||||
"vendor_id": 0,
|
||||
"request_processors": []map[string]interface{}{},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(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))
|
||||
} 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))
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
@@ -2152,6 +2152,7 @@ const (
|
||||
|
||||
// SureTax
|
||||
const (
|
||||
RootDirCfg = "root_dir"
|
||||
UrlCfg = "url"
|
||||
ClientNumberCfg = "client_number"
|
||||
ValidationKeyCfg = "validation_key"
|
||||
|
||||
Reference in New Issue
Block a user