mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-17 06:09:53 +05:00
Merge pull request #1850 from TeoV/master
Add sanity check for Session Replicate Connection
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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"}],
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
||||
@@ -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"}],
|
||||
}
|
||||
},
|
||||
|
||||
@@ -70,6 +70,7 @@
|
||||
{"address": "127.0.0.1:8021", "password": "ClueCon", "reconnects": -1,"alias":""}
|
||||
],
|
||||
"sessions_conns": ["*internal"],
|
||||
"create_cdr": true
|
||||
},
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
@@ -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
|
||||
},
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user