Added CGREvent.ConsumeArguments

This commit is contained in:
Tripon Alexandru-Ionut
2019-05-23 13:26:24 +03:00
committed by Dan Christian Bogos
parent 7fdad46cbb
commit 433be28aff
11 changed files with 77 additions and 89 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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