diff --git a/apis/cdrs_test.go b/apis/cdrs_test.go index 6e19cc409..9f817640e 100644 --- a/apis/cdrs_test.go +++ b/apis/cdrs_test.go @@ -33,7 +33,7 @@ func TestCDRsProcessEvent(t *testing.T) { connMgr := engine.NewConnManager(cfg) data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items) dm := engine.NewDataManager(data, cfg.CacheCfg(), nil) - var storDB engine.StorDB + storDB := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan engine.StorDB, 1) storDBChan <- storDB cdrS := engine.NewCDRServer(cfg, dm, engine.NewFilterS(cfg, connMgr, dm), connMgr, storDBChan) @@ -60,7 +60,7 @@ func TestCDRsProcessEventWithGet(t *testing.T) { connMgr := engine.NewConnManager(cfg) data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items) dm := engine.NewDataManager(data, cfg.CacheCfg(), nil) - var storDB engine.StorDB + storDB := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan engine.StorDB, 1) storDBChan <- storDB cdrS := engine.NewCDRServer(cfg, dm, engine.NewFilterS(cfg, connMgr, dm), connMgr, storDBChan) diff --git a/config/cdrscfg.go b/config/cdrscfg.go index 18458ab07..1d3d218f0 100644 --- a/config/cdrscfg.go +++ b/config/cdrscfg.go @@ -33,6 +33,8 @@ const ( CDRsRatesDftOpt = false CDRsStatsDftOpt = false CDRsThresholdsDftOpt = false + CDRsRerateDftOpt = false + CDRsStoreDftOpt = true ) type CdrsOpts struct { @@ -43,13 +45,14 @@ type CdrsOpts struct { Rates []*utils.DynamicBoolOpt Stats []*utils.DynamicBoolOpt Thresholds []*utils.DynamicBoolOpt + Rerate []*utils.DynamicBoolOpt + Store []*utils.DynamicBoolOpt } // CdrsCfg is the CDR server type CdrsCfg struct { Enabled bool // Enable CDR Server service ExtraFields RSRParsers // Extra fields to store in CDRs - StoreCdrs bool // store cdrs in storDb SMCostRetries int ChargerSConns []string AttributeSConns []string @@ -97,6 +100,12 @@ func (cdrsOpts *CdrsOpts) loadFromJSONCfg(jsnCfg *CdrsOptsJson) { if jsnCfg.Thresholds != nil { cdrsOpts.Thresholds = append(cdrsOpts.Thresholds, jsnCfg.Thresholds...) } + if jsnCfg.Store != nil { + cdrsOpts.Store = append(cdrsOpts.Store, jsnCfg.Store...) + } + if jsnCfg.Rerate != nil { + cdrsOpts.Rerate = append(cdrsOpts.Rerate, jsnCfg.Rerate...) + } } // loadFromJSONCfg loads Cdrs config from JsonCfg @@ -112,9 +121,6 @@ func (cdrscfg *CdrsCfg) loadFromJSONCfg(jsnCdrsCfg *CdrsJsonCfg) (err error) { return } } - if jsnCdrsCfg.Store_cdrs != nil { - cdrscfg.StoreCdrs = *jsnCdrsCfg.Store_cdrs - } if jsnCdrsCfg.Session_cost_retries != nil { cdrscfg.SMCostRetries = *jsnCdrsCfg.Session_cost_retries } @@ -161,11 +167,12 @@ func (cdrscfg CdrsCfg) AsMapInterface(string) any { utils.MetaRates: cdrscfg.Opts.Rates, utils.MetaStats: cdrscfg.Opts.Stats, utils.MetaThresholds: cdrscfg.Opts.Thresholds, + utils.MetaRerate: cdrscfg.Opts.Rerate, + utils.MetaStore: cdrscfg.Opts.Store, } mp := map[string]any{ utils.EnabledCfg: cdrscfg.Enabled, utils.SMCostRetriesCfg: cdrscfg.SMCostRetries, - utils.StoreCdrsCfg: cdrscfg.StoreCdrs, utils.ExtraFieldsCfg: cdrscfg.ExtraFields.AsStringSlice(), utils.OnlineCDRExportsCfg: slices.Clone(cdrscfg.OnlineCDRExports), utils.OptsCfg: opts, @@ -230,6 +237,14 @@ func (cdrsOpts *CdrsOpts) Clone() *CdrsOpts { if cdrsOpts.Thresholds != nil { thdS = utils.CloneDynamicBoolOpt(cdrsOpts.Thresholds) } + var rerate []*utils.DynamicBoolOpt + if cdrsOpts.Rerate != nil { + rerate = utils.CloneDynamicBoolOpt(cdrsOpts.Rerate) + } + var store []*utils.DynamicBoolOpt + if cdrsOpts.Store != nil { + store = utils.CloneDynamicBoolOpt(cdrsOpts.Store) + } return &CdrsOpts{ Accounts: accS, Attributes: attrS, @@ -238,6 +253,8 @@ func (cdrsOpts *CdrsOpts) Clone() *CdrsOpts { Rates: rtS, Stats: stS, Thresholds: thdS, + Rerate: rerate, + Store: store, } } @@ -246,7 +263,6 @@ func (cdrscfg CdrsCfg) Clone() (cln *CdrsCfg) { cln = &CdrsCfg{ Enabled: cdrscfg.Enabled, ExtraFields: cdrscfg.ExtraFields.Clone(), - StoreCdrs: cdrscfg.StoreCdrs, SMCostRetries: cdrscfg.SMCostRetries, Opts: cdrscfg.Opts.Clone(), } @@ -289,13 +305,14 @@ type CdrsOptsJson struct { Rates []*utils.DynamicBoolOpt `json:"*rates"` Stats []*utils.DynamicBoolOpt `json:"*stats"` Thresholds []*utils.DynamicBoolOpt `json:"*thresholds"` + Rerate []*utils.DynamicBoolOpt `json:"*rerate"` + Store []*utils.DynamicBoolOpt `json:"*store"` } // Cdrs config section type CdrsJsonCfg struct { Enabled *bool Extra_fields *[]string - Store_cdrs *bool Session_cost_retries *int Chargers_conns *[]string Attributes_conns *[]string @@ -334,6 +351,12 @@ func diffCdrsOptsJsonCfg(d *CdrsOptsJson, v1, v2 *CdrsOpts) *CdrsOptsJson { if !utils.DynamicBoolOptEqual(v1.Thresholds, v2.Thresholds) { d.Thresholds = v2.Thresholds } + if !utils.DynamicBoolOptEqual(v1.Rerate, v2.Rerate) { + d.Rerate = v2.Rerate + } + if !utils.DynamicBoolOptEqual(v1.Store, v2.Store) { + d.Store = v2.Store + } return d } @@ -349,9 +372,6 @@ func diffCdrsJsonCfg(d *CdrsJsonCfg, v1, v2 *CdrsCfg) *CdrsJsonCfg { if !slices.Equal(extra1, extra2) { d.Extra_fields = &extra2 } - if v1.StoreCdrs != v2.StoreCdrs { - d.Store_cdrs = utils.BoolPointer(v2.StoreCdrs) - } if v1.SMCostRetries != v2.SMCostRetries { d.Session_cost_retries = utils.IntPointer(v2.SMCostRetries) } diff --git a/config/cdrscfg_test.go b/config/cdrscfg_test.go index 9d2ff1659..8b0962774 100644 --- a/config/cdrscfg_test.go +++ b/config/cdrscfg_test.go @@ -52,7 +52,6 @@ func TestCdrsCfgloadFromJsonCfg(t *testing.T) { RateSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRates), "*conn1"}, AccountSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAccounts), "*conn1"}, ExtraFields: RSRParsers{}, - StoreCdrs: true, Opts: &CdrsOpts{ Accounts: []*utils.DynamicBoolOpt{}, Attributes: []*utils.DynamicBoolOpt{}, @@ -61,6 +60,8 @@ func TestCdrsCfgloadFromJsonCfg(t *testing.T) { Rates: []*utils.DynamicBoolOpt{}, Stats: []*utils.DynamicBoolOpt{}, Thresholds: []*utils.DynamicBoolOpt{}, + Rerate: []*utils.DynamicBoolOpt{}, + Store: []*utils.DynamicBoolOpt{}, }, } jsnCfg := NewDefaultCGRConfig() @@ -175,7 +176,6 @@ func TestCdrsCfgAsMapInterface(t *testing.T) { "cdrs": { "enabled": true, "extra_fields": ["~*req.PayPalAccount", "~*req.LCRProfile", "~*req.ResourceID"], - "store_cdrs": false, "session_cost_retries": 5, "chargers_conns":["*internal:*chargers","*conn1"], "attributes_conns": ["*internal:*attributes","*conn1"], @@ -201,7 +201,6 @@ func TestCdrsCfgAsMapInterface(t *testing.T) { utils.EEsConnsCfg: []string{utils.MetaInternal, "*conn1"}, utils.RateSConnsCfg: []string{utils.MetaInternal, "*conn1"}, utils.AccountSConnsCfg: []string{utils.MetaInternal, "*conn1"}, - utils.StoreCdrsCfg: false, utils.OptsCfg: map[string]any{ utils.MetaAccounts: []*utils.DynamicBoolOpt{}, utils.MetaAttributes: []*utils.DynamicBoolOpt{}, @@ -210,6 +209,8 @@ func TestCdrsCfgAsMapInterface(t *testing.T) { utils.MetaRates: []*utils.DynamicBoolOpt{}, utils.MetaStats: []*utils.DynamicBoolOpt{}, utils.MetaThresholds: []*utils.DynamicBoolOpt{}, + utils.MetaRerate: []*utils.DynamicBoolOpt{}, + utils.MetaStore: []*utils.DynamicBoolOpt{}, }, } if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil { @@ -223,7 +224,6 @@ func TestCdrsCfgAsMapInterface2(t *testing.T) { cfgJSONStr := `{ "cdrs": { "enabled":true, - "store_cdrs": false, "chargers_conns": ["conn1", "conn2"], "attributes_conns": ["*internal"], "ees_conns": ["conn1"], @@ -232,7 +232,6 @@ func TestCdrsCfgAsMapInterface2(t *testing.T) { eMap := map[string]any{ utils.EnabledCfg: true, utils.ExtraFieldsCfg: []string{}, - utils.StoreCdrsCfg: false, utils.SessionCostRetires: 5, utils.ChargerSConnsCfg: []string{"conn1", "conn2"}, utils.AttributeSConnsCfg: []string{"*internal"}, @@ -251,6 +250,8 @@ func TestCdrsCfgAsMapInterface2(t *testing.T) { utils.MetaRates: []*utils.DynamicBoolOpt{}, utils.MetaStats: []*utils.DynamicBoolOpt{}, utils.MetaThresholds: []*utils.DynamicBoolOpt{}, + utils.MetaRerate: []*utils.DynamicBoolOpt{}, + utils.MetaStore: []*utils.DynamicBoolOpt{}, }, } if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil { @@ -558,16 +559,16 @@ func TestCdrsCfgdiffCdrsJsonCfg(t *testing.T) { bl := true d := &CdrsJsonCfg{} v2 := &CdrsCfg{ - StoreCdrs: true, - Opts: co, + Enabled: true, + Opts: co, } v1 := &CdrsCfg{ - StoreCdrs: false, - Opts: co, + Enabled: false, + Opts: co, } exp := &CdrsJsonCfg{ - Store_cdrs: &bl, - Opts: coj, + Enabled: &bl, + Opts: coj, } rcv := diffCdrsJsonCfg(d, v1, v2) diff --git a/config/config.go b/config/config.go index ed7f14c0c..5ce4043fd 100644 --- a/config/config.go +++ b/config/config.go @@ -130,6 +130,8 @@ func newCGRConfig(config []byte) (cfg *CGRConfig, err error) { Rates: []*utils.DynamicBoolOpt{}, Stats: []*utils.DynamicBoolOpt{}, Thresholds: []*utils.DynamicBoolOpt{}, + Rerate: []*utils.DynamicBoolOpt{}, + Store: []*utils.DynamicBoolOpt{}, }}, analyzerSCfg: &AnalyzerSCfg{ Opts: &AnalyzerSOpts{ diff --git a/config/config_defaults.go b/config/config_defaults.go index 8096158f0..a1ea234f0 100644 --- a/config/config_defaults.go +++ b/config/config_defaults.go @@ -309,7 +309,6 @@ const CGRATES_CFG_JSON = ` "cdrs": { // CDRs config "enabled": false, // start the CDR Server: "extra_fields": [], // extra fields to store in CDRs for non-generic CDRs (ie: FreeSWITCH JSON) - "store_cdrs": true, // store cdrs in StorDB "session_cost_retries": 5, // number of queries to session_costs before recalculating CDR "chargers_conns": [], // connection to ChargerS for CDR forking, empty to disable billing for CDRs: <""|*internal|$rpc_conns_id> "attributes_conns": [], // connection to AttributeS for altering *raw CDRs, empty to disable attributes functionality: <""|*internal|$rpc_conns_id> @@ -370,6 +369,20 @@ const CGRATES_CFG_JSON = ` // "Value": false, // }, // ], + // "*rerate": [ + // { + // "Tenant": "*any", + // "FilterIDs": [], + // "Value": false, + // }, + // ], + // "*store": [ + // { + // "Tenant": "*any", + // "FilterIDs": [], + // "Value": true, + // }, + // ], }, }, diff --git a/config/config_json_test.go b/config/config_json_test.go index 36cec9385..ff5acfc26 100644 --- a/config/config_json_test.go +++ b/config/config_json_test.go @@ -522,7 +522,6 @@ func TestDfCdrsJsonCfg(t *testing.T) { eCfg := &CdrsJsonCfg{ Enabled: utils.BoolPointer(false), Extra_fields: &[]string{}, - Store_cdrs: utils.BoolPointer(true), Session_cost_retries: utils.IntPointer(5), Chargers_conns: &[]string{}, Attributes_conns: &[]string{}, diff --git a/config/config_test.go b/config/config_test.go index dfe387f04..d44989f76 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -315,7 +315,6 @@ func TestCgrCfgJSONDefaultsCDRS(t *testing.T) { eCdrsCfg := &CdrsCfg{ Enabled: false, SMCostRetries: 5, - StoreCdrs: true, ChargerSConns: []string{}, AttributeSConns: []string{}, ThresholdSConns: []string{}, @@ -333,6 +332,8 @@ func TestCgrCfgJSONDefaultsCDRS(t *testing.T) { Rates: []*utils.DynamicBoolOpt{}, Stats: []*utils.DynamicBoolOpt{}, Thresholds: []*utils.DynamicBoolOpt{}, + Rerate: []*utils.DynamicBoolOpt{}, + Store: []*utils.DynamicBoolOpt{}, }, } if !reflect.DeepEqual(eCdrsCfg, cgrCfg.cdrsCfg) { @@ -3967,7 +3968,6 @@ func TestV1GetConfigCdrs(t *testing.T) { CDRsJSON: map[string]any{ utils.EnabledCfg: false, utils.ExtraFieldsCfg: []string{}, - utils.StoreCdrsCfg: true, utils.SessionCostRetires: 5, utils.ChargerSConnsCfg: []string{}, utils.AttributeSConnsCfg: []string{}, @@ -3986,6 +3986,8 @@ func TestV1GetConfigCdrs(t *testing.T) { utils.MetaRates: []*utils.DynamicBoolOpt{}, utils.MetaStats: []*utils.DynamicBoolOpt{}, utils.MetaThresholds: []*utils.DynamicBoolOpt{}, + utils.MetaRerate: []*utils.DynamicBoolOpt{}, + utils.MetaStore: []*utils.DynamicBoolOpt{}, }, }, } @@ -5084,7 +5086,7 @@ func TestV1GetConfigAsJSONFilterS(t *testing.T) { func TestV1GetConfigAsJSONCdrs(t *testing.T) { var reply string - expected := `{"cdrs":{"accounts_conns":[],"actions_conns":[],"attributes_conns":[],"chargers_conns":[],"ees_conns":[],"enabled":false,"extra_fields":[],"online_cdr_exports":null,"opts":{"*accounts":[],"*attributes":[],"*chargers":[],"*ees":[],"*rates":[],"*stats":[],"*thresholds":[]},"rates_conns":[],"session_cost_retries":5,"stats_conns":[],"store_cdrs":true,"thresholds_conns":[]}}` + expected := `{"cdrs":{"accounts_conns":[],"actions_conns":[],"attributes_conns":[],"chargers_conns":[],"ees_conns":[],"enabled":false,"extra_fields":[],"online_cdr_exports":null,"opts":{"*accounts":[],"*attributes":[],"*chargers":[],"*ees":[],"*rates":[],"*rerate":[],"*stats":[],"*store":[],"*thresholds":[]},"rates_conns":[],"session_cost_retries":5,"stats_conns":[],"thresholds_conns":[]}}` cfgCgr := NewDefaultCGRConfig() if err := cfgCgr.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Sections: []string{CDRsJSON}}, &reply); err != nil { t.Error(err) diff --git a/engine/cdrs.go b/engine/cdrs.go index 150d823be..ff75b336a 100644 --- a/engine/cdrs.go +++ b/engine/cdrs.go @@ -310,6 +310,35 @@ func (cdrS *CDRServer) processEvents(ctx *context.Context, evs []*utils.CGREvent } } + for _, cgrEv := range cgrEvs { + store, err := GetBoolOpts(ctx, cgrEv.Tenant, cgrEv.AsDataProvider(), cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Store, + config.CDRsStoreDftOpt, utils.MetaStore) + if err != nil { + return nil, fmt.Errorf("retrieving %s option failed: %w", utils.MetaStore, err) + } + if !store { + continue + } + rerate, err := GetBoolOpts(ctx, cgrEv.Tenant, cgrEv.AsDataProvider(), cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Rerate, + config.CDRsRerateDftOpt, utils.MetaRerate) + if err != nil { + return nil, fmt.Errorf("retrieving %s option failed: %w", utils.MetaRerate, err) + } + if err := cdrS.db.SetCDR(cgrEv, false); err != nil { + if err != utils.ErrExists || !rerate { + + // ToDo: add refund logic + return nil, fmt.Errorf("storing CDR %s failed: %w", utils.ToJSON(cgrEv), err) + } + if err = cdrS.db.SetCDR(cgrEv, true); err != nil { + utils.Logger.Warning( + fmt.Sprintf("<%s> error: <%s> updating CDR %+v", + utils.CDRs, err.Error(), utils.ToJSON(cgrEv))) + return nil, utils.ErrPartiallyExecuted + } + } + } + for _, cgrEv := range cgrEvs { export, err := GetBoolOpts(ctx, cgrEv.Tenant, cgrEv.AsDataProvider(), cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Export, config.CDRsExportDftOpt, utils.OptsCDRsExport) diff --git a/engine/cdrs_test.go b/engine/cdrs_test.go index a0078823a..47ac5e1e1 100644 --- a/engine/cdrs_test.go +++ b/engine/cdrs_test.go @@ -38,7 +38,7 @@ func TestCDRsNewCDRServer(t *testing.T) { dm := &DataManager{} fltrs := &FilterS{} connMng := &ConnManager{} - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -63,7 +63,7 @@ func TestCDRsChrgrSProcessEventErrMsnConnIDs(t *testing.T) { dm := &DataManager{} fltrs := &FilterS{} connMng := &ConnManager{} - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -96,7 +96,7 @@ func TestCDRsAttrSProcessEventNoOpts(t *testing.T) { dm := &DataManager{} fltrs := &FilterS{} connMng := &ConnManager{} - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -127,7 +127,7 @@ func TestCDRsAttrSProcessEvent(t *testing.T) { dm := &DataManager{} fltrs := &FilterS{} connMng := &ConnManager{} - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -161,7 +161,7 @@ func TestCDRsRateSCostForEventErr(t *testing.T) { dm := &DataManager{} fltrs := &FilterS{} connMng := &ConnManager{} - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -195,7 +195,7 @@ func TestCDRsAccountSDebitEventErr(t *testing.T) { dm := &DataManager{} fltrs := &FilterS{} connMng := &ConnManager{} - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -229,7 +229,7 @@ func TestCDRsThdSProcessEventErr(t *testing.T) { dm := &DataManager{} fltrs := &FilterS{} connMng := &ConnManager{} - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -261,7 +261,7 @@ func TestCDRsStatSProcessEventErrMsnConnIDs(t *testing.T) { dm := &DataManager{} fltrs := &FilterS{} connMng := &ConnManager{} - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -296,7 +296,7 @@ func TestCDRsEESProcessEventErrMsnConnIDs(t *testing.T) { dm := &DataManager{} fltrs := &FilterS{} connMng := &ConnManager{} - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -364,7 +364,7 @@ func TestCDRsAttrSProcessEventMock(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -444,7 +444,7 @@ func TestCDRsAttrSProcessEventMockNotFoundErr(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -526,7 +526,7 @@ func TestCDRsAttrSProcessEventMockNotEmptyAF(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -627,7 +627,7 @@ func TestCDRsChrgrSProcessEvent(t *testing.T) { connMng := NewConnManager(cfg) dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -697,7 +697,7 @@ func TestCDRsRateProcessEventMock(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -776,7 +776,7 @@ func TestCDRsAccountProcessEventMock(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -857,7 +857,7 @@ func TestCDRsThdSProcessEventMock(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -930,7 +930,7 @@ func TestCDRsThdSProcessEventMockNotfound(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -1002,7 +1002,7 @@ func TestCDRsStatSProcessEventMock(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -1075,7 +1075,7 @@ func TestCDRsEESProcessEventMock(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -1152,7 +1152,7 @@ func TestCDRsProcessEventMock(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, nil) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -1225,7 +1225,7 @@ func TestCDRsProcessEventMockSkipOpts(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -1317,7 +1317,7 @@ func TestCDRsProcessEventMockAttrsErr(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -1381,7 +1381,7 @@ func TestCDRsProcessEventMockAttrsErrBoolOpts(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -1446,7 +1446,7 @@ func TestCDRsProcessEventMockChrgsErr(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -1511,7 +1511,7 @@ func TestCDRsProcessEventMockChrgsErrBoolOpts(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -1577,7 +1577,7 @@ func TestCDRsProcessEventMockRateSErr(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -1642,7 +1642,7 @@ func TestCDRsProcessEventMockRateSErrBoolOpts(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -1708,7 +1708,7 @@ func TestCDRsProcessEventMockAcntsErr(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -1773,7 +1773,7 @@ func TestCDRsProcessEventMockAcntsErrBoolOpts(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -1840,7 +1840,7 @@ func TestCDRsProcessEventMockExportErr(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -1905,7 +1905,7 @@ func TestCDRsProcessEventMockExportErrBoolOpts(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -1971,7 +1971,7 @@ func TestCDRsProcessEventMockThdsErr(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -2036,7 +2036,7 @@ func TestCDRsProcessEventMockThdsErrBoolOpts(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -2102,7 +2102,7 @@ func TestCDRsProcessEventMockStatsErr(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -2167,7 +2167,7 @@ func TestCDRsProcessEventMockStatsErrGetBoolOpts(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -2228,7 +2228,7 @@ func TestCDRsV1ProcessEventMock(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -2307,7 +2307,7 @@ func TestCDRsV1ProcessEventMockErr(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -2389,7 +2389,7 @@ func TestCDRsV1ProcessEventMockCache(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -2473,7 +2473,7 @@ func TestCDRsV1ProcessEventWithGetMockCache(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -2556,7 +2556,7 @@ func TestCDRsV1ProcessEventWithGetMockCacheErr(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -2623,7 +2623,7 @@ func TestCDRsChrgrSProcessEventEmptyChrgrs(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -2679,7 +2679,7 @@ func TestCDRsV1ProcessEventCacheGet(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, nil, storDBChan) @@ -2729,7 +2729,7 @@ func TestCDRsV1ProcessEventWithGetCacheGet(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, nil, storDBChan) @@ -2781,7 +2781,7 @@ func TestCDRServerAccountSRefundCharges(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -2861,7 +2861,7 @@ func TestCDRServerAccountSRefundChargesErr(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -2965,7 +2965,7 @@ func TestCDRsProcessEventMockThdsEcCostIface(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -3028,7 +3028,7 @@ func TestCDRsProcessEventMockThdsEcCostIfaceMarshalErr(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -3070,7 +3070,7 @@ func TestCDRsProcessEventMockThdsEcCostIfaceUnmarshalErr(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) @@ -3116,7 +3116,7 @@ func TestCDRsV1ProcessEventWithGetMockCacheErrResp(t *testing.T) { dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, nil, dm) Cache = NewCacheS(cfg, dm, nil, nil) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, nil, storDBChan) @@ -3166,7 +3166,7 @@ func TestCDRServerListenAndServe(t *testing.T) { connMng := NewConnManager(cfg) dm := NewDataManager(data, cfg.CacheCfg(), nil) fltrs := NewFilterS(cfg, connMng, dm) - var storDB StorDB + storDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items) storDBChan := make(chan StorDB, 1) storDBChan <- storDB newCDRSrv := NewCDRServer(cfg, dm, fltrs, connMng, storDBChan) diff --git a/rates/rates_test.go b/rates/rates_test.go index 444300c98..45be73e68 100644 --- a/rates/rates_test.go +++ b/rates/rates_test.go @@ -1082,7 +1082,7 @@ func TestCDRProcessRatesCostForEvent(t *testing.T) { data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items) dm := engine.NewDataManager(data, cfg.CacheCfg(), connMgr) filters := engine.NewFilterS(cfg, connMgr, dm) - var storDB engine.StorDB + storDB := engine.NewInternalDB(nil, nil, nil) storDBChan := make(chan engine.StorDB, 1) storDBChan <- storDB cdrs := engine.NewCDRServer(cfg, dm, filters, connMgr, storDBChan) diff --git a/utils/consts.go b/utils/consts.go index 9211f0b10..a18bfbf66 100644 --- a/utils/consts.go +++ b/utils/consts.go @@ -1913,7 +1913,6 @@ const ( CDRsConnsCfg = "cdrs_conns" FiltersCfg = "filters" ExtraFieldsCfg = "extra_fields" - StoreCdrsCfg = "store_cdrs" SMCostRetriesCfg = "session_cost_retries" ChargerSConnsCfg = "chargers_conns" AttributeSConnsCfg = "attributes_conns"