Updated sessions and cdrs flag handling

This commit is contained in:
Trial97
2021-10-01 14:29:36 +03:00
committed by Dan Christian Bogos
parent fe6ef76f80
commit f801d747e2
5 changed files with 17 additions and 23 deletions

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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

View File

@@ -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()
}

View File

@@ -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,