From c2a2a86ab5ca25b44136f05547a1aad32fefbb1b Mon Sep 17 00:00:00 2001 From: DanB Date: Mon, 19 Aug 2019 16:40:02 +0200 Subject: [PATCH] Default EventReader in CGRConfig --- config/config.go | 20 ++++++++++++++------ config/config_defaults.go | 4 ++-- config/config_test.go | 4 ++-- config/erscfg.go | 6 +----- 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/config/config.go b/config/config.go index 78803e656..5a20c3a17 100755 --- a/config/config.go +++ b/config/config.go @@ -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 diff --git a/config/config_defaults.go b/config/config_defaults.go index 28dc78d7e..7404a7207 100755 --- a/config/config_defaults.go +++ b/config/config_defaults.go @@ -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 diff --git a/config/config_test.go b/config/config_test.go index 8b4761353..d81c169d2 100755 --- a/config/config_test.go +++ b/config/config_test.go @@ -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)) } } diff --git a/config/erscfg.go b/config/erscfg.go index 976fa5ef2..448e7b007 100644 --- a/config/erscfg.go +++ b/config/erscfg.go @@ -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