mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Add connection from CDRs to EEs in config
This commit is contained in:
committed by
Dan Christian Bogos
parent
353d95d7c9
commit
87b6dca365
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
},
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -151,6 +151,7 @@ type CdrsJsonCfg struct {
|
||||
Stats_conns *[]string
|
||||
Online_cdr_exports *[]string
|
||||
Scheduler_conns *[]string
|
||||
Ees_conns *[]string
|
||||
}
|
||||
|
||||
// Cdre config section
|
||||
|
||||
Reference in New Issue
Block a user