Merge pull request #1850 from TeoV/master

Add sanity check for Session Replicate Connection
This commit is contained in:
Dan Christian Bogos
2020-01-08 16:48:08 +01:00
committed by GitHub
11 changed files with 16 additions and 17 deletions

View File

@@ -56,7 +56,6 @@ const CGRATES_CFG_JSON = `
"rpc_conns": {
"*localhost": {
"strategy": "*first",
"conns": [{"address": "127.0.0.1:2012", "transport":"*json"}],
},
}, // rpc connections definitions

View File

@@ -358,7 +358,7 @@ func TestCGRConfigReloadSessionS(t *testing.T) {
AttrSConns: []string{utils.MetaLocalHost},
CDRsConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCDRs)},
ReplicationConns: []*RemoteHost{},
ReplicationConns: []string{},
MaxCallDuration: 3 * time.Hour,
SessionIndexes: utils.NewStringMap(),
ClientProtocol: 1,

View File

@@ -207,6 +207,11 @@ func (cfg *CGRConfig) checkConfigSanity() error {
return fmt.Errorf("<%s> Connection with id: <%s> not defined", utils.SessionS, connID)
}
}
for _, connID := range cfg.sessionSCfg.ReplicationConns {
if _, has := cfg.rpcConns[connID]; !has {
return fmt.Errorf("<%s> Connection with id: <%s> not defined", utils.SessionS, connID)
}
}
if cfg.cacheCfg[utils.CacheClosedSessions].Limit == 0 {
return fmt.Errorf("<%s> %s needs to be != 0, received: %d", utils.CacheS, utils.CacheClosedSessions, cfg.cacheCfg[utils.CacheClosedSessions].Limit)
}

View File

@@ -27,6 +27,10 @@
"strategy": "*first",
"conns": [{"address": "127.0.0.1:6012", "transport":"*json"}],
},
"rplConn": {
"strategy": "*broadcast_sync",
"conns": [{"address": "127.0.0.1:7012", "transport":"*json"}],
}
},

View File

@@ -19,7 +19,7 @@
"conns": [{"address": "127.0.0.1:22012", "transport":"*json"}],
},
"rplConn": {
"strategy": "*broadcast_sync",
"strategy": "*broadcast",
"conns": [{"address": "127.0.0.1:2012", "transport": "*json"}],
}
},

View File

@@ -70,6 +70,7 @@
{"address": "127.0.0.1:8021", "password": "ClueCon", "reconnects": -1,"alias":""}
],
"sessions_conns": ["*internal"],
"create_cdr": true
},

View File

@@ -37,6 +37,7 @@
"enabled": true,
"stats_conns": ["*localhost"],
"chargers_conns": ["*internal"],
"rals_conns": ["*localhost"],
"sessions_cost_retries": 5,
},
@@ -69,6 +70,7 @@
{"address": "127.0.0.1:8021", "password": "ClueCon", "reconnects": -1,"alias":""}
],
"sessions_conns": ["*internal"],
"create_cdr": true
},

View File

@@ -28,7 +28,6 @@ import (
"testing"
"time"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
"github.com/cgrates/cgrates/utils"
@@ -705,12 +704,7 @@ func testDspSessionReplicate(t *testing.T) {
ArgsReplicateSessions: sessions.ArgsReplicateSessions{
CGRID: "c87609aa1cb6e9529ab1836cfeeebaab7aa7ebaf",
Passive: false,
Connections: []*config.RemoteHost{
&config.RemoteHost{
Address: "127.0.0.1:7012",
Transport: utils.MetaJSON,
},
},
ConnIDs: []string{"rplConn"},
},
}, &reply); err != nil {
t.Fatal(err)

View File

@@ -40,8 +40,6 @@ import (
var tutorialCallsCfg *config.CGRConfig
var tutorialCallsRpc *rpc.Client
var tutorialCallsPjSuaListener *os.File
var waitRater = flag.Int("wait_rater", 1000, "Number of miliseconds to wait for rater to start and cache")
var dataDir = flag.String("data_dir", "/usr/share/cgrates", "CGR data dir path here")
var fsConfig = flag.String("fsConfig", "/usr/share/cgrates/tutorial_tests/fs_evsock", "FreeSwitch tutorial folder")
var kamConfig = flag.String("kamConfig", "/usr/share/cgrates/tutorial_tests/kamevapi", "Kamailio tutorial folder")
var oSipsConfig = flag.String("osConfig", "/usr/share/cgrates/tutorial_tests/osips", "OpenSips tutorial folder")
@@ -762,20 +760,16 @@ func testCallSyncSessions(t *testing.T) {
}
var sourceForCDR string
var numberOfCDR int
numberOfCDR := 3
switch optConf {
case utils.Freeswitch:
sourceForCDR = "FS_CHANNEL_ANSWER"
numberOfCDR = 2
case utils.Kamailio:
sourceForCDR = utils.KamailioAgent
numberOfCDR = 3
case utils.Asterisk:
sourceForCDR = utils.AsteriskAgent
numberOfCDR = 3
case utils.Opensips:
sourceForCDR = utils.Opensips
numberOfCDR = 3
}
// verify cdr
var rplCdrs []*engine.ExternalCDR