mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Updated kamagent AsMapInterface method and added a new type(Timezone) in KamAgentJsonCfg stuct
This commit is contained in:
committed by
Dan Christian Bogos
parent
3c72966aa0
commit
47ffcf2caa
@@ -711,11 +711,12 @@ func TestKamAgentJsonCfg(t *testing.T) {
|
||||
Reconnects: utils.IntPointer(5),
|
||||
},
|
||||
},
|
||||
Timezone: utils.StringPointer(utils.EmptyString),
|
||||
}
|
||||
if cfg, err := dfCgrJSONCfg.KamAgentJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(eCfg, cfg) {
|
||||
t.Errorf("Expecting: %s, received: %s: ",
|
||||
t.Errorf("Expecting: %s \n, received: %s: ",
|
||||
utils.ToJSON(eCfg), utils.ToJSON(cfg))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,12 +47,13 @@ func (self *KamConnCfg) loadFromJsonCfg(jsnCfg *KamConnJsonCfg) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (kamCfg *KamConnCfg) AsMapInterface() map[string]interface{} {
|
||||
return map[string]interface{}{
|
||||
func (kamCfg *KamConnCfg) AsMapInterface() (initialMP map[string]interface{}) {
|
||||
initialMP = map[string]interface{}{
|
||||
utils.AliasCfg: kamCfg.Alias,
|
||||
utils.AddressCfg: kamCfg.Address,
|
||||
utils.ReconnectsCfg: kamCfg.Reconnects,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// SM-Kamailio config section
|
||||
@@ -92,31 +93,35 @@ func (ka *KamAgentCfg) loadFromJsonCfg(jsnCfg *KamAgentJsonCfg) error {
|
||||
ka.EvapiConns[idx].loadFromJsonCfg(jsnConnCfg)
|
||||
}
|
||||
}
|
||||
if jsnCfg.Timezone != nil {
|
||||
ka.Timezone = *jsnCfg.Timezone
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (ka *KamAgentCfg) AsMapInterface() map[string]interface{} {
|
||||
evapiConns := make([]map[string]interface{}, len(ka.EvapiConns))
|
||||
for i, item := range ka.EvapiConns {
|
||||
evapiConns[i] = item.AsMapInterface()
|
||||
func (ka *KamAgentCfg) AsMapInterface() (initialMP map[string]interface{}) {
|
||||
initialMP = map[string]interface{}{
|
||||
utils.EnabledCfg: ka.Enabled,
|
||||
utils.CreateCdrCfg: ka.CreateCdr,
|
||||
utils.TimezoneCfg: ka.Timezone,
|
||||
}
|
||||
|
||||
sessionSConns := make([]string, len(ka.SessionSConns))
|
||||
for i, item := range ka.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 ka.EvapiConns != nil {
|
||||
evapiConns := make([]map[string]interface{}, len(ka.EvapiConns))
|
||||
for i, item := range ka.EvapiConns {
|
||||
evapiConns[i] = item.AsMapInterface()
|
||||
}
|
||||
initialMP[utils.EvapiConnsCfg] = evapiConns
|
||||
}
|
||||
|
||||
return map[string]interface{}{
|
||||
utils.EnabledCfg: ka.Enabled,
|
||||
utils.SessionSConnsCfg: sessionSConns,
|
||||
utils.CreateCdrCfg: ka.CreateCdr,
|
||||
utils.EvapiConnsCfg: evapiConns,
|
||||
utils.TimezoneCfg: ka.Timezone,
|
||||
if ka.SessionSConns != nil {
|
||||
sessionSConns := make([]string, len(ka.SessionSConns))
|
||||
for i, item := range ka.SessionSConns {
|
||||
if item == utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS) {
|
||||
sessionSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaSessionS, utils.EmptyString)
|
||||
} else {
|
||||
sessionSConns[i] = item
|
||||
}
|
||||
}
|
||||
initialMP[utils.SessionSConnsCfg] = sessionSConns
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
@@ -90,64 +90,48 @@ func TestKamConnCfgloadFromJsonCfg(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestKamAgentCfgAsMapInterface(t *testing.T) {
|
||||
var kamagcfg KamAgentCfg
|
||||
cfgJSONStr := `{
|
||||
"kamailio_agent": {
|
||||
"enabled": false,
|
||||
"sessions_conns": [""],
|
||||
"create_cdr": false,
|
||||
"timezone": "",
|
||||
"sessions_conns": ["*conn1","*conn2"],
|
||||
"create_cdr": true,
|
||||
"timezone": "UTC",
|
||||
"evapi_conns":[
|
||||
{"address": "127.0.0.1:8448", "reconnects": 5}
|
||||
{"address": "127.0.0.1:8448", "reconnects": 5, "alias": ""}
|
||||
],
|
||||
},
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
"enabled": false,
|
||||
"sessions_conns": []string{""},
|
||||
"create_cdr": false,
|
||||
"timezone": "",
|
||||
"evapi_conns": []map[string]interface{}{
|
||||
{"address": "127.0.0.1:8448", "reconnects": 5, "alias": ""},
|
||||
utils.EnabledCfg: false,
|
||||
utils.SessionSConnsCfg: []string{"*conn1", "*conn2"},
|
||||
utils.CreateCdrCfg: true,
|
||||
utils.TimezoneCfg: "UTC",
|
||||
utils.EvapiConnsCfg: []map[string]interface{}{
|
||||
{utils.AddressCfg: "127.0.0.1:8448", utils.ReconnectsCfg: 5, utils.AliasCfg: ""},
|
||||
},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnKamAgCfg, err := jsnCfg.KamAgentJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = kamagcfg.loadFromJsonCfg(jsnKamAgCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := kamagcfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
|
||||
cfgJSONStr = `{
|
||||
"kamailio_agent": {
|
||||
"enabled": false,
|
||||
"sessions_conns": ["*internal"],
|
||||
"create_cdr": false,
|
||||
"timezone": "",
|
||||
"evapi_conns":[
|
||||
{"address": "127.0.0.1:8448", "reconnects": 5}
|
||||
],
|
||||
},
|
||||
}`
|
||||
eMap = map[string]interface{}{
|
||||
"enabled": false,
|
||||
"sessions_conns": []string{"*internal"},
|
||||
"create_cdr": false,
|
||||
"timezone": "",
|
||||
"evapi_conns": []map[string]interface{}{
|
||||
{"address": "127.0.0.1:8448", "reconnects": 5, "alias": ""},
|
||||
},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnKamAgCfg, err := jsnCfg.KamAgentJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = kamagcfg.loadFromJsonCfg(jsnKamAgCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := kamagcfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
} else if rcv := cgrCfg.kamAgentCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
|
||||
t.Errorf("Expected %+v \n, received %+v", eMap, rcv)
|
||||
}
|
||||
}
|
||||
|
||||
func TestKamAgentCfgAsMapInterface1(t *testing.T) {
|
||||
cfgJSONStr := `{
|
||||
"kamailio_agent": {},
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
utils.EnabledCfg: false,
|
||||
utils.SessionSConnsCfg: []string{"*internal"},
|
||||
utils.CreateCdrCfg: false,
|
||||
utils.TimezoneCfg: "",
|
||||
utils.EvapiConnsCfg: []map[string]interface{}{
|
||||
{utils.AddressCfg: "127.0.0.1:8448", utils.ReconnectsCfg: 5, utils.AliasCfg: ""},
|
||||
},
|
||||
}
|
||||
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := cgrCfg.kamAgentCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
|
||||
t.Errorf("Expected %+v \n, received %+v", eMap, rcv)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -314,6 +314,7 @@ type KamAgentJsonCfg struct {
|
||||
Sessions_conns *[]string
|
||||
Create_cdr *bool
|
||||
Evapi_conns *[]*KamConnJsonCfg
|
||||
Timezone *string
|
||||
}
|
||||
|
||||
// Represents one connection instance towards Kamailio
|
||||
|
||||
Reference in New Issue
Block a user