Default EventReader in CGRConfig

This commit is contained in:
DanB
2019-08-19 16:40:02 +02:00
parent a27512516d
commit c2a2a86ab5
4 changed files with 19 additions and 15 deletions

View File

@@ -169,7 +169,7 @@ func NewDefaultCGRConfig() (*CGRConfig, error) {
cfg.loaderCfg = make([]*LoaderSCfg, 0)
cfg.SmOsipsConfig = new(SmOsipsConfig)
cfg.apier = new(ApierCfg)
cfg.erCfg = new(ERsCfg)
cfg.ersCfg = new(ERsCfg)
cfg.ConfigReloads = make(map[string]chan struct{})
cfg.ConfigReloads[utils.CDRC] = make(chan struct{}, 1)
@@ -193,6 +193,13 @@ func NewDefaultCGRConfig() (*CGRConfig, error) {
cfg.dfltCdreProfile = cfg.CdreProfiles[utils.META_DEFAULT].Clone() // So default will stay unique, will have nil pointer in case of no defaults loaded which is an extra check
cfg.dfltCdrcProfile = cfg.CdrcProfiles["/var/spool/cgrates/cdrc/in"][0].Clone()
// populate default ERs reader
for _, ersRdr := range cfg.ersCfg.Readers {
if ersRdr.ID == utils.MetaDefault {
cfg.dfltEvRdr = ersRdr.Clone()
break
}
}
dfltFsConnConfig = cfg.fsAgentCfg.EventSocketConns[0] // We leave it crashing here on purpose if no Connection defaults defined
dfltKamConnConfig = cfg.kamAgentCfg.EvapiConns[0]
dfltAstConnCfg = cfg.asteriskAgentCfg.AsteriskConns[0]
@@ -310,8 +317,9 @@ type CGRConfig struct {
ConfigPath string // Path towards config
// Cache defaults loaded from json and needing clones
dfltCdreProfile *CdreCfg // Default cdreConfig profile
dfltCdrcProfile *CdrcCfg // Default cdrcConfig profile
dfltCdreProfile *CdreCfg // Default cdreConfig profile
dfltCdrcProfile *CdrcCfg // Default cdrcConfig profile
dfltEvRdr *EventReaderCfg // default event reader
CdreProfiles map[string]*CdreCfg // Cdre config profiles
CdrcProfiles map[string][]*CdrcCfg // Number of CDRC instances running imports, format map[dirPath][]{Configs}
@@ -352,7 +360,7 @@ type CGRConfig struct {
analyzerSCfg *AnalyzerSCfg // AnalyzerS config
SmOsipsConfig *SmOsipsConfig // SMOpenSIPS Configuration
apier *ApierCfg
erCfg *ERsCfg
ersCfg *ERsCfg
}
var posibleLoaderTypes = utils.NewStringSet([]string{utils.MetaAttributes,
@@ -1015,7 +1023,7 @@ func (self *CGRConfig) loadFromJsonCfg(jsnCfg *CgrJsonCfg) (err error) {
if err != nil {
return nil
}
if err := self.erCfg.loadFromJsonCfg(jsnERsCfg, self.generalCfg.RsrSepatarot); err != nil {
if err := self.ersCfg.loadFromJsonCfg(jsnERsCfg, self.generalCfg.RsrSepatarot); err != nil {
return err
}
@@ -1228,7 +1236,7 @@ func (cfg *CGRConfig) ApierCfg() *ApierCfg {
}
func (cfg *CGRConfig) ERsCfg() *ERsCfg {
return cfg.erCfg
return cfg.ersCfg
}
// Call implements rpcclient.RpcClientConnection interface for internal RPC

View File

@@ -308,8 +308,8 @@ const CGRATES_CFG_JSON = `
"concurrent_requests": 1024, // maximum simultaneous requests/files to process, 0 for unlimited
"source_path": "/var/spool/cgrates/cdrc/in", // read data from this path
"processed_path": "/var/spool/cgrates/cdrc/out", // move processed data here
"Xml_root_path": "", // path towards one event in case of XML CDRs
"Source_id": "ers_csv", // free form field, tag identifying the source of the CDRs within CDRS database
"xml_root_path": "", // path towards one event in case of XML CDRs
"source_id": "ers_csv", // free form field, tag identifying the source of the CDRs within CDRS database
"tenant": "", // tenant used by import
"timezone": "", // timezone for timestamps where not specified <""|UTC|Local|$IANA_TZ_DB>
"filters": [], // limit parsing based on the filters

View File

@@ -1855,7 +1855,7 @@ func TestCgrCdfEventReader(t *testing.T) {
},
},
}
if !reflect.DeepEqual(cgrCfg.erCfg, eCfg) {
t.Errorf("received: %+v,\n expecting: %+v", utils.ToJSON(cgrCfg.erCfg), utils.ToJSON(eCfg))
if !reflect.DeepEqual(cgrCfg.ersCfg, eCfg) {
t.Errorf("received: %+v,\n expecting: %+v", utils.ToJSON(cgrCfg.ersCfg), utils.ToJSON(eCfg))
}
}

View File

@@ -47,7 +47,7 @@ func (erS *ERsCfg) loadFromJsonCfg(jsnCfg *ERsJsonCfg, sep string) (err error) {
if jsnCfg.Readers != nil {
erS.Readers = make([]*EventReaderCfg, len(*jsnCfg.Readers))
for idx, rdrs := range *jsnCfg.Readers {
erS.Readers[idx] = NewDfltEventReaderCfg()
erS.Readers[idx] = new(EventReaderCfg)
if err = erS.Readers[idx].loadFromJsonCfg(rdrs, sep); err != nil {
return err
}
@@ -72,10 +72,6 @@ func (erS *ERsCfg) Clone() (cln *ERsCfg) {
return
}
func NewDfltEventReaderCfg() *EventReaderCfg {
return new(EventReaderCfg)
}
type EventReaderCfg struct {
ID string
Type string