From f801d747e2ab04ba0c57f77ca2863fa8b6cb6b1b Mon Sep 17 00:00:00 2001 From: Trial97 Date: Fri, 1 Oct 2021 14:29:36 +0300 Subject: [PATCH] Updated sessions and cdrs flag handling --- accounts/libaccounts.go | 4 ++-- actions/actions.go | 5 +---- engine/cdrs.go | 17 ++++++++--------- sessions/sessions.go | 12 +++++------- utils/cgrevent.go | 2 +- 5 files changed, 17 insertions(+), 23 deletions(-) diff --git a/accounts/libaccounts.go b/accounts/libaccounts.go index 320ac3e58..600017997 100644 --- a/accounts/libaccounts.go +++ b/accounts/libaccounts.go @@ -254,14 +254,14 @@ func maxDebitAbstractsFromConcretes(ctx *context.Context, aUnits *decimal.Big, if calculateCost { var rplyCost *utils.RateProfileCost cgrEv.APIOpts[utils.OptsRatesIntervalStart] = dbtedAUnts - cgrEv.APIOpts[utils.OptsAccountsUsage] = aUnits + cgrEv.APIOpts[utils.OptsRatesUsage] = aUnits if rplyCost, err = rateSCostForEvent(ctx, connMgr, cgrEv, rateSConns, rpIDs); err != nil { err = utils.NewErrRateS(err) return } // cleanup the opts delete(cgrEv.APIOpts, utils.OptsRatesIntervalStart) - delete(cgrEv.APIOpts, utils.OptsAccountsUsage) + delete(cgrEv.APIOpts, utils.OptsRatesUsage) costIcrm = costIcrm.Clone() // so we don't modify the original costIcrm.FixedFee = rplyCost.Cost } diff --git a/actions/actions.go b/actions/actions.go index d05b6f04f..f0355ed2a 100644 --- a/actions/actions.go +++ b/actions/actions.go @@ -192,10 +192,7 @@ func (aS *ActionS) matchingActionProfilesForEvent(ctx *context.Context, tnt stri func (aS *ActionS) scheduledActions(ctx *context.Context, tnt string, cgrEv *utils.CGREvent, aPrflIDs []string, forceASAP bool) (schedActs []*scheduledActs, err error) { var aPfs engine.ActionProfiles - evNm := utils.MapStorage{ - utils.MetaReq: cgrEv.Event, - utils.MetaOpts: cgrEv.APIOpts, - } + evNm := cgrEv.AsDataProvider() if aPfs, err = aS.matchingActionProfilesForEvent(ctx, tnt, evNm, aPrflIDs); err != nil { return } diff --git a/engine/cdrs.go b/engine/cdrs.go index 950a23989..039e8c9f2 100644 --- a/engine/cdrs.go +++ b/engine/cdrs.go @@ -120,7 +120,7 @@ func (cdrS *CDRServer) attrSProcessEvent(ctx *context.Context, cgrEv *utils.CGRE // rateSProcessEvent will send the event to rateS and attach the cost received back to event func (cdrS *CDRServer) rateSCostForEvent(ctx *context.Context, cgrEv *utils.CGREvent) (err error) { - rpCost := new(utils.RateProfileCost) + var rpCost utils.RateProfileCost if err = cdrS.connMgr.Call(ctx, cdrS.cfg.CdrsCfg().RateSConns, utils.RateSv1CostForEvent, cgrEv, &rpCost); err != nil { @@ -313,14 +313,13 @@ func (cdrS *CDRServer) V1ProcessEvent(ctx *context.Context, arg *utils.CGREvent, // end of RPC caching // processing options - attrS := utils.OptAsBoolOrDef(arg.APIOpts, utils.OptsAttributeS, len(cdrS.cfg.CdrsCfg().AttributeSConns) != 0) - export := utils.OptAsBoolOrDef(arg.APIOpts, utils.OptsCDRsExport, len(cdrS.cfg.CdrsCfg().OnlineCDRExports) != 0 || - len(cdrS.cfg.CdrsCfg().EEsConns) != 0) - thdS := utils.OptAsBoolOrDef(arg.APIOpts, utils.OptsThresholdS, len(cdrS.cfg.CdrsCfg().ThresholdSConns) != 0) - stS := utils.OptAsBoolOrDef(arg.APIOpts, utils.OptsStatS, len(cdrS.cfg.CdrsCfg().ThresholdSConns) != 0) - chrgS := utils.OptAsBoolOrDef(arg.APIOpts, utils.OptsChargerS, len(cdrS.cfg.CdrsCfg().ThresholdSConns) != 0) - rateS := utils.OptAsBoolOrDef(arg.APIOpts, utils.OptsRateS, len(cdrS.cfg.CdrsCfg().RateSConns) != 0) - acntS := utils.OptAsBoolOrDef(arg.APIOpts, utils.OptsAccountS, len(cdrS.cfg.CdrsCfg().AccountSConns) != 0) + attrS := utils.OptAsBoolOrDef(arg.APIOpts, utils.OptsAttributeS, false) + export := utils.OptAsBoolOrDef(arg.APIOpts, utils.OptsCDRsExport, false) + thdS := utils.OptAsBoolOrDef(arg.APIOpts, utils.OptsThresholdS, false) + stS := utils.OptAsBoolOrDef(arg.APIOpts, utils.OptsStatS, false) + chrgS := utils.OptAsBoolOrDef(arg.APIOpts, utils.OptsChargerS, false) + rateS := utils.OptAsBoolOrDef(arg.APIOpts, utils.OptsRateS, false) + acntS := utils.OptAsBoolOrDef(arg.APIOpts, utils.OptsAccountS, false) // end of processing options diff --git a/sessions/sessions.go b/sessions/sessions.go index 1c94c8706..aff9625fa 100644 --- a/sessions/sessions.go +++ b/sessions/sessions.go @@ -1565,7 +1565,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEvent(ctx *context.Context, } // end of RPC caching if !(args.GetAttributes || utils.OptAsBool(args.APIOpts, utils.OptsAttributeS) || - args.GetMaxUsage || utils.OptAsBool(args.APIOpts, utils.OptsSesMaxUsage) || + utils.OptAsBool(args.APIOpts, utils.OptsSesMaxUsage) || args.AuthorizeResources || utils.OptAsBool(args.APIOpts, utils.OptsSesResourceSAuthorize) || args.GetRoutes || utils.OptAsBool(args.APIOpts, utils.OptsRouteS)) { return // Nothing to do @@ -1590,8 +1590,8 @@ func (sS *SessionS) BiRPCv1AuthorizeEvent(ctx *context.Context, } } runEvents := make(map[string]*utils.CGREvent) - if args.GetMaxUsage || // backwards compatibility - utils.OptAsBool(args.APIOpts, utils.OptsChargerS) { + + if utils.OptAsBool(args.APIOpts, utils.OptsChargerS) { var chrgrs []*engine.ChrgSProcessEventReply if chrgrs, err = sS.processChargerS(ctx, args.CGREvent); err != nil { return @@ -1602,8 +1602,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEvent(ctx *context.Context, } else { runEvents[utils.MetaRaw] = args.CGREvent } - if args.GetMaxUsage || // backwards compatibility - utils.OptAsBool(args.APIOpts, utils.OptsAccountS) { + if utils.OptAsBool(args.APIOpts, utils.OptsAccountS) { var maxAbstracts map[string]*utils.Decimal if maxAbstracts, err = sS.accounSMaxAbstracts(ctx, runEvents); err != nil { return err @@ -1699,8 +1698,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEventWithDigest(ctx *context.Context, utils.OptAsBool(args.APIOpts, utils.OptsSesResourceSAuthorize) { authReply.ResourceAllocation = initAuthRply.ResourceAllocation } - if args.GetMaxUsage || - utils.OptAsBool(args.APIOpts, utils.OptsAccountS) { + if utils.OptAsBool(args.APIOpts, utils.OptsAccountS) { maxDur, _ := initAuthRply.MaxUsage.Duration() authReply.MaxUsage = maxDur.Seconds() } diff --git a/utils/cgrevent.go b/utils/cgrevent.go index 201683f3d..c9d4ead23 100644 --- a/utils/cgrevent.go +++ b/utils/cgrevent.go @@ -155,7 +155,7 @@ func (ev *CGREvent) Clone() (clned *CGREvent) { } // AsDataProvider returns the CGREvent as MapStorage with *opts and *req paths set -func (cgrEv *CGREvent) AsDataProvider() (ev DataProvider) { +func (cgrEv *CGREvent) AsDataProvider() (ev MapStorage) { return MapStorage{ MetaOpts: cgrEv.APIOpts, MetaReq: cgrEv.Event,