mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Added CGREvent.ConsumeArguments
This commit is contained in:
committed by
Dan Christian Bogos
parent
7fdad46cbb
commit
433be28aff
@@ -291,10 +291,9 @@ func (smaEv *SMAsteriskEvent) V1AuthorizeArgs() (args *sessions.V1AuthorizeArgs)
|
||||
args.ProcessThresholds = strings.Index(smaEv.Subsystems(), utils.MetaThresholds) != -1
|
||||
args.ProcessStats = strings.Index(smaEv.Subsystems(), utils.MetaStats) != -1
|
||||
|
||||
args.ArgDispatcher = cgrEv.ConsumeArgDispatcher()
|
||||
if strings.Index(smaEv.Subsystems(), utils.MetaDispatchers) != -1 && args.ArgDispatcher == nil {
|
||||
args.ArgDispatcher = new(utils.ArgDispatcher)
|
||||
}
|
||||
cgrArgs := cgrEv.ConsumeArgs(strings.Index(smaEv.Subsystems(), utils.MetaDispatchers) != -1, true)
|
||||
args.ArgDispatcher = cgrArgs.ArgDispatcher
|
||||
args.Paginator = *cgrArgs.SupplierPaginator
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -254,11 +254,6 @@ func (da *DiameterAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
return
|
||||
}
|
||||
cgrEv := agReq.CGRRequest.AsCGREvent(agReq.tenant, utils.NestingSep)
|
||||
argDisp := cgrEv.ConsumeArgDispatcher()
|
||||
if reqProcessor.Flags.HasKey(utils.MetaDispatchers) && argDisp == nil {
|
||||
argDisp = new(utils.ArgDispatcher)
|
||||
}
|
||||
supplierPaginator := cgrEv.ConsumeSupplierPaginator()
|
||||
var reqType string
|
||||
for _, typ := range []string{
|
||||
utils.MetaDryRun, utils.MetaAuth,
|
||||
@@ -270,6 +265,7 @@ func (da *DiameterAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
break
|
||||
}
|
||||
}
|
||||
cgrArgs := cgrEv.ConsumeArgs(reqProcessor.Flags.HasKey(utils.MetaDispatchers), reqType == utils.MetaAuth || reqType == utils.MetaEvent)
|
||||
if reqProcessor.Flags.HasKey(utils.MetaLog) {
|
||||
utils.Logger.Info(
|
||||
fmt.Sprintf("<%s> LOG, processorID: %s, diameter message: %s",
|
||||
@@ -293,7 +289,7 @@ func (da *DiameterAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliers),
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliersIgnoreErrors),
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliersEventCost),
|
||||
*cgrEv, argDisp, supplierPaginator)
|
||||
*cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator)
|
||||
var authReply sessions.V1AuthorizeReply
|
||||
err = da.sS.Call(utils.SessionSv1AuthorizeEvent,
|
||||
authArgs, &authReply)
|
||||
@@ -307,7 +303,7 @@ func (da *DiameterAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
reqProcessor.Flags.HasKey(utils.MetaAccounts),
|
||||
reqProcessor.Flags.HasKey(utils.MetaThresholds),
|
||||
reqProcessor.Flags.HasKey(utils.MetaStats),
|
||||
*cgrEv, argDisp)
|
||||
*cgrEv, cgrArgs.ArgDispatcher)
|
||||
var initReply sessions.V1InitSessionReply
|
||||
err = da.sS.Call(utils.SessionSv1InitiateSession,
|
||||
initArgs, &initReply)
|
||||
@@ -318,7 +314,7 @@ func (da *DiameterAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
updateArgs := sessions.NewV1UpdateSessionArgs(
|
||||
reqProcessor.Flags.HasKey(utils.MetaAttributes),
|
||||
reqProcessor.Flags.HasKey(utils.MetaAccounts),
|
||||
*cgrEv, argDisp)
|
||||
*cgrEv, cgrArgs.ArgDispatcher)
|
||||
var updateReply sessions.V1UpdateSessionReply
|
||||
err = da.sS.Call(utils.SessionSv1UpdateSession,
|
||||
updateArgs, &updateReply)
|
||||
@@ -331,7 +327,7 @@ func (da *DiameterAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
reqProcessor.Flags.HasKey(utils.MetaResources),
|
||||
reqProcessor.Flags.HasKey(utils.MetaThresholds),
|
||||
reqProcessor.Flags.HasKey(utils.MetaStats),
|
||||
*cgrEv, argDisp)
|
||||
*cgrEv, cgrArgs.ArgDispatcher)
|
||||
var tRply string
|
||||
err = da.sS.Call(utils.SessionSv1TerminateSession,
|
||||
terminateArgs, &tRply)
|
||||
@@ -348,7 +344,7 @@ func (da *DiameterAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliers),
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliersIgnoreErrors),
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliersEventCost),
|
||||
*cgrEv, argDisp, supplierPaginator)
|
||||
*cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator)
|
||||
var eventRply sessions.V1ProcessEventReply
|
||||
err = da.sS.Call(utils.SessionSv1ProcessEvent,
|
||||
evArgs, &eventRply)
|
||||
@@ -368,7 +364,7 @@ func (da *DiameterAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
var rplyCDRs string
|
||||
if err = da.sS.Call(utils.SessionSv1ProcessCDR,
|
||||
&utils.CGREventWithArgDispatcher{CGREvent: cgrEv,
|
||||
ArgDispatcher: argDisp}, &rplyCDRs); err != nil {
|
||||
ArgDispatcher: cgrArgs.ArgDispatcher}, &rplyCDRs); err != nil {
|
||||
agReq.CGRReply.Set([]string{utils.Error}, err.Error(), false, false)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -154,8 +154,6 @@ func (da *DNSAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
return
|
||||
}
|
||||
cgrEv := agReq.CGRRequest.AsCGREvent(agReq.tenant, utils.NestingSep)
|
||||
argDisp := cgrEv.ConsumeArgDispatcher()
|
||||
supplierPaginator := cgrEv.ConsumeSupplierPaginator()
|
||||
var reqType string
|
||||
for _, typ := range []string{
|
||||
utils.MetaDryRun, utils.MetaAuth,
|
||||
@@ -167,6 +165,7 @@ func (da *DNSAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
break
|
||||
}
|
||||
}
|
||||
cgrArgs := cgrEv.ConsumeArgs(reqProcessor.Flags.HasKey(utils.MetaDispatchers), reqType == utils.MetaAuth || reqType == utils.MetaEvent)
|
||||
if reqProcessor.Flags.HasKey(utils.MetaLog) {
|
||||
utils.Logger.Info(
|
||||
fmt.Sprintf("<%s> LOG, processorID: <%s>, message: %s",
|
||||
@@ -190,7 +189,7 @@ func (da *DNSAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliers),
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliersIgnoreErrors),
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliersEventCost),
|
||||
*cgrEv, argDisp, supplierPaginator)
|
||||
*cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator)
|
||||
var authReply sessions.V1AuthorizeReply
|
||||
err = da.sS.Call(utils.SessionSv1AuthorizeEvent,
|
||||
authArgs, &authReply)
|
||||
@@ -204,7 +203,7 @@ func (da *DNSAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
reqProcessor.Flags.HasKey(utils.MetaAccounts),
|
||||
reqProcessor.Flags.HasKey(utils.MetaThresholds),
|
||||
reqProcessor.Flags.HasKey(utils.MetaStats),
|
||||
*cgrEv, argDisp)
|
||||
*cgrEv, cgrArgs.ArgDispatcher)
|
||||
var initReply sessions.V1InitSessionReply
|
||||
err = da.sS.Call(utils.SessionSv1InitiateSession,
|
||||
initArgs, &initReply)
|
||||
@@ -215,7 +214,7 @@ func (da *DNSAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
updateArgs := sessions.NewV1UpdateSessionArgs(
|
||||
reqProcessor.Flags.HasKey(utils.MetaAttributes),
|
||||
reqProcessor.Flags.HasKey(utils.MetaAccounts),
|
||||
*cgrEv, argDisp)
|
||||
*cgrEv, cgrArgs.ArgDispatcher)
|
||||
var updateReply sessions.V1UpdateSessionReply
|
||||
err = da.sS.Call(utils.SessionSv1UpdateSession,
|
||||
updateArgs, &updateReply)
|
||||
@@ -228,7 +227,7 @@ func (da *DNSAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
reqProcessor.Flags.HasKey(utils.MetaResources),
|
||||
reqProcessor.Flags.HasKey(utils.MetaThresholds),
|
||||
reqProcessor.Flags.HasKey(utils.MetaStats),
|
||||
*cgrEv, argDisp)
|
||||
*cgrEv, cgrArgs.ArgDispatcher)
|
||||
var tRply string
|
||||
err = da.sS.Call(utils.SessionSv1TerminateSession,
|
||||
terminateArgs, &tRply)
|
||||
@@ -245,7 +244,7 @@ func (da *DNSAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliers),
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliersIgnoreErrors),
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliersEventCost),
|
||||
*cgrEv, argDisp, supplierPaginator)
|
||||
*cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator)
|
||||
var eventRply sessions.V1ProcessEventReply
|
||||
err = da.sS.Call(utils.SessionSv1ProcessEvent,
|
||||
evArgs, &eventRply)
|
||||
@@ -265,7 +264,7 @@ func (da *DNSAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
var rplyCDRs string
|
||||
if err = da.sS.Call(utils.SessionSv1ProcessCDR,
|
||||
&utils.CGREventWithArgDispatcher{CGREvent: cgrEv,
|
||||
ArgDispatcher: argDisp}, &rplyCDRs); err != nil {
|
||||
ArgDispatcher: cgrArgs.ArgDispatcher}, &rplyCDRs); err != nil {
|
||||
agReq.CGRReply.Set([]string{utils.Error}, err.Error(), false, false)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -269,12 +269,9 @@ func (sm *FSsessions) onChannelHangupComplete(fsev FSEvent, connId string) {
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
argsDisp := cgrEv.ConsumeArgDispatcher()
|
||||
if strings.Index(fsev[VarCGRSubsystems], utils.MetaDispatchers) != -1 && argsDisp == nil {
|
||||
argsDisp = new(utils.ArgDispatcher)
|
||||
}
|
||||
cgrArgs := cgrEv.ConsumeArgs(strings.Index(fsev[VarCGRSubsystems], utils.MetaDispatchers) != -1, false)
|
||||
if err := sm.sS.Call(utils.SessionSv1ProcessCDR,
|
||||
&utils.CGREventWithArgDispatcher{CGREvent: cgrEv, ArgDispatcher: argsDisp}, &reply); err != nil {
|
||||
&utils.CGREventWithArgDispatcher{CGREvent: cgrEv, ArgDispatcher: cgrArgs.ArgDispatcher}, &reply); err != nil {
|
||||
utils.Logger.Err(fmt.Sprintf("<%s> Failed processing CGREvent: %s, error: <%s>",
|
||||
utils.FreeSWITCHAgent, utils.ToJSON(cgrEv), err.Error()))
|
||||
}
|
||||
|
||||
@@ -424,10 +424,9 @@ func (fsev FSEvent) V1AuthorizeArgs() (args *sessions.V1AuthorizeArgs) {
|
||||
args.GetAttributes = strings.Index(subsystems, utils.MetaAttributes) != -1
|
||||
args.ProcessThresholds = strings.Index(subsystems, utils.MetaThresholds) != -1
|
||||
args.ProcessStats = strings.Index(subsystems, utils.MetaStats) != -1
|
||||
args.ArgDispatcher = cgrEv.ConsumeArgDispatcher()
|
||||
if strings.Index(subsystems, utils.MetaDispatchers) != -1 && args.ArgDispatcher == nil {
|
||||
args.ArgDispatcher = new(utils.ArgDispatcher)
|
||||
}
|
||||
cgrArgs := cgrEv.ConsumeArgs(strings.Index(subsystems, utils.MetaDispatchers) != -1, true)
|
||||
args.ArgDispatcher = cgrArgs.ArgDispatcher
|
||||
args.Paginator = *cgrArgs.SupplierPaginator
|
||||
return
|
||||
}
|
||||
|
||||
@@ -450,10 +449,8 @@ func (fsev FSEvent) V1InitSessionArgs() (args *sessions.V1InitSessionArgs) {
|
||||
args.GetAttributes = strings.Index(subsystems, utils.MetaAttributes) != -1
|
||||
args.ProcessThresholds = strings.Index(subsystems, utils.MetaThresholds) != -1
|
||||
args.ProcessStats = strings.Index(subsystems, utils.MetaStats) != -1
|
||||
args.ArgDispatcher = cgrEv.ConsumeArgDispatcher()
|
||||
if strings.Index(subsystems, utils.MetaDispatchers) != -1 && args.ArgDispatcher == nil {
|
||||
args.ArgDispatcher = new(utils.ArgDispatcher)
|
||||
}
|
||||
cgrArgs := cgrEv.ConsumeArgs(strings.Index(subsystems, utils.MetaDispatchers) != -1, false)
|
||||
args.ArgDispatcher = cgrArgs.ArgDispatcher
|
||||
return
|
||||
}
|
||||
|
||||
@@ -475,10 +472,8 @@ func (fsev FSEvent) V1TerminateSessionArgs() (args *sessions.V1TerminateSessionA
|
||||
args.ReleaseResources = strings.Index(subsystems, utils.MetaResources) != -1
|
||||
args.ProcessThresholds = strings.Index(subsystems, utils.MetaThresholds) != -1
|
||||
args.ProcessStats = strings.Index(subsystems, utils.MetaStats) != -1
|
||||
args.ArgDispatcher = cgrEv.ConsumeArgDispatcher()
|
||||
if strings.Index(subsystems, utils.MetaDispatchers) != -1 && args.ArgDispatcher == nil {
|
||||
args.ArgDispatcher = new(utils.ArgDispatcher)
|
||||
}
|
||||
cgrArgs := cgrEv.ConsumeArgs(strings.Index(subsystems, utils.MetaDispatchers) != -1, false)
|
||||
args.ArgDispatcher = cgrArgs.ArgDispatcher
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -104,11 +104,6 @@ func (ha *HTTPAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
return
|
||||
}
|
||||
cgrEv := agReq.CGRRequest.AsCGREvent(agReq.tenant, utils.NestingSep)
|
||||
argDisp := cgrEv.ConsumeArgDispatcher()
|
||||
if reqProcessor.Flags.HasKey(utils.MetaDispatchers) && argDisp == nil {
|
||||
argDisp = new(utils.ArgDispatcher)
|
||||
}
|
||||
suppliersPaginator := cgrEv.ConsumeSupplierPaginator()
|
||||
var reqType string
|
||||
for _, typ := range []string{
|
||||
utils.MetaDryRun, utils.MetaAuth,
|
||||
@@ -120,6 +115,7 @@ func (ha *HTTPAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
break
|
||||
}
|
||||
}
|
||||
cgrArgs := cgrEv.ConsumeArgs(reqProcessor.Flags.HasKey(utils.MetaDispatchers), reqType == utils.MetaAuth || reqType == utils.MetaEvent)
|
||||
if reqProcessor.Flags.HasKey(utils.MetaLog) {
|
||||
utils.Logger.Info(
|
||||
fmt.Sprintf("<%s> LOG, processorID: %s, http message: %s",
|
||||
@@ -142,7 +138,7 @@ func (ha *HTTPAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliers),
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliersIgnoreErrors),
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliersEventCost),
|
||||
*cgrEv, argDisp, suppliersPaginator)
|
||||
*cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator)
|
||||
var authReply sessions.V1AuthorizeReply
|
||||
err = ha.sessionS.Call(utils.SessionSv1AuthorizeEvent,
|
||||
authArgs, &authReply)
|
||||
@@ -156,7 +152,7 @@ func (ha *HTTPAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
reqProcessor.Flags.HasKey(utils.MetaAccounts),
|
||||
reqProcessor.Flags.HasKey(utils.MetaThresholds),
|
||||
reqProcessor.Flags.HasKey(utils.MetaStats),
|
||||
*cgrEv, argDisp)
|
||||
*cgrEv, cgrArgs.ArgDispatcher)
|
||||
var initReply sessions.V1InitSessionReply
|
||||
err = ha.sessionS.Call(utils.SessionSv1InitiateSession,
|
||||
initArgs, &initReply)
|
||||
@@ -167,7 +163,7 @@ func (ha *HTTPAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
updateArgs := sessions.NewV1UpdateSessionArgs(
|
||||
reqProcessor.Flags.HasKey(utils.MetaAttributes),
|
||||
reqProcessor.Flags.HasKey(utils.MetaAccounts),
|
||||
*cgrEv, argDisp)
|
||||
*cgrEv, cgrArgs.ArgDispatcher)
|
||||
var updateReply sessions.V1UpdateSessionReply
|
||||
err = ha.sessionS.Call(utils.SessionSv1UpdateSession,
|
||||
updateArgs, &updateReply)
|
||||
@@ -180,7 +176,7 @@ func (ha *HTTPAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
reqProcessor.Flags.HasKey(utils.MetaResources),
|
||||
reqProcessor.Flags.HasKey(utils.MetaThresholds),
|
||||
reqProcessor.Flags.HasKey(utils.MetaStats),
|
||||
*cgrEv, argDisp)
|
||||
*cgrEv, cgrArgs.ArgDispatcher)
|
||||
var tRply string
|
||||
err = ha.sessionS.Call(utils.SessionSv1TerminateSession,
|
||||
terminateArgs, &tRply)
|
||||
@@ -197,7 +193,7 @@ func (ha *HTTPAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliers),
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliersIgnoreErrors),
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliersEventCost),
|
||||
*cgrEv, argDisp, suppliersPaginator)
|
||||
*cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator)
|
||||
var eventRply sessions.V1ProcessEventReply
|
||||
err = ha.sessionS.Call(utils.SessionSv1ProcessEvent,
|
||||
evArgs, &eventRply)
|
||||
@@ -216,7 +212,7 @@ func (ha *HTTPAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
!reqProcessor.Flags.HasKey(utils.MetaDryRun) {
|
||||
var rplyCDRs string
|
||||
if err = ha.sessionS.Call(utils.SessionSv1ProcessCDR,
|
||||
&utils.CGREventWithArgDispatcher{CGREvent: cgrEv, ArgDispatcher: argDisp}, &rplyCDRs); err != nil {
|
||||
&utils.CGREventWithArgDispatcher{CGREvent: cgrEv, ArgDispatcher: cgrArgs.ArgDispatcher}, &rplyCDRs); err != nil {
|
||||
agReq.CGRReply.Set([]string{utils.Error}, err.Error(), false, false)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -210,12 +210,9 @@ func (ka *KamailioAgent) onCallEnd(evData []byte, connID string) {
|
||||
return
|
||||
}
|
||||
cgrEv.Event[utils.OriginHost] = ka.conns[connID].RemoteAddr().String()
|
||||
argsDisp := cgrEv.ConsumeArgDispatcher()
|
||||
if strings.Index(kev[utils.CGRSubsystems], utils.MetaDispatchers) != -1 && argsDisp == nil {
|
||||
argsDisp = new(utils.ArgDispatcher)
|
||||
}
|
||||
cgrArgs := cgrEv.ConsumeArgs(strings.Index(kev[utils.CGRSubsystems], utils.MetaDispatchers) != -1, false)
|
||||
if err := ka.sessionS.Call(utils.SessionSv1ProcessCDR,
|
||||
&utils.CGREventWithArgDispatcher{CGREvent: cgrEv, ArgDispatcher: argsDisp}, &reply); err != nil {
|
||||
&utils.CGREventWithArgDispatcher{CGREvent: cgrEv, ArgDispatcher: cgrArgs.ArgDispatcher}, &reply); err != nil {
|
||||
utils.Logger.Err(fmt.Sprintf("%s> failed processing CGREvent: %s, error: %s",
|
||||
utils.KamailioAgent, utils.ToJSON(cgrEv), err.Error()))
|
||||
}
|
||||
|
||||
@@ -191,10 +191,9 @@ func (kev KamEvent) V1AuthorizeArgs() (args *sessions.V1AuthorizeArgs) {
|
||||
args.GetAttributes = strings.Index(subsystems, utils.MetaAttributes) != -1
|
||||
args.ProcessThresholds = strings.Index(subsystems, utils.MetaThresholds) != -1
|
||||
args.ProcessStats = strings.Index(subsystems, utils.MetaStats) != -1
|
||||
args.ArgDispatcher = cgrEv.ConsumeArgDispatcher()
|
||||
if strings.Index(subsystems, utils.MetaDispatchers) != -1 && args.ArgDispatcher == nil {
|
||||
args.ArgDispatcher = new(utils.ArgDispatcher)
|
||||
}
|
||||
cgrArgs := cgrEv.ConsumeArgs(strings.Index(subsystems, utils.MetaDispatchers) != -1, true)
|
||||
args.ArgDispatcher = cgrArgs.ArgDispatcher
|
||||
args.Paginator = *cgrArgs.SupplierPaginator
|
||||
return
|
||||
}
|
||||
|
||||
@@ -258,10 +257,8 @@ func (kev KamEvent) V1InitSessionArgs() (args *sessions.V1InitSessionArgs) {
|
||||
args.GetAttributes = strings.Index(subsystems, utils.MetaAttributes) != -1
|
||||
args.ProcessThresholds = strings.Index(subsystems, utils.MetaThresholds) != -1
|
||||
args.ProcessStats = strings.Index(subsystems, utils.MetaStats) != -1
|
||||
args.ArgDispatcher = cgrEv.ConsumeArgDispatcher()
|
||||
if strings.Index(subsystems, utils.MetaDispatchers) != -1 && args.ArgDispatcher == nil {
|
||||
args.ArgDispatcher = new(utils.ArgDispatcher)
|
||||
}
|
||||
cgrArgs := cgrEv.ConsumeArgs(strings.Index(subsystems, utils.MetaDispatchers) != -1, false)
|
||||
args.ArgDispatcher = cgrArgs.ArgDispatcher
|
||||
return
|
||||
}
|
||||
|
||||
@@ -283,10 +280,8 @@ func (kev KamEvent) V1TerminateSessionArgs() (args *sessions.V1TerminateSessionA
|
||||
args.ReleaseResources = strings.Index(subsystems, utils.MetaResources) != -1
|
||||
args.ProcessThresholds = strings.Index(subsystems, utils.MetaThresholds) != -1
|
||||
args.ProcessStats = strings.Index(subsystems, utils.MetaStats) != -1
|
||||
args.ArgDispatcher = cgrEv.ConsumeArgDispatcher()
|
||||
if strings.Index(subsystems, utils.MetaDispatchers) != -1 && args.ArgDispatcher == nil {
|
||||
args.ArgDispatcher = new(utils.ArgDispatcher)
|
||||
}
|
||||
cgrArgs := cgrEv.ConsumeArgs(strings.Index(subsystems, utils.MetaDispatchers) != -1, false)
|
||||
args.ArgDispatcher = cgrArgs.ArgDispatcher
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -148,11 +148,6 @@ func (ra *RadiusAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
return
|
||||
}
|
||||
cgrEv := agReq.CGRRequest.AsCGREvent(agReq.tenant, utils.NestingSep)
|
||||
argDisp := cgrEv.ConsumeArgDispatcher()
|
||||
if reqProcessor.Flags.HasKey(utils.MetaDispatchers) && argDisp == nil {
|
||||
argDisp = new(utils.ArgDispatcher)
|
||||
}
|
||||
suppliersPaginator := cgrEv.ConsumeSupplierPaginator()
|
||||
var reqType string
|
||||
for _, typ := range []string{
|
||||
utils.MetaDryRun, utils.MetaAuth,
|
||||
@@ -164,6 +159,7 @@ func (ra *RadiusAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
break
|
||||
}
|
||||
}
|
||||
cgrArgs := cgrEv.ConsumeArgs(reqProcessor.Flags.HasKey(utils.MetaDispatchers), reqType == utils.MetaAuth || reqType == utils.MetaEvent)
|
||||
if reqProcessor.Flags.HasKey(utils.MetaLog) {
|
||||
utils.Logger.Info(
|
||||
fmt.Sprintf("<%s> LOG, processorID: %s, radius message: %s",
|
||||
@@ -186,7 +182,7 @@ func (ra *RadiusAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliers),
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliersIgnoreErrors),
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliersEventCost),
|
||||
*cgrEv, argDisp, suppliersPaginator)
|
||||
*cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator)
|
||||
var authReply sessions.V1AuthorizeReply
|
||||
err = ra.sessionS.Call(utils.SessionSv1AuthorizeEvent,
|
||||
authArgs, &authReply)
|
||||
@@ -200,7 +196,7 @@ func (ra *RadiusAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
reqProcessor.Flags.HasKey(utils.MetaAccounts),
|
||||
reqProcessor.Flags.HasKey(utils.MetaThresholds),
|
||||
reqProcessor.Flags.HasKey(utils.MetaStats),
|
||||
*cgrEv, argDisp)
|
||||
*cgrEv, cgrArgs.ArgDispatcher)
|
||||
var initReply sessions.V1InitSessionReply
|
||||
err = ra.sessionS.Call(utils.SessionSv1InitiateSession,
|
||||
initArgs, &initReply)
|
||||
@@ -211,7 +207,7 @@ func (ra *RadiusAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
updateArgs := sessions.NewV1UpdateSessionArgs(
|
||||
reqProcessor.Flags.HasKey(utils.MetaAttributes),
|
||||
reqProcessor.Flags.HasKey(utils.MetaAccounts),
|
||||
*cgrEv, argDisp)
|
||||
*cgrEv, cgrArgs.ArgDispatcher)
|
||||
var updateReply sessions.V1UpdateSessionReply
|
||||
err = ra.sessionS.Call(utils.SessionSv1UpdateSession,
|
||||
updateArgs, &updateReply)
|
||||
@@ -224,7 +220,7 @@ func (ra *RadiusAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
reqProcessor.Flags.HasKey(utils.MetaResources),
|
||||
reqProcessor.Flags.HasKey(utils.MetaThresholds),
|
||||
reqProcessor.Flags.HasKey(utils.MetaStats),
|
||||
*cgrEv, argDisp)
|
||||
*cgrEv, cgrArgs.ArgDispatcher)
|
||||
var tRply string
|
||||
err = ra.sessionS.Call(utils.SessionSv1TerminateSession,
|
||||
terminateArgs, &tRply)
|
||||
@@ -241,7 +237,7 @@ func (ra *RadiusAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliers),
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliersIgnoreErrors),
|
||||
reqProcessor.Flags.HasKey(utils.MetaSuppliersEventCost),
|
||||
*cgrEv, argDisp, suppliersPaginator)
|
||||
*cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator)
|
||||
var eventRply sessions.V1ProcessEventReply
|
||||
err = ra.sessionS.Call(utils.SessionSv1ProcessEvent,
|
||||
evArgs, &eventRply)
|
||||
@@ -259,7 +255,7 @@ func (ra *RadiusAgent) processRequest(reqProcessor *config.RequestProcessor,
|
||||
if reqProcessor.Flags.HasKey(utils.MetaCDRs) {
|
||||
var rplyCDRs string
|
||||
if err = ra.sessionS.Call(utils.SessionSv1ProcessCDR,
|
||||
&utils.CGREventWithArgDispatcher{CGREvent: cgrEv, ArgDispatcher: argDisp}, &rplyCDRs); err != nil {
|
||||
&utils.CGREventWithArgDispatcher{CGREvent: cgrEv, ArgDispatcher: cgrArgs.ArgDispatcher}, &rplyCDRs); err != nil {
|
||||
agReq.CGRReply.Set([]string{utils.Error}, err.Error(), false, false)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1262,8 +1262,8 @@ func TestSessionSNewV1AuthorizeArgsWithArgDispatcher(t *testing.T) {
|
||||
RouteID: utils.StringPointer("testrouteid"),
|
||||
},
|
||||
}
|
||||
argDisp := cgrEv.ConsumeArgDispatcher()
|
||||
rply := NewV1AuthorizeArgs(true, true, false, false, false, false, false, false, cgrEv, argDisp, utils.Paginator{})
|
||||
cgrArgs := cgrEv.ConsumeArgs(true, true)
|
||||
rply := NewV1AuthorizeArgs(true, true, false, false, false, false, false, false, cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator)
|
||||
if !reflect.DeepEqual(expected, rply) {
|
||||
t.Errorf("Expecting %+v, received: %+v", utils.ToJSON(expected), utils.ToJSON(rply))
|
||||
}
|
||||
@@ -1282,7 +1282,7 @@ func TestSessionSNewV1AuthorizeArgsWithArgDispatcher(t *testing.T) {
|
||||
RouteID: utils.StringPointer("testrouteid"),
|
||||
},
|
||||
}
|
||||
rply = NewV1AuthorizeArgs(true, false, true, false, true, false, true, true, cgrEv, argDisp, utils.Paginator{})
|
||||
rply = NewV1AuthorizeArgs(true, false, true, false, true, false, true, true, cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator)
|
||||
if !reflect.DeepEqual(expected, rply) {
|
||||
t.Errorf("Expecting %+v, received: %+v", utils.ToJSON(expected), utils.ToJSON(rply))
|
||||
}
|
||||
@@ -1306,8 +1306,8 @@ func TestSessionSNewV1AuthorizeArgsWithArgDispatcher2(t *testing.T) {
|
||||
RouteID: utils.StringPointer("testrouteid"),
|
||||
},
|
||||
}
|
||||
argDisp := cgrEv.ConsumeArgDispatcher()
|
||||
rply := NewV1AuthorizeArgs(true, true, false, false, false, false, false, false, cgrEv, argDisp, utils.Paginator{})
|
||||
cgrArgs := cgrEv.ConsumeArgs(true, true)
|
||||
rply := NewV1AuthorizeArgs(true, true, false, false, false, false, false, false, cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator)
|
||||
if !reflect.DeepEqual(expected, rply) {
|
||||
t.Errorf("Expecting %+v, received: %+v", utils.ToJSON(expected), utils.ToJSON(rply))
|
||||
}
|
||||
@@ -1325,7 +1325,7 @@ func TestSessionSNewV1AuthorizeArgsWithArgDispatcher2(t *testing.T) {
|
||||
RouteID: utils.StringPointer("testrouteid"),
|
||||
},
|
||||
}
|
||||
rply = NewV1AuthorizeArgs(true, false, true, false, true, false, true, true, cgrEv, argDisp, utils.Paginator{})
|
||||
rply = NewV1AuthorizeArgs(true, false, true, false, true, false, true, true, cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator)
|
||||
if !reflect.DeepEqual(expected, rply) {
|
||||
t.Errorf("Expecting %+v, received: %+v", utils.ToJSON(expected), utils.ToJSON(rply))
|
||||
}
|
||||
|
||||
@@ -138,7 +138,7 @@ func (ev *CGREvent) RemFldsWithPrefix(prfx string) {
|
||||
}
|
||||
|
||||
// RemFldsWithPrefix will remove fields starting with prefix from event
|
||||
func (ev *CGREvent) ConsumeArgDispatcher() (arg *ArgDispatcher) {
|
||||
func (ev *CGREvent) consumeArgDispatcher() (arg *ArgDispatcher) {
|
||||
if ev == nil {
|
||||
return
|
||||
}
|
||||
@@ -166,7 +166,8 @@ func (ev *CGREvent) ConsumeArgDispatcher() (arg *ArgDispatcher) {
|
||||
}
|
||||
|
||||
// ConsumeSupplierPaginator will consume supplierPaginator if presented
|
||||
func (ev *CGREvent) ConsumeSupplierPaginator() (args Paginator) {
|
||||
func (ev *CGREvent) consumeSupplierPaginator() (args *Paginator) {
|
||||
args = new(Paginator)
|
||||
if ev == nil {
|
||||
return
|
||||
}
|
||||
@@ -179,7 +180,7 @@ func (ev *CGREvent) ConsumeSupplierPaginator() (args Paginator) {
|
||||
Logger.Err(err.Error())
|
||||
return
|
||||
}
|
||||
args = Paginator{
|
||||
args = &Paginator{
|
||||
Limit: IntPointer(int(limit)),
|
||||
}
|
||||
}
|
||||
@@ -193,14 +194,31 @@ func (ev *CGREvent) ConsumeSupplierPaginator() (args Paginator) {
|
||||
return
|
||||
}
|
||||
if !hasSuppliersLimit { //in case we don't have limit, but we have offset we need to initialize the struct
|
||||
args = Paginator{
|
||||
args = &Paginator{
|
||||
Offset: IntPointer(int(offset)),
|
||||
}
|
||||
} else {
|
||||
args.Offset = IntPointer(int(offset))
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
type ConsumeArgs struct {
|
||||
ArgDispatcher *ArgDispatcher
|
||||
SupplierPaginator *Paginator
|
||||
}
|
||||
|
||||
func (ev *CGREvent) ConsumeArgs(dispatcherFlag, consumeSupplierPaginator bool) (ca ConsumeArgs) {
|
||||
ca = ConsumeArgs{
|
||||
ArgDispatcher: ev.consumeArgDispatcher(),
|
||||
}
|
||||
if dispatcherFlag && ca.ArgDispatcher == nil {
|
||||
ca.ArgDispatcher = new(ArgDispatcher)
|
||||
}
|
||||
if consumeSupplierPaginator {
|
||||
ca.SupplierPaginator = ev.consumeSupplierPaginator()
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user