Repair failing unit tests after adding max_reconnect_interval option

This commit is contained in:
ionutboangiu
2022-06-28 18:48:06 +03:00
committed by Dan Christian Bogos
parent 5437b3a8a2
commit dd7bab666f
10 changed files with 221 additions and 164 deletions

View File

@@ -75,7 +75,7 @@ func (aConnCfg AsteriskConnCfg) AsMapInterface() map[string]interface{} {
utils.Password: aConnCfg.Password,
utils.ConnectAttemptsCfg: aConnCfg.ConnectAttempts,
utils.ReconnectsCfg: aConnCfg.Reconnects,
utils.MaxReconnectIntervalCfg: aConnCfg.MaxReconnectInterval,
utils.MaxReconnectIntervalCfg: aConnCfg.MaxReconnectInterval.String(),
}
}

View File

@@ -31,33 +31,34 @@ import (
func TestDfGeneralJsonCfg(t *testing.T) {
eCfg := &GeneralJsonCfg{
Node_id: utils.StringPointer(""),
Logger: utils.StringPointer(utils.MetaSysLog),
Log_level: utils.IntPointer(utils.LOGLEVEL_INFO),
Rounding_decimals: utils.IntPointer(5),
Dbdata_encoding: utils.StringPointer("*msgpack"),
Tpexport_dir: utils.StringPointer("/var/spool/cgrates/tpe"),
Poster_attempts: utils.IntPointer(3),
Failed_posts_dir: utils.StringPointer("/var/spool/cgrates/failed_posts"),
Failed_posts_ttl: utils.StringPointer("5s"),
Default_request_type: utils.StringPointer(utils.MetaRated),
Default_category: utils.StringPointer("call"),
Default_tenant: utils.StringPointer("cgrates.org"),
Default_caching: utils.StringPointer(utils.MetaReload),
Default_timezone: utils.StringPointer("Local"),
Connect_attempts: utils.IntPointer(5),
Reconnects: utils.IntPointer(-1),
Connect_timeout: utils.StringPointer("1s"),
Reply_timeout: utils.StringPointer("2s"),
Locking_timeout: utils.StringPointer("0"),
Digest_separator: utils.StringPointer(","),
Digest_equal: utils.StringPointer(":"),
Rsr_separator: utils.StringPointer(";"),
Max_parallel_conns: utils.IntPointer(100),
Decimal_max_scale: utils.IntPointer(0),
Decimal_min_scale: utils.IntPointer(0),
Decimal_precision: utils.IntPointer(0),
Decimal_rounding_mode: utils.StringPointer("*toNearestEven"),
Node_id: utils.StringPointer(""),
Logger: utils.StringPointer(utils.MetaSysLog),
Log_level: utils.IntPointer(utils.LOGLEVEL_INFO),
Rounding_decimals: utils.IntPointer(5),
Dbdata_encoding: utils.StringPointer("*msgpack"),
Tpexport_dir: utils.StringPointer("/var/spool/cgrates/tpe"),
Poster_attempts: utils.IntPointer(3),
Failed_posts_dir: utils.StringPointer("/var/spool/cgrates/failed_posts"),
Failed_posts_ttl: utils.StringPointer("5s"),
Default_request_type: utils.StringPointer(utils.MetaRated),
Default_category: utils.StringPointer("call"),
Default_tenant: utils.StringPointer("cgrates.org"),
Default_caching: utils.StringPointer(utils.MetaReload),
Default_timezone: utils.StringPointer("Local"),
Connect_attempts: utils.IntPointer(5),
Reconnects: utils.IntPointer(-1),
Max_reconnect_interval: utils.StringPointer(utils.EmptyString),
Connect_timeout: utils.StringPointer("1s"),
Reply_timeout: utils.StringPointer("2s"),
Locking_timeout: utils.StringPointer("0"),
Digest_separator: utils.StringPointer(","),
Digest_equal: utils.StringPointer(":"),
Rsr_separator: utils.StringPointer(";"),
Max_parallel_conns: utils.IntPointer(100),
Decimal_max_scale: utils.IntPointer(0),
Decimal_min_scale: utils.IntPointer(0),
Decimal_precision: utils.IntPointer(0),
Decimal_rounding_mode: utils.StringPointer("*toNearestEven"),
Opts: &GeneralOptsJson{
ExporterIDs: []*utils.DynamicStringSliceOpt{},
},
@@ -639,10 +640,11 @@ func TestFsAgentJsonCfg(t *testing.T) {
Max_wait_connection: utils.StringPointer("2s"),
Event_socket_conns: &[]*FsConnJsonCfg{
{
Address: utils.StringPointer("127.0.0.1:8021"),
Password: utils.StringPointer("ClueCon"),
Reconnects: utils.IntPointer(5),
Alias: utils.StringPointer(""),
Address: utils.StringPointer("127.0.0.1:8021"),
Password: utils.StringPointer("ClueCon"),
Reconnects: utils.IntPointer(5),
Max_reconnect_interval: utils.StringPointer(utils.EmptyString),
Alias: utils.StringPointer(""),
}},
}
dfCgrJSONCfg, err := NewCgrJsonCfgFromBytes([]byte(CGRATES_CFG_JSON))
@@ -664,8 +666,9 @@ func TestKamAgentJsonCfg(t *testing.T) {
Create_cdr: utils.BoolPointer(false),
Evapi_conns: &[]*KamConnJsonCfg{
{
Address: utils.StringPointer("127.0.0.1:8448"),
Reconnects: utils.IntPointer(5),
Address: utils.StringPointer("127.0.0.1:8448"),
Reconnects: utils.IntPointer(5),
Max_reconnect_interval: utils.StringPointer(utils.EmptyString),
},
},
Timezone: utils.StringPointer(utils.EmptyString),
@@ -690,11 +693,12 @@ func TestAsteriskAgentJsonCfg(t *testing.T) {
Create_cdr: utils.BoolPointer(false),
Asterisk_conns: &[]*AstConnJsonCfg{
{
Address: utils.StringPointer("127.0.0.1:8088"),
User: utils.StringPointer("cgrates"),
Password: utils.StringPointer("CGRateS.org"),
Connect_attempts: utils.IntPointer(3),
Reconnects: utils.IntPointer(5),
Address: utils.StringPointer("127.0.0.1:8088"),
User: utils.StringPointer("cgrates"),
Password: utils.StringPointer("CGRateS.org"),
Max_reconnect_interval: utils.StringPointer(utils.EmptyString),
Connect_attempts: utils.IntPointer(3),
Reconnects: utils.IntPointer(5),
},
},
}

File diff suppressed because one or more lines are too long

View File

@@ -66,7 +66,7 @@ func (fs FsConnCfg) AsMapInterface() map[string]interface{} {
utils.AddressCfg: fs.Address,
utils.Password: fs.Password,
utils.ReconnectsCfg: fs.Reconnects,
utils.MaxReconnectIntervalCfg: fs.MaxReconnectInterval,
utils.MaxReconnectIntervalCfg: fs.MaxReconnectInterval.String(),
utils.AliasCfg: fs.Alias,
}
}

View File

@@ -151,33 +151,34 @@ func TestGeneralCfgAsMapInterface(t *testing.T) {
},
}`
eMap := map[string]interface{}{
utils.NodeIDCfg: "cgrates",
utils.LoggerCfg: "*syslog",
utils.LogLevelCfg: 6,
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: "1s",
utils.DigestSeparatorCfg: ",",
utils.DigestEqualCfg: ":",
utils.RSRSepCfg: ";",
utils.MaxParallelConnsCfg: 100,
utils.DecimalMaxScaleCfg: 0,
utils.DecimalMinScaleCfg: 0,
utils.DecimalPrecisionCfg: 0,
utils.DecimalRoundingModeCfg: "*toNearestEven",
utils.NodeIDCfg: "cgrates",
utils.LoggerCfg: "*syslog",
utils.LogLevelCfg: 6,
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.MaxReconnectIntervalCfg: "0",
utils.ConnectTimeoutCfg: "1s",
utils.ReplyTimeoutCfg: "2s",
utils.LockingTimeoutCfg: "1s",
utils.DigestSeparatorCfg: ",",
utils.DigestEqualCfg: ":",
utils.RSRSepCfg: ";",
utils.MaxParallelConnsCfg: 100,
utils.DecimalMaxScaleCfg: 0,
utils.DecimalMinScaleCfg: 0,
utils.DecimalPrecisionCfg: 0,
utils.DecimalRoundingModeCfg: "*toNearestEven",
utils.OptsCfg: map[string]interface{}{
utils.MetaExporterIDs: []*utils.DynamicStringSliceOpt{},
},
@@ -195,39 +196,41 @@ func TestGeneralCfgAsMapInterface1(t *testing.T) {
"node_id": "ENGINE1",
"locking_timeout": "0",
"failed_posts_ttl": "0s",
"max_reconnect_interval": "5m",
"connect_timeout": "0s",
"reply_timeout": "0s",
"max_call_duration": "0"
}
}`
eMap := map[string]interface{}{
utils.NodeIDCfg: "ENGINE1",
utils.LoggerCfg: "*syslog",
utils.LogLevelCfg: 6,
utils.RoundingDecimalsCfg: 5,
utils.DBDataEncodingCfg: "*msgpack",
utils.TpExportPathCfg: "/var/spool/cgrates/tpe",
utils.PosterAttemptsCfg: 3,
utils.FailedPostsDirCfg: "/var/spool/cgrates/failed_posts",
utils.FailedPostsTTLCfg: "0",
utils.DefaultReqTypeCfg: "*rated",
utils.DefaultCategoryCfg: "call",
utils.DefaultTenantCfg: "cgrates.org",
utils.DefaultTimezoneCfg: "Local",
utils.DefaultCachingCfg: "*reload",
utils.ConnectAttemptsCfg: 5,
utils.ReconnectsCfg: -1,
utils.ConnectTimeoutCfg: "0",
utils.ReplyTimeoutCfg: "0",
utils.LockingTimeoutCfg: "0",
utils.DigestSeparatorCfg: ",",
utils.DigestEqualCfg: ":",
utils.RSRSepCfg: ";",
utils.MaxParallelConnsCfg: 100,
utils.DecimalMaxScaleCfg: 0,
utils.DecimalMinScaleCfg: 0,
utils.DecimalPrecisionCfg: 0,
utils.DecimalRoundingModeCfg: "*toNearestEven",
utils.NodeIDCfg: "ENGINE1",
utils.LoggerCfg: "*syslog",
utils.LogLevelCfg: 6,
utils.RoundingDecimalsCfg: 5,
utils.DBDataEncodingCfg: "*msgpack",
utils.TpExportPathCfg: "/var/spool/cgrates/tpe",
utils.PosterAttemptsCfg: 3,
utils.FailedPostsDirCfg: "/var/spool/cgrates/failed_posts",
utils.FailedPostsTTLCfg: "0",
utils.DefaultReqTypeCfg: "*rated",
utils.DefaultCategoryCfg: "call",
utils.DefaultTenantCfg: "cgrates.org",
utils.DefaultTimezoneCfg: "Local",
utils.DefaultCachingCfg: "*reload",
utils.ConnectAttemptsCfg: 5,
utils.ReconnectsCfg: -1,
utils.MaxReconnectIntervalCfg: "5m0s",
utils.ConnectTimeoutCfg: "0",
utils.ReplyTimeoutCfg: "0",
utils.LockingTimeoutCfg: "0",
utils.DigestSeparatorCfg: ",",
utils.DigestEqualCfg: ":",
utils.RSRSepCfg: ";",
utils.MaxParallelConnsCfg: 100,
utils.DecimalMaxScaleCfg: 0,
utils.DecimalMinScaleCfg: 0,
utils.DecimalPrecisionCfg: 0,
utils.DecimalRoundingModeCfg: "*toNearestEven",
utils.OptsCfg: map[string]interface{}{
utils.MetaExporterIDs: []*utils.DynamicStringSliceOpt{},
},

View File

@@ -60,7 +60,7 @@ func (kamCfg KamConnCfg) AsMapInterface() map[string]interface{} {
utils.AliasCfg: kamCfg.Alias,
utils.AddressCfg: kamCfg.Address,
utils.ReconnectsCfg: kamCfg.Reconnects,
utils.MaxReconnectIntervalCfg: kamCfg.MaxReconnectInterval,
utils.MaxReconnectIntervalCfg: kamCfg.MaxReconnectInterval.String(),
}
}

View File

@@ -93,7 +93,7 @@ func TestKamAgentCfgAsMapInterface(t *testing.T) {
"create_cdr": true,
"timezone": "UTC",
"evapi_conns":[
{"address": "127.0.0.1:8448", "reconnects": 5, "alias": ""}
{"address": "127.0.0.1:8448", "reconnects": 5, "max_reconnect_interval": "5m", "alias": ""}
],
},
}`
@@ -103,7 +103,11 @@ func TestKamAgentCfgAsMapInterface(t *testing.T) {
utils.CreateCdrCfg: true,
utils.TimezoneCfg: "UTC",
utils.EvapiConnsCfg: []map[string]interface{}{
{utils.AddressCfg: "127.0.0.1:8448", utils.ReconnectsCfg: 5, utils.AliasCfg: ""},
{
utils.AddressCfg: "127.0.0.1:8448",
utils.ReconnectsCfg: 5,
utils.MaxReconnectIntervalCfg: "5m0s",
utils.AliasCfg: ""},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -123,7 +127,12 @@ func TestKamAgentCfgAsMapInterface1(t *testing.T) {
utils.CreateCdrCfg: false,
utils.TimezoneCfg: "",
utils.EvapiConnsCfg: []map[string]interface{}{
{utils.AddressCfg: "127.0.0.1:8448", utils.ReconnectsCfg: 5, utils.AliasCfg: ""},
{
utils.AddressCfg: "127.0.0.1:8448",
utils.ReconnectsCfg: 5,
utils.MaxReconnectIntervalCfg: "0s",
utils.AliasCfg: "",
},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {

View File

@@ -256,7 +256,7 @@ func (rh *RemoteHost) AsMapInterface() (mp map[string]interface{}) {
mp[utils.ReconnectsCfg] = rh.Reconnects
}
if rh.MaxReconnectInterval != 0 {
mp[utils.MaxReconnectIntervalCfg] = rh.MaxReconnectInterval
mp[utils.MaxReconnectIntervalCfg] = rh.MaxReconnectInterval.String()
}
if rh.ConnectTimeout != 0 {
mp[utils.ConnectTimeoutCfg] = rh.ConnectTimeout

View File

@@ -795,7 +795,13 @@ func TestFsAgentCfgAsMapInterfaceCase1(t *testing.T) {
utils.EmptyBalanceAnnFileCfg: "",
utils.MaxWaitConnectionCfg: "2s",
utils.EventSocketConnsCfg: []map[string]interface{}{
{utils.AddressCfg: "127.0.0.1:8021", utils.Password: "ClueCon", utils.ReconnectsCfg: 5, utils.AliasCfg: "127.0.0.1:8021"},
{
utils.AddressCfg: "127.0.0.1:8021",
utils.Password: "ClueCon",
utils.ReconnectsCfg: 5,
utils.MaxReconnectIntervalCfg: "0s",
utils.AliasCfg: "127.0.0.1:8021",
},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -814,7 +820,7 @@ func TestFsAgentCfgAsMapInterfaceCase2(t *testing.T) {
"create_cdr": true,
"max_wait_connection": "7s",
"event_socket_conns":[
{"address": "127.0.0.1:8000", "password": "ClueCon123", "reconnects": 8, "alias": "127.0.0.1:8000"}
{"address": "127.0.0.1:8000", "password": "ClueCon123", "reconnects": 8, "max_reconnect_interval": "5m", "alias": "127.0.0.1:8000"}
],},
}`
eMap := map[string]interface{}{
@@ -828,7 +834,13 @@ func TestFsAgentCfgAsMapInterfaceCase2(t *testing.T) {
utils.EmptyBalanceAnnFileCfg: "",
utils.MaxWaitConnectionCfg: "7s",
utils.EventSocketConnsCfg: []map[string]interface{}{
{utils.AddressCfg: "127.0.0.1:8000", utils.Password: "ClueCon123", utils.ReconnectsCfg: 8, utils.AliasCfg: "127.0.0.1:8000"},
{
utils.AddressCfg: "127.0.0.1:8000",
utils.Password: "ClueCon123",
utils.ReconnectsCfg: 8,
utils.MaxReconnectIntervalCfg: "5m0s",
utils.AliasCfg: "127.0.0.1:8000",
},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -857,7 +869,13 @@ func TestFsAgentCfgAsMapInterfaceCase3(t *testing.T) {
utils.EmptyBalanceAnnFileCfg: "",
utils.MaxWaitConnectionCfg: "",
utils.EventSocketConnsCfg: []map[string]interface{}{
{utils.AddressCfg: "127.0.0.1:8021", utils.Password: "ClueCon", utils.ReconnectsCfg: 5, utils.AliasCfg: "127.0.0.1:8021"},
{
utils.AddressCfg: "127.0.0.1:8021",
utils.Password: "ClueCon",
utils.ReconnectsCfg: 5,
utils.MaxReconnectIntervalCfg: "0s",
utils.AliasCfg: "127.0.0.1:8021",
},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -928,12 +946,13 @@ func TestAsteriskAgentCfgloadFromJsonCfg(t *testing.T) {
Create_cdr: utils.BoolPointer(true),
Asterisk_conns: &[]*AstConnJsonCfg{
{
Alias: utils.StringPointer("127.0.0.1:8448"),
Address: utils.StringPointer("127.0.0.1:8088"),
User: utils.StringPointer(utils.CGRateSLwr),
Password: utils.StringPointer("CGRateS.org"),
Connect_attempts: utils.IntPointer(3),
Reconnects: utils.IntPointer(5),
Alias: utils.StringPointer("127.0.0.1:8448"),
Address: utils.StringPointer("127.0.0.1:8088"),
User: utils.StringPointer(utils.CGRateSLwr),
Password: utils.StringPointer("CGRateS.org"),
Max_reconnect_interval: utils.StringPointer("5m"),
Connect_attempts: utils.IntPointer(3),
Reconnects: utils.IntPointer(5),
},
},
}
@@ -942,12 +961,13 @@ func TestAsteriskAgentCfgloadFromJsonCfg(t *testing.T) {
SessionSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS)},
CreateCDR: true,
AsteriskConns: []*AsteriskConnCfg{{
Alias: "127.0.0.1:8448",
Address: "127.0.0.1:8088",
User: "cgrates",
Password: "CGRateS.org",
ConnectAttempts: 3,
Reconnects: 5,
Alias: "127.0.0.1:8448",
Address: "127.0.0.1:8088",
User: "cgrates",
Password: "CGRateS.org",
ConnectAttempts: 3,
Reconnects: 5,
MaxReconnectInterval: 5 * time.Minute,
}},
}
jsonCfg := NewDefaultCGRConfig()
@@ -969,7 +989,15 @@ func TestAsteriskAgentCfgAsMapInterface(t *testing.T) {
utils.SessionSConnsCfg: []string{utils.MetaInternal},
utils.CreateCdrCfg: false,
utils.AsteriskConnsCfg: []map[string]interface{}{
{utils.AliasCfg: "", utils.AddressCfg: "127.0.0.1:8088", utils.UserCf: "cgrates", utils.Password: "CGRateS.org", utils.ConnectAttemptsCfg: 3, utils.ReconnectsCfg: 5},
{
utils.AliasCfg: "",
utils.AddressCfg: "127.0.0.1:8088",
utils.UserCf: "cgrates",
utils.Password: "CGRateS.org",
utils.ConnectAttemptsCfg: 3,
utils.ReconnectsCfg: 5,
utils.MaxReconnectIntervalCfg: "0s",
},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -986,7 +1014,7 @@ func TestAsteriskAgentCfgAsMapInterface1(t *testing.T) {
"sessions_conns": ["*birpc_internal", "*conn1","*conn2"],
"create_cdr": true,
"asterisk_conns":[
{"address": "127.0.0.1:8089","connect_attempts": 5,"reconnects": 8}
{"address": "127.0.0.1:8089","connect_attempts": 5,"reconnects": 8, "max_reconnect_interval": "5m"}
],
},
}`
@@ -995,7 +1023,15 @@ func TestAsteriskAgentCfgAsMapInterface1(t *testing.T) {
utils.SessionSConnsCfg: []string{rpcclient.BiRPCInternal, "*conn1", "*conn2"},
utils.CreateCdrCfg: true,
utils.AsteriskConnsCfg: []map[string]interface{}{
{utils.AliasCfg: "", utils.AddressCfg: "127.0.0.1:8089", utils.UserCf: "cgrates", utils.Password: "CGRateS.org", utils.ConnectAttemptsCfg: 5, utils.ReconnectsCfg: 8},
{
utils.AliasCfg: "",
utils.AddressCfg: "127.0.0.1:8089",
utils.UserCf: "cgrates",
utils.Password: "CGRateS.org",
utils.ConnectAttemptsCfg: 5,
utils.ReconnectsCfg: 8,
utils.MaxReconnectIntervalCfg: "5m0s",
},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {

View File

@@ -135,7 +135,7 @@ cgrates.org,D1,,,*first,,C2,*lt:~*req.Usage:10,10,false,192.168.56.204
`
DispatcherHostCSVContent = `
#Tenant[0],ID[1],Address[2],Transport[3],ConnectAttempts[4],Reconnects[5],MaxReconnectInterval[6],ConnectTimeout[7],ReplyTimeout[8],Tls[9],ClientKey[10],ClientCertificate[11],CaCertificate[12]
cgrates.org,ALL,127.0.0.1:6012,*json,1,3,,1m,2m,false,,,
cgrates.org,ALL,127.0.0.1:6012,*json,1,3,5m,1m,2m,false,,,
`
RateProfileCSVContent = `
#Tenant,ID,FilterIDs,Weights,MinCost,MaxCost,MaxCostStrategy,RateID,RateFilterIDs,RateActivationStart,RateWeights,RateBlocker,RateIntervalStart,RateFixedFee,RateRecurrentFee,RateUnit,RateIncrement