Updated generalcfg AsMapInterface method

This commit is contained in:
porosnicuadrian
2020-09-21 17:07:37 +03:00
committed by Dan Christian Bogos
parent 62d2b59967
commit dda7c1524e
2 changed files with 99 additions and 57 deletions

View File

@@ -151,25 +151,8 @@ func (gencfg *GeneralCfg) loadFromJsonCfg(jsnGeneralCfg *GeneralJsonCfg) (err er
return nil
}
func (gencfg *GeneralCfg) AsMapInterface() map[string]interface{} {
var lockingTimeout string = "0"
var failedPostsTTL string = "0"
var connectTimeout string = "0"
var replyTimeout string = "0"
if gencfg.LockingTimeout != 0 {
lockingTimeout = gencfg.LockingTimeout.String()
}
if gencfg.FailedPostsTTL != 0 {
failedPostsTTL = gencfg.FailedPostsTTL.String()
}
if gencfg.ConnectTimeout != 0 {
connectTimeout = gencfg.ConnectTimeout.String()
}
if gencfg.ReplyTimeout != 0 {
replyTimeout = gencfg.ReplyTimeout.String()
}
return map[string]interface{}{
func (gencfg *GeneralCfg) AsMapInterface() (initialMP map[string]interface{}) {
initialMP = map[string]interface{}{
utils.NodeIDCfg: gencfg.NodeID,
utils.LoggerCfg: gencfg.Logger,
utils.LogLevelCfg: gencfg.LogLevel,
@@ -179,7 +162,6 @@ func (gencfg *GeneralCfg) AsMapInterface() map[string]interface{} {
utils.TpExportPathCfg: gencfg.TpExportPath,
utils.PosterAttemptsCfg: gencfg.PosterAttempts,
utils.FailedPostsDirCfg: gencfg.FailedPostsDir,
utils.FailedPostsTTLCfg: failedPostsTTL,
utils.DefaultReqTypeCfg: gencfg.DefaultReqType,
utils.DefaultCategoryCfg: gencfg.DefaultCategory,
utils.DefaultTenantCfg: gencfg.DefaultTenant,
@@ -187,9 +169,6 @@ func (gencfg *GeneralCfg) AsMapInterface() map[string]interface{} {
utils.DefaultCachingCfg: gencfg.DefaultCaching,
utils.ConnectAttemptsCfg: gencfg.ConnectAttempts,
utils.ReconnectsCfg: gencfg.Reconnects,
utils.ConnectTimeoutCfg: connectTimeout,
utils.ReplyTimeoutCfg: replyTimeout,
utils.LockingTimeoutCfg: lockingTimeout,
utils.DigestSeparatorCfg: gencfg.DigestSeparator,
utils.DigestEqualCfg: gencfg.DigestEqual,
utils.RSRSepCfg: gencfg.RSRSep,
@@ -197,4 +176,29 @@ func (gencfg *GeneralCfg) AsMapInterface() map[string]interface{} {
utils.ConcurrentRequestsCfg: gencfg.ConcurrentRequests,
utils.ConcurrentStrategyCfg: gencfg.ConcurrentStrategy,
}
if gencfg.LockingTimeout != 0 {
initialMP[utils.LockingTimeoutCfg] = gencfg.LockingTimeout.String()
} else {
initialMP[utils.LockingTimeoutCfg] = "0"
}
if gencfg.FailedPostsTTL != 0 {
initialMP[utils.FailedPostsTTLCfg] = gencfg.FailedPostsTTL.String()
} else {
initialMP[utils.FailedPostsTTLCfg] = "0"
}
if gencfg.ConnectTimeout != 0 {
initialMP[utils.ConnectTimeoutCfg] = gencfg.ConnectTimeout.String()
} else {
initialMP[utils.ConnectTimeoutCfg] = "0"
}
if gencfg.ReplyTimeout != 0 {
initialMP[utils.ReplyTimeoutCfg] = gencfg.ReplyTimeout.String()
} else {
initialMP[utils.ReplyTimeoutCfg] = "0"
}
return
}

View File

@@ -18,6 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
package config
import (
"fmt"
"reflect"
"testing"
"time"
@@ -95,7 +96,6 @@ func TestGeneralCfgloadFromJsonCfg(t *testing.T) {
}
func TestGeneralCfgAsMapInterface(t *testing.T) {
var gencfg GeneralCfg
cfgJSONStr := `{
"general": {
"node_id": "",
@@ -125,40 +125,78 @@ func TestGeneralCfgAsMapInterface(t *testing.T) {
},
}`
eMap := map[string]interface{}{
"node_id": "",
"logger": "*syslog",
"log_level": 6,
"http_skip_tls_verify": false,
"rounding_decimals": 5,
"dbdata_encoding": "*msgpack",
"tpexport_dir": "/var/spool/cgrates/tpe",
"poster_attempts": 3,
"failed_posts_dir": "/var/spool/cgrates/failed_posts",
"failed_posts_ttl": "5s",
"default_request_type": "*rated",
"default_category": "call",
"default_tenant": "cgrates.org",
"default_timezone": "Local",
"default_caching": "*reload",
"connect_attempts": 5,
"reconnects": -1,
"connect_timeout": "1s",
"reply_timeout": "2s",
"locking_timeout": "0",
"digest_separator": ",",
"digest_equal": ":",
"rsr_separator": ";",
"max_parallel_conns": 100,
utils.NodeIDCfg: "",
utils.LoggerCfg: "*syslog",
utils.LogLevelCfg: 6,
utils.HttpSkipTlsVerifyCfg: false,
utils.RoundingDecimalsCfg: 5,
utils.DBDataEncodingCfg: "*msgpack",
utils.TpExportPathCfg: "/var/spool/cgrates/tpe",
utils.PosterAttemptsCfg: 3,
utils.FailedPostsDirCfg: "/var/spool/cgrates/failed_posts",
utils.FailedPostsTTLCfg: "5s",
utils.DefaultReqTypeCfg: "*rated",
utils.DefaultCategoryCfg: "call",
utils.DefaultTenantCfg: "cgrates.org",
utils.DefaultTimezoneCfg: "Local",
utils.DefaultCachingCfg: "*reload",
utils.ConnectAttemptsCfg: 5,
utils.ReconnectsCfg: -1,
utils.ConnectTimeoutCfg: "1s",
utils.ReplyTimeoutCfg: "2s",
utils.LockingTimeoutCfg: "0",
utils.DigestSeparatorCfg: ",",
utils.DigestEqualCfg: ":",
utils.RSRSepCfg: ";",
utils.MaxParallelConnsCfg: 100,
utils.ConcurrentRequestsCfg: 0,
utils.ConcurrentStrategyCfg: utils.EmptyString,
utils.ConcurrentStrategyCfg: utils.MetaBusy,
}
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
t.Error(err)
} else if jsnGenCfg, err := jsnCfg.GeneralJsonCfg(); err != nil {
t.Error(err)
} else if err = gencfg.loadFromJsonCfg(jsnGenCfg); err != nil {
t.Error(err)
} else if rcv := gencfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err == nil {
fmt.Println(cgrCfg)
//t.Error(err)
} else if rcv := cgrCfg.generalCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, recevied %+v", eMap, rcv)
}
}
func TestGeneralCfgAsMapInterface1(t *testing.T) {
cfgJSONStr := `{
"general": {
"node_id": "ENGINE1"
}
}`
eMap := map[string]interface{}{
utils.NodeIDCfg: "ENGINE1",
utils.LoggerCfg: "*syslog",
utils.LogLevelCfg: 6,
utils.HttpSkipTlsVerifyCfg: false,
utils.RoundingDecimalsCfg: 5,
utils.DBDataEncodingCfg: "*msgpack",
utils.TpExportPathCfg: "/var/spool/cgrates/tpe",
utils.PosterAttemptsCfg: 3,
utils.FailedPostsDirCfg: "/var/spool/cgrates/failed_posts",
utils.FailedPostsTTLCfg: "5s",
utils.DefaultReqTypeCfg: "*rated",
utils.DefaultCategoryCfg: "call",
utils.DefaultTenantCfg: "cgrates.org",
utils.DefaultTimezoneCfg: "Local",
utils.DefaultCachingCfg: "*reload",
utils.ConnectAttemptsCfg: 5,
utils.ReconnectsCfg: -1,
utils.ConnectTimeoutCfg: "1s",
utils.ReplyTimeoutCfg: "2s",
utils.LockingTimeoutCfg: "0",
utils.DigestSeparatorCfg: ",",
utils.DigestEqualCfg: ":",
utils.RSRSepCfg: ";",
utils.MaxParallelConnsCfg: 100,
utils.ConcurrentRequestsCfg: 0,
utils.ConcurrentStrategyCfg: utils.MetaBusy,
}
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
} else if rcv := cgrCfg.generalCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, recevied %+v", eMap, rcv)
}
}