Add connection from CDRs to EEs in config

This commit is contained in:
TeoV
2020-06-10 11:53:32 +03:00
committed by Dan Christian Bogos
parent 353d95d7c9
commit 87b6dca365
6 changed files with 24 additions and 0 deletions

View File

@@ -36,6 +36,7 @@ type CdrsCfg struct {
StatSConns []string
OnlineCDRExports []string // list of CDRE templates to use for real-time CDR exports
SchedulerConns []string
EEsConns []string
}
//loadFromJsonCfg loads Cdrs config from JsonCfg
@@ -129,6 +130,17 @@ func (cdrscfg *CdrsCfg) loadFromJsonCfg(jsnCdrsCfg *CdrsJsonCfg) (err error) {
}
}
if jsnCdrsCfg.Ees_conns != nil {
cdrscfg.EEsConns = make([]string, len(*jsnCdrsCfg.Ees_conns))
for idx, connID := range *jsnCdrsCfg.Ees_conns {
// if we have the connection internal we change the name so we can have internal rpc for each subsystem
if connID == utils.MetaInternal {
cdrscfg.EEsConns[idx] = utils.ConcatenatedKey(utils.MetaInternal, utils.MetaEEs)
} else {
cdrscfg.EEsConns[idx] = connID
}
}
}
return nil
}

View File

@@ -274,6 +274,7 @@ const CGRATES_CFG_JSON = `
"stats_conns": [], // connections to StatS for CDR reporting, empty to disable stats functionality: <""|*internal|$rpc_conns_id>
"online_cdr_exports":[], // list of CDRE profiles to use for real-time CDR exports
"scheduler_conns": [], // connections to SchedulerS in case of *dynaprepaid request
"ees_conns": [], // connections to EventExporter
},

View File

@@ -570,6 +570,7 @@ func TestDfCdrsJsonCfg(t *testing.T) {
Stats_conns: &[]string{},
Online_cdr_exports: &[]string{},
Scheduler_conns: &[]string{},
Ees_conns: &[]string{},
}
if cfg, err := dfCgrJsonCfg.CdrsJsonCfg(); err != nil {
t.Error(err)

View File

@@ -428,6 +428,7 @@ func TestCgrCfgJSONDefaultsCDRS(t *testing.T) {
ThresholdSConns: []string{},
StatSConns: []string{},
SchedulerConns: []string{},
EEsConns: []string{},
}
if !reflect.DeepEqual(eCdrsCfg, cgrCfg.cdrsCfg) {
t.Errorf("Expecting: %+v , received: %+v", eCdrsCfg, cgrCfg.cdrsCfg)

View File

@@ -98,6 +98,14 @@ func (cfg *CGRConfig) checkConfigSanity() error {
return fmt.Errorf("<%s> cannot find CDR export template with ID: <%s>", utils.CDRs, cdrePrfl)
}
}
for _, connID := range cfg.cdrsCfg.EEsConns {
if strings.HasPrefix(connID, utils.MetaInternal) && !cfg.eesCfg.Enabled {
return fmt.Errorf("<%s> not enabled but requested by <%s> component.", utils.EEs, utils.CDRs)
}
if _, has := cfg.rpcConns[connID]; !has && !strings.HasPrefix(connID, utils.MetaInternal) {
return fmt.Errorf("<%s> connection with id: <%s> not defined", utils.CDRs, connID)
}
}
for prfl, cdre := range cfg.CdreProfiles {
for _, field := range cdre.Fields {
if field.Type != utils.META_NONE && field.Path == utils.EmptyString {

View File

@@ -151,6 +151,7 @@ type CdrsJsonCfg struct {
Stats_conns *[]string
Online_cdr_exports *[]string
Scheduler_conns *[]string
Ees_conns *[]string
}
// Cdre config section