Add support for *fd flag in agent

This commit is contained in:
TeoV
2020-04-22 12:36:42 +03:00
committed by Dan Christian Bogos
parent 211b14d4af
commit 3aaf458a2b
8 changed files with 141 additions and 79 deletions

View File

@@ -296,6 +296,7 @@ func (da *DiameterAgent) processRequest(reqProcessor *config.RequestProcessor,
reqProcessor.Flags.HasKey(utils.MetaSuppliersIgnoreErrors),
reqProcessor.Flags.HasKey(utils.MetaSuppliersEventCost),
cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator,
reqProcessor.Flags.HasKey(utils.MetaFD),
)
rply := new(sessions.V1AuthorizeReply)
err = da.connMgr.Call(da.cgrCfg.DiameterAgentCfg().SessionSConns, da, utils.SessionSv1AuthorizeEvent,
@@ -314,7 +315,8 @@ func (da *DiameterAgent) processRequest(reqProcessor *config.RequestProcessor,
reqProcessor.Flags.ParamsSlice(utils.MetaStats),
reqProcessor.Flags.HasKey(utils.MetaResources),
reqProcessor.Flags.HasKey(utils.MetaAccounts),
cgrEv, cgrArgs.ArgDispatcher)
cgrEv, cgrArgs.ArgDispatcher,
reqProcessor.Flags.HasKey(utils.MetaFD))
rply := new(sessions.V1InitSessionReply)
err = da.connMgr.Call(da.cgrCfg.DiameterAgentCfg().SessionSConns, da, utils.SessionSv1InitiateSession,
initArgs, rply)
@@ -327,7 +329,8 @@ func (da *DiameterAgent) processRequest(reqProcessor *config.RequestProcessor,
reqProcessor.Flags.HasKey(utils.MetaAttributes),
reqProcessor.Flags.ParamsSlice(utils.MetaAttributes),
reqProcessor.Flags.HasKey(utils.MetaAccounts),
cgrEv, cgrArgs.ArgDispatcher)
cgrEv, cgrArgs.ArgDispatcher,
reqProcessor.Flags.HasKey(utils.MetaFD))
rply := new(sessions.V1UpdateSessionReply)
err = da.connMgr.Call(da.cgrCfg.DiameterAgentCfg().SessionSConns, da, utils.SessionSv1UpdateSession,
updateArgs, rply)
@@ -343,7 +346,8 @@ func (da *DiameterAgent) processRequest(reqProcessor *config.RequestProcessor,
reqProcessor.Flags.ParamsSlice(utils.MetaThresholds),
reqProcessor.Flags.HasKey(utils.MetaStats),
reqProcessor.Flags.ParamsSlice(utils.MetaStats),
cgrEv, cgrArgs.ArgDispatcher)
cgrEv, cgrArgs.ArgDispatcher,
reqProcessor.Flags.HasKey(utils.MetaFD))
rply := utils.StringPointer("")
err = da.connMgr.Call(da.cgrCfg.DiameterAgentCfg().SessionSConns, da, utils.SessionSv1TerminateSession,
terminateArgs, rply)
@@ -363,7 +367,8 @@ func (da *DiameterAgent) processRequest(reqProcessor *config.RequestProcessor,
reqProcessor.Flags.HasKey(utils.MetaSuppliers),
reqProcessor.Flags.HasKey(utils.MetaSuppliersIgnoreErrors),
reqProcessor.Flags.HasKey(utils.MetaSuppliersEventCost),
cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator)
cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator,
reqProcessor.Flags.HasKey(utils.MetaFD))
rply := new(sessions.V1ProcessMessageReply)
err = da.connMgr.Call(da.cgrCfg.DiameterAgentCfg().SessionSConns, da, utils.SessionSv1ProcessMessage,
msgArgs, rply)

View File

@@ -217,6 +217,7 @@ func (da *DNSAgent) processRequest(reqProcessor *config.RequestProcessor,
reqProcessor.Flags.HasKey(utils.MetaSuppliersIgnoreErrors),
reqProcessor.Flags.HasKey(utils.MetaSuppliersEventCost),
cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator,
reqProcessor.Flags.HasKey(utils.MetaFD),
)
rply := new(sessions.V1AuthorizeReply)
err = da.connMgr.Call(da.cgrCfg.DNSAgentCfg().SessionSConns, nil,
@@ -237,7 +238,8 @@ func (da *DNSAgent) processRequest(reqProcessor *config.RequestProcessor,
reqProcessor.Flags.ParamsSlice(utils.MetaStats),
reqProcessor.Flags.HasKey(utils.MetaResources),
reqProcessor.Flags.HasKey(utils.MetaAccounts),
cgrEv, cgrArgs.ArgDispatcher)
cgrEv, cgrArgs.ArgDispatcher,
reqProcessor.Flags.HasKey(utils.MetaFD))
rply := new(sessions.V1InitSessionReply)
err = da.connMgr.Call(da.cgrCfg.DNSAgentCfg().SessionSConns, nil,
utils.SessionSv1InitiateSession,
@@ -251,7 +253,8 @@ func (da *DNSAgent) processRequest(reqProcessor *config.RequestProcessor,
reqProcessor.Flags.HasKey(utils.MetaAttributes),
reqProcessor.Flags.ParamsSlice(utils.MetaAttributes),
reqProcessor.Flags.HasKey(utils.MetaAccounts),
cgrEv, cgrArgs.ArgDispatcher)
cgrEv, cgrArgs.ArgDispatcher,
reqProcessor.Flags.HasKey(utils.MetaFD))
rply := new(sessions.V1UpdateSessionReply)
err = da.connMgr.Call(da.cgrCfg.DNSAgentCfg().SessionSConns, nil,
utils.SessionSv1UpdateSession,
@@ -268,7 +271,8 @@ func (da *DNSAgent) processRequest(reqProcessor *config.RequestProcessor,
reqProcessor.Flags.ParamsSlice(utils.MetaThresholds),
reqProcessor.Flags.HasKey(utils.MetaStats),
reqProcessor.Flags.ParamsSlice(utils.MetaStats),
cgrEv, cgrArgs.ArgDispatcher)
cgrEv, cgrArgs.ArgDispatcher,
reqProcessor.Flags.HasKey(utils.MetaFD))
rply := utils.StringPointer("")
err = da.connMgr.Call(da.cgrCfg.DNSAgentCfg().SessionSConns, nil,
utils.SessionSv1TerminateSession,
@@ -289,7 +293,8 @@ func (da *DNSAgent) processRequest(reqProcessor *config.RequestProcessor,
reqProcessor.Flags.HasKey(utils.MetaSuppliers),
reqProcessor.Flags.HasKey(utils.MetaSuppliersIgnoreErrors),
reqProcessor.Flags.HasKey(utils.MetaSuppliersEventCost),
cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator)
cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator,
reqProcessor.Flags.HasKey(utils.MetaFD))
rply := new(sessions.V1ProcessMessageReply) // need it so rpcclient can clone
err = da.connMgr.Call(da.cgrCfg.DNSAgentCfg().SessionSConns, nil,
utils.SessionSv1ProcessMessage,

View File

@@ -153,6 +153,7 @@ func (ha *HTTPAgent) processRequest(reqProcessor *config.RequestProcessor,
reqProcessor.Flags.HasKey(utils.MetaSuppliersIgnoreErrors),
reqProcessor.Flags.HasKey(utils.MetaSuppliersEventCost),
cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator,
reqProcessor.Flags.HasKey(utils.MetaFD),
)
rply := new(sessions.V1AuthorizeReply)
err = ha.connMgr.Call(ha.sessionConns, nil, utils.SessionSv1AuthorizeEvent,
@@ -171,7 +172,8 @@ func (ha *HTTPAgent) processRequest(reqProcessor *config.RequestProcessor,
reqProcessor.Flags.ParamsSlice(utils.MetaStats),
reqProcessor.Flags.HasKey(utils.MetaResources),
reqProcessor.Flags.HasKey(utils.MetaAccounts),
cgrEv, cgrArgs.ArgDispatcher)
cgrEv, cgrArgs.ArgDispatcher,
reqProcessor.Flags.HasKey(utils.MetaFD))
rply := new(sessions.V1InitSessionReply)
err = ha.connMgr.Call(ha.sessionConns, nil, utils.SessionSv1InitiateSession,
initArgs, rply)
@@ -184,7 +186,8 @@ func (ha *HTTPAgent) processRequest(reqProcessor *config.RequestProcessor,
reqProcessor.Flags.HasKey(utils.MetaAttributes),
reqProcessor.Flags.ParamsSlice(utils.MetaAttributes),
reqProcessor.Flags.HasKey(utils.MetaAccounts),
cgrEv, cgrArgs.ArgDispatcher)
cgrEv, cgrArgs.ArgDispatcher,
reqProcessor.Flags.HasKey(utils.MetaFD))
rply := new(sessions.V1UpdateSessionReply)
err = ha.connMgr.Call(ha.sessionConns, nil, utils.SessionSv1UpdateSession,
updateArgs, rply)
@@ -200,7 +203,8 @@ func (ha *HTTPAgent) processRequest(reqProcessor *config.RequestProcessor,
reqProcessor.Flags.ParamsSlice(utils.MetaThresholds),
reqProcessor.Flags.HasKey(utils.MetaStats),
reqProcessor.Flags.ParamsSlice(utils.MetaStats),
cgrEv, cgrArgs.ArgDispatcher)
cgrEv, cgrArgs.ArgDispatcher,
reqProcessor.Flags.HasKey(utils.MetaFD))
rply := utils.StringPointer("")
err = ha.connMgr.Call(ha.sessionConns, nil, utils.SessionSv1TerminateSession,
terminateArgs, rply)
@@ -220,7 +224,8 @@ func (ha *HTTPAgent) processRequest(reqProcessor *config.RequestProcessor,
reqProcessor.Flags.HasKey(utils.MetaSuppliers),
reqProcessor.Flags.HasKey(utils.MetaSuppliersIgnoreErrors),
reqProcessor.Flags.HasKey(utils.MetaSuppliersEventCost),
cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator)
cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator,
reqProcessor.Flags.HasKey(utils.MetaFD))
rply := new(sessions.V1ProcessMessageReply)
err = ha.connMgr.Call(ha.sessionConns, nil, utils.SessionSv1ProcessMessage,
evArgs, rply)

View File

@@ -195,6 +195,7 @@ func (ra *RadiusAgent) processRequest(reqProcessor *config.RequestProcessor,
reqProcessor.Flags.HasKey(utils.MetaSuppliersIgnoreErrors),
reqProcessor.Flags.HasKey(utils.MetaSuppliersEventCost),
cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator,
reqProcessor.Flags.HasKey(utils.MetaFD),
)
rply := new(sessions.V1AuthorizeReply)
err = ra.connMgr.Call(ra.cgrCfg.RadiusAgentCfg().SessionSConns, nil, utils.SessionSv1AuthorizeEvent,
@@ -213,7 +214,8 @@ func (ra *RadiusAgent) processRequest(reqProcessor *config.RequestProcessor,
reqProcessor.Flags.ParamsSlice(utils.MetaStats),
reqProcessor.Flags.HasKey(utils.MetaResources),
reqProcessor.Flags.HasKey(utils.MetaAccounts),
cgrEv, cgrArgs.ArgDispatcher)
cgrEv, cgrArgs.ArgDispatcher,
reqProcessor.Flags.HasKey(utils.MetaFD))
rply := new(sessions.V1InitSessionReply)
err = ra.connMgr.Call(ra.cgrCfg.RadiusAgentCfg().SessionSConns, nil, utils.SessionSv1InitiateSession,
initArgs, rply)
@@ -226,7 +228,8 @@ func (ra *RadiusAgent) processRequest(reqProcessor *config.RequestProcessor,
reqProcessor.Flags.HasKey(utils.MetaAttributes),
reqProcessor.Flags.ParamsSlice(utils.MetaAttributes),
reqProcessor.Flags.HasKey(utils.MetaAccounts),
cgrEv, cgrArgs.ArgDispatcher)
cgrEv, cgrArgs.ArgDispatcher,
reqProcessor.Flags.HasKey(utils.MetaFD))
rply := new(sessions.V1UpdateSessionReply)
err = ra.connMgr.Call(ra.cgrCfg.RadiusAgentCfg().SessionSConns, nil, utils.SessionSv1UpdateSession,
updateArgs, rply)
@@ -242,7 +245,8 @@ func (ra *RadiusAgent) processRequest(reqProcessor *config.RequestProcessor,
reqProcessor.Flags.ParamsSlice(utils.MetaThresholds),
reqProcessor.Flags.HasKey(utils.MetaStats),
reqProcessor.Flags.ParamsSlice(utils.MetaStats),
cgrEv, cgrArgs.ArgDispatcher)
cgrEv, cgrArgs.ArgDispatcher,
reqProcessor.Flags.HasKey(utils.MetaFD))
rply := utils.StringPointer("")
err = ra.connMgr.Call(ra.cgrCfg.RadiusAgentCfg().SessionSConns, nil, utils.SessionSv1TerminateSession,
terminateArgs, rply)
@@ -262,7 +266,8 @@ func (ra *RadiusAgent) processRequest(reqProcessor *config.RequestProcessor,
reqProcessor.Flags.HasKey(utils.MetaSuppliers),
reqProcessor.Flags.HasKey(utils.MetaSuppliersIgnoreErrors),
reqProcessor.Flags.HasKey(utils.MetaSuppliersEventCost),
cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator)
cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator,
reqProcessor.Flags.HasKey(utils.MetaFD))
rply := new(sessions.V1ProcessMessageReply)
err = ra.connMgr.Call(ra.cgrCfg.RadiusAgentCfg().SessionSConns, nil, utils.SessionSv1ProcessMessage, evArgs, rply)
if utils.ErrHasPrefix(err, utils.RalsErrorPrfx) {

View File

@@ -191,6 +191,7 @@ func (erS *ERService) processEvent(cgrEv *utils.CGREvent, rdrCfg *config.EventRe
rdrCfg.Flags.HasKey(utils.MetaSuppliersIgnoreErrors),
rdrCfg.Flags.HasKey(utils.MetaSuppliersEventCost),
cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator,
rdrCfg.Flags.HasKey(utils.MetaFD),
)
rply := new(sessions.V1AuthorizeReply)
err = erS.connMgr.Call(erS.cfg.ERsCfg().SessionSConns, nil, utils.SessionSv1AuthorizeEvent,
@@ -205,7 +206,8 @@ func (erS *ERService) processEvent(cgrEv *utils.CGREvent, rdrCfg *config.EventRe
rdrCfg.Flags.ParamsSlice(utils.MetaStats),
rdrCfg.Flags.HasKey(utils.MetaResources),
rdrCfg.Flags.HasKey(utils.MetaAccounts),
cgrEv, cgrArgs.ArgDispatcher)
cgrEv, cgrArgs.ArgDispatcher,
rdrCfg.Flags.HasKey(utils.MetaFD))
rply := new(sessions.V1InitSessionReply)
err = erS.connMgr.Call(erS.cfg.ERsCfg().SessionSConns, nil, utils.SessionSv1InitiateSession,
initArgs, rply)
@@ -214,7 +216,8 @@ func (erS *ERService) processEvent(cgrEv *utils.CGREvent, rdrCfg *config.EventRe
rdrCfg.Flags.HasKey(utils.MetaAttributes),
rdrCfg.Flags.ParamsSlice(utils.MetaAttributes),
rdrCfg.Flags.HasKey(utils.MetaAccounts),
cgrEv, cgrArgs.ArgDispatcher)
cgrEv, cgrArgs.ArgDispatcher,
rdrCfg.Flags.HasKey(utils.MetaFD))
rply := new(sessions.V1UpdateSessionReply)
err = erS.connMgr.Call(erS.cfg.ERsCfg().SessionSConns, nil, utils.SessionSv1UpdateSession,
updateArgs, rply)
@@ -226,7 +229,8 @@ func (erS *ERService) processEvent(cgrEv *utils.CGREvent, rdrCfg *config.EventRe
rdrCfg.Flags.ParamsSlice(utils.MetaThresholds),
rdrCfg.Flags.HasKey(utils.MetaStats),
rdrCfg.Flags.ParamsSlice(utils.MetaStats),
cgrEv, cgrArgs.ArgDispatcher)
cgrEv, cgrArgs.ArgDispatcher,
rdrCfg.Flags.HasKey(utils.MetaFD))
rply := utils.StringPointer("")
err = erS.connMgr.Call(erS.cfg.ERsCfg().SessionSConns, nil, utils.SessionSv1TerminateSession,
terminateArgs, rply)
@@ -243,7 +247,8 @@ func (erS *ERService) processEvent(cgrEv *utils.CGREvent, rdrCfg *config.EventRe
rdrCfg.Flags.HasKey(utils.MetaSuppliers),
rdrCfg.Flags.HasKey(utils.MetaSuppliersIgnoreErrors),
rdrCfg.Flags.HasKey(utils.MetaSuppliersEventCost),
cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator)
cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator,
rdrCfg.Flags.HasKey(utils.MetaFD))
rply := new(sessions.V1ProcessMessageReply) // need it so rpcclient can clone
err = erS.connMgr.Call(erS.cfg.ERsCfg().SessionSConns, nil, utils.SessionSv1ProcessMessage,
evArgs, rply)

View File

@@ -1010,7 +1010,7 @@ func (sS *SessionS) filterSessionsCount(sf *utils.SessionFilter, psv bool) (coun
// forkSession will populate SRuns within a Session based on ChargerS output
// forSession can only be called once per Session
// not thread-safe since it should be called in init where there is no concurrency
func (sS *SessionS) forkSession(s *Session) (err error) {
func (sS *SessionS) forkSession(s *Session, forceDuration bool) (err error) {
if len(sS.cgrCfg.SessionSCfg().ChargerSConns) == 0 {
return errors.New("ChargerS is disabled")
}
@@ -1050,17 +1050,18 @@ func (sS *SessionS) forkSession(s *Session) (err error) {
s.SRuns[i] = &SRun{
Event: me,
CD: &engine.CallDescriptor{
CgrID: s.CGRID,
RunID: me.GetStringIgnoreErrors(utils.RunID),
ToR: me.GetStringIgnoreErrors(utils.ToR),
Tenant: s.Tenant,
Category: category,
Subject: subject,
Account: me.GetStringIgnoreErrors(utils.Account),
Destination: me.GetStringIgnoreErrors(utils.Destination),
TimeStart: startTime,
TimeEnd: startTime.Add(s.EventStart.GetDurationIgnoreErrors(utils.Usage)),
ExtraFields: me.AsMapString(utils.MainCDRFields),
CgrID: s.CGRID,
RunID: me.GetStringIgnoreErrors(utils.RunID),
ToR: me.GetStringIgnoreErrors(utils.ToR),
Tenant: s.Tenant,
Category: category,
Subject: subject,
Account: me.GetStringIgnoreErrors(utils.Account),
Destination: me.GetStringIgnoreErrors(utils.Destination),
TimeStart: startTime,
TimeEnd: startTime.Add(s.EventStart.GetDurationIgnoreErrors(utils.Usage)),
ExtraFields: me.AsMapString(utils.MainCDRFields),
ForceDuration: forceDuration,
},
}
}
@@ -1254,7 +1255,7 @@ func (sS *SessionS) initSessionDebitLoops(s *Session) {
}
// authEvent calculates maximum usage allowed for the given event
func (sS *SessionS) authEvent(tnt string, evStart engine.MapEvent) (maxUsage time.Duration, err error) {
func (sS *SessionS) authEvent(tnt string, evStart engine.MapEvent, forceDuration bool) (maxUsage time.Duration, err error) {
cgrID := GetSetCGRID(evStart)
var eventUsage time.Duration
if eventUsage, err = evStart.GetDuration(utils.Usage); err != nil {
@@ -1287,7 +1288,7 @@ func (sS *SessionS) authEvent(tnt string, evStart engine.MapEvent) (maxUsage tim
s.ArgDispatcher.RouteID = utils.StringPointer(routeID)
}
}
if err = sS.forkSession(s); err != nil {
if err = sS.forkSession(s, forceDuration); err != nil {
return
}
var maxUsageSet bool // so we know if we have set the 0 on purpose
@@ -1317,7 +1318,7 @@ func (sS *SessionS) authEvent(tnt string, evStart engine.MapEvent) (maxUsage tim
// initSession handles a new session
// not thread-safe for Session since it is constructed here
func (sS *SessionS) initSession(tnt string, evStart engine.MapEvent, clntConnID string,
resID string, dbtItval time.Duration, argDisp *utils.ArgDispatcher, isMsg bool) (s *Session, err error) {
resID string, dbtItval time.Duration, argDisp *utils.ArgDispatcher, isMsg, forceDuration bool) (s *Session, err error) {
cgrID := GetSetCGRID(evStart)
s = &Session{
CGRID: cgrID,
@@ -1331,7 +1332,7 @@ func (sS *SessionS) initSession(tnt string, evStart engine.MapEvent, clntConnID
if !isMsg && sS.isIndexed(s, false) { // check if already exists
return nil, utils.ErrExists
}
if err = sS.forkSession(s); err != nil {
if err = sS.forkSession(s, forceDuration); err != nil {
return nil, err
}
if !isMsg {
@@ -1342,7 +1343,7 @@ func (sS *SessionS) initSession(tnt string, evStart engine.MapEvent, clntConnID
}
// updateSession will reset terminator, perform debits and replicate sessions
func (sS *SessionS) updateSession(s *Session, updtEv engine.MapEvent, isMsg bool) (maxUsage time.Duration, err error) {
func (sS *SessionS) updateSession(s *Session, updtEv engine.MapEvent, isMsg, forceDuration bool) (maxUsage time.Duration, err error) {
if !isMsg {
defer sS.replicateSessions(s.CGRID, false, sS.cgrCfg.SessionSCfg().ReplicationConns)
s.Lock()
@@ -1478,13 +1479,13 @@ func (sS *SessionS) endSession(s *Session, tUsage, lastUsage *time.Duration,
// chargeEvent will charge a single event (ie: SMS)
func (sS *SessionS) chargeEvent(tnt string, ev engine.MapEvent,
argDisp *utils.ArgDispatcher) (maxUsage time.Duration, err error) {
argDisp *utils.ArgDispatcher, forceDuration bool) (maxUsage time.Duration, err error) {
cgrID := GetSetCGRID(ev)
var s *Session
if s, err = sS.initSession(tnt, ev, "", "", 0, argDisp, true); err != nil {
if s, err = sS.initSession(tnt, ev, "", "", 0, argDisp, true, forceDuration); err != nil {
return
}
if maxUsage, err = sS.updateSession(s, nil, true); err != nil {
if maxUsage, err = sS.updateSession(s, nil, true, forceDuration); err != nil {
if errEnd := sS.terminateSession(s,
utils.DurationPointer(time.Duration(0)), nil, nil, true); errEnd != nil {
utils.Logger.Warning(
@@ -1648,7 +1649,7 @@ func NewV1AuthorizeArgs(attrs bool, attributeIDs []string,
thrslds bool, thresholdIDs []string, statQueues bool, statIDs []string,
res, maxUsage, suppls, supplsIgnoreErrs, supplsEventCost bool,
cgrEv *utils.CGREvent, argDisp *utils.ArgDispatcher,
supplierPaginator utils.Paginator) (args *V1AuthorizeArgs) {
supplierPaginator utils.Paginator, forceDuration bool) (args *V1AuthorizeArgs) {
args = &V1AuthorizeArgs{
GetAttributes: attrs,
AuthorizeResources: res,
@@ -1658,6 +1659,7 @@ func NewV1AuthorizeArgs(attrs bool, attributeIDs []string,
SuppliersIgnoreErrors: supplsIgnoreErrs,
GetSuppliers: suppls,
CGREvent: cgrEv,
ForceDuration: forceDuration,
}
if supplsEventCost {
args.SuppliersMaxCost = utils.MetaSuppliersEventCost
@@ -1685,6 +1687,7 @@ type V1AuthorizeArgs struct {
ProcessThresholds bool
ProcessStats bool
GetSuppliers bool
ForceDuration bool
SuppliersMaxCost string
SuppliersIgnoreErrors bool
AttributeIDs []string
@@ -1721,6 +1724,8 @@ func (args *V1AuthorizeArgs) ParseFlags(flags string) {
case strings.HasPrefix(subsystem, utils.MetaStats):
args.ProcessStats = true
args.StatIDs = getFlagIDs(subsystem)
case subsystem == utils.MetaFD:
args.ForceDuration = true
}
}
cgrArgs := args.CGREvent.ExtractArgs(dispatcherFlag, true)
@@ -1830,7 +1835,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEvent(clnt rpcclient.ClientConnector,
}
if args.GetMaxUsage {
if authReply.MaxUsage, err = sS.authEvent(args.CGREvent.Tenant,
args.CGREvent.Event); err != nil {
args.CGREvent.Event, args.ForceDuration); err != nil {
return err
}
}
@@ -1939,7 +1944,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEventWithDigest(clnt rpcclient.ClientConnect
func NewV1InitSessionArgs(attrs bool, attributeIDs []string,
thrslds bool, thresholdIDs []string, stats bool, statIDs []string,
resrc, acnt bool, cgrEv *utils.CGREvent,
argDisp *utils.ArgDispatcher) (args *V1InitSessionArgs) {
argDisp *utils.ArgDispatcher, forceDuration bool) (args *V1InitSessionArgs) {
args = &V1InitSessionArgs{
GetAttributes: attrs,
AllocateResources: resrc,
@@ -1948,6 +1953,7 @@ func NewV1InitSessionArgs(attrs bool, attributeIDs []string,
ProcessStats: stats,
CGREvent: cgrEv,
ArgDispatcher: argDisp,
ForceDuration: forceDuration,
}
if len(attributeIDs) != 0 {
args.AttributeIDs = attributeIDs
@@ -1966,6 +1972,7 @@ type V1InitSessionArgs struct {
GetAttributes bool
AllocateResources bool
InitSession bool
ForceDuration bool
ProcessThresholds bool
ProcessStats bool
AttributeIDs []string
@@ -1995,6 +2002,8 @@ func (args *V1InitSessionArgs) ParseFlags(flags string) {
case strings.HasPrefix(subsystem, utils.MetaStats):
args.ProcessStats = true
args.StatIDs = getFlagIDs(subsystem)
case subsystem == utils.MetaFD:
args.ForceDuration = true
}
}
cgrArgs := args.CGREvent.ExtractArgs(dispatcherFlag, false)
@@ -2128,7 +2137,7 @@ func (sS *SessionS) BiRPCv1InitiateSession(clnt rpcclient.ClientConnector,
}
}
s, err := sS.initSession(args.CGREvent.Tenant, ev,
sS.biJClntID(clnt), originID, dbtItvl, args.ArgDispatcher, false)
sS.biJClntID(clnt), originID, dbtItvl, args.ArgDispatcher, false, args.ForceDuration)
if err != nil {
return err
}
@@ -2136,7 +2145,7 @@ func (sS *SessionS) BiRPCv1InitiateSession(clnt rpcclient.ClientConnector,
rply.MaxUsage = sS.cgrCfg.SessionSCfg().MaxCallDuration
} else {
var maxUsage time.Duration
if maxUsage, err = sS.updateSession(s, nil, false); err != nil {
if maxUsage, err = sS.updateSession(s, nil, false, args.ForceDuration); err != nil {
return utils.NewErrRALs(err)
}
rply.MaxUsage = maxUsage
@@ -2215,12 +2224,13 @@ func (sS *SessionS) BiRPCv1InitiateSessionWithDigest(clnt rpcclient.ClientConnec
// NewV1UpdateSessionArgs is a constructor for update session arguments
func NewV1UpdateSessionArgs(attrs bool, attributeIDs []string,
acnts bool, cgrEv *utils.CGREvent,
argDisp *utils.ArgDispatcher) (args *V1UpdateSessionArgs) {
argDisp *utils.ArgDispatcher, forceDuration bool) (args *V1UpdateSessionArgs) {
args = &V1UpdateSessionArgs{
GetAttributes: attrs,
UpdateSession: acnts,
CGREvent: cgrEv,
ArgDispatcher: argDisp,
ForceDuration: forceDuration,
}
if len(attributeIDs) != 0 {
args.AttributeIDs = attributeIDs
@@ -2232,6 +2242,7 @@ func NewV1UpdateSessionArgs(attrs bool, attributeIDs []string,
type V1UpdateSessionArgs struct {
GetAttributes bool
UpdateSession bool
ForceDuration bool
AttributeIDs []string
*utils.CGREvent
*utils.ArgDispatcher
@@ -2337,11 +2348,11 @@ func (sS *SessionS) BiRPCv1UpdateSession(clnt rpcclient.ClientConnector,
if s, err = sS.initSession(args.CGREvent.Tenant,
ev, sS.biJClntID(clnt),
ev.GetStringIgnoreErrors(utils.OriginID),
dbtItvl, args.ArgDispatcher, false); err != nil {
dbtItvl, args.ArgDispatcher, false, args.ForceDuration); err != nil {
return err
}
}
if rply.MaxUsage, err = sS.updateSession(s, ev.Clone(), false); err != nil {
if rply.MaxUsage, err = sS.updateSession(s, ev.Clone(), false, args.ForceDuration); err != nil {
return utils.NewErrRALs(err)
}
}
@@ -2352,7 +2363,7 @@ func (sS *SessionS) BiRPCv1UpdateSession(clnt rpcclient.ClientConnector,
func NewV1TerminateSessionArgs(acnts, resrc,
thrds bool, thresholdIDs []string, stats bool,
statIDs []string, cgrEv *utils.CGREvent,
argDisp *utils.ArgDispatcher) (args *V1TerminateSessionArgs) {
argDisp *utils.ArgDispatcher, forceDuration bool) (args *V1TerminateSessionArgs) {
args = &V1TerminateSessionArgs{
TerminateSession: acnts,
ReleaseResources: resrc,
@@ -2360,6 +2371,7 @@ func NewV1TerminateSessionArgs(acnts, resrc,
ProcessStats: stats,
CGREvent: cgrEv,
ArgDispatcher: argDisp,
ForceDuration: forceDuration,
}
if len(thresholdIDs) != 0 {
args.ThresholdIDs = thresholdIDs
@@ -2373,6 +2385,7 @@ func NewV1TerminateSessionArgs(acnts, resrc,
// V1TerminateSessionArgs is used as argumen for TerminateSession
type V1TerminateSessionArgs struct {
TerminateSession bool
ForceDuration bool
ReleaseResources bool
ProcessThresholds bool
ProcessStats bool
@@ -2399,6 +2412,8 @@ func (args *V1TerminateSessionArgs) ParseFlags(flags string) {
case strings.Index(subsystem, utils.MetaStats) != -1:
args.ProcessStats = true
args.StatIDs = getFlagIDs(subsystem)
case subsystem == utils.MetaFD:
args.ForceDuration = true
}
}
cgrArgs := args.CGREvent.ExtractArgs(dispatcherFlag, false)
@@ -2470,7 +2485,7 @@ func (sS *SessionS) BiRPCv1TerminateSession(clnt rpcclient.ClientConnector,
if s, err = sS.initSession(args.CGREvent.Tenant,
ev, sS.biJClntID(clnt),
ev.GetStringIgnoreErrors(utils.OriginID), dbtItvl,
args.ArgDispatcher, false); err != nil {
args.ArgDispatcher, false, args.ForceDuration); err != nil {
return err
}
@@ -2621,7 +2636,7 @@ func NewV1ProcessMessageArgs(attrs bool, attributeIDs []string,
thds bool, thresholdIDs []string, stats bool, statIDs []string, resrc, acnts,
suppls, supplsIgnoreErrs, supplsEventCost bool,
cgrEv *utils.CGREvent, argDisp *utils.ArgDispatcher,
supplierPaginator utils.Paginator) (args *V1ProcessMessageArgs) {
supplierPaginator utils.Paginator, forceDuration bool) (args *V1ProcessMessageArgs) {
args = &V1ProcessMessageArgs{
AllocateResources: resrc,
Debit: acnts,
@@ -2632,6 +2647,7 @@ func NewV1ProcessMessageArgs(attrs bool, attributeIDs []string,
GetSuppliers: suppls,
CGREvent: cgrEv,
ArgDispatcher: argDisp,
ForceDuration: forceDuration,
}
if supplsEventCost {
args.SuppliersMaxCost = utils.MetaSuppliersEventCost
@@ -2654,6 +2670,7 @@ type V1ProcessMessageArgs struct {
GetAttributes bool
AllocateResources bool
Debit bool
ForceDuration bool
ProcessThresholds bool
ProcessStats bool
GetSuppliers bool
@@ -2693,6 +2710,8 @@ func (args *V1ProcessMessageArgs) ParseFlags(flags string) {
case strings.Index(subsystem, utils.MetaStats) != -1:
args.ProcessStats = true
args.StatIDs = getFlagIDs(subsystem)
case subsystem == utils.MetaFD:
args.ForceDuration = true
}
}
cgrArgs := args.CGREvent.ExtractArgs(dispatcherFlag, true)
@@ -2833,7 +2852,7 @@ func (sS *SessionS) BiRPCv1ProcessMessage(clnt rpcclient.ClientConnector,
if args.Debit {
var maxUsage time.Duration
if maxUsage, err = sS.chargeEvent(args.CGREvent.Tenant,
engine.MapEvent(args.CGREvent.Event), args.ArgDispatcher); err != nil {
engine.MapEvent(args.CGREvent.Event), args.ArgDispatcher, args.ForceDuration); err != nil {
return err
}
rply.MaxUsage = maxUsage
@@ -3038,7 +3057,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(clnt rpcclient.ClientConnector,
//check for auth session
case ralsFlagsWithParams.HasKey(utils.MetaAuthorize):
maxUsage, err := sS.authEvent(args.CGREvent.Tenant,
engine.MapEvent(args.CGREvent.Event))
engine.MapEvent(args.CGREvent.Event), ralsFlagsWithParams.HasKey(utils.MetaFD))
if err != nil {
return err
}
@@ -3051,7 +3070,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(clnt rpcclient.ClientConnector,
}
}
s, err := sS.initSession(args.CGREvent.Tenant, ev,
sS.biJClntID(clnt), originID, dbtItvl, args.ArgDispatcher, false)
sS.biJClntID(clnt), originID, dbtItvl, args.ArgDispatcher, false, ralsFlagsWithParams.HasKey(utils.MetaFD))
if err != nil {
return err
}
@@ -3059,7 +3078,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(clnt rpcclient.ClientConnector,
rply.MaxUsage = sS.cgrCfg.SessionSCfg().MaxCallDuration
} else {
var maxUsage time.Duration
if maxUsage, err = sS.updateSession(s, nil, false); err != nil {
if maxUsage, err = sS.updateSession(s, nil, false, ralsFlagsWithParams.HasKey(utils.MetaFD)); err != nil {
return utils.NewErrRALs(err)
}
rply.MaxUsage = maxUsage
@@ -3080,12 +3099,13 @@ func (sS *SessionS) BiRPCv1ProcessEvent(clnt rpcclient.ClientConnector,
if s == nil {
if s, err = sS.initSession(args.CGREvent.Tenant,
ev, sS.biJClntID(clnt),
ev.GetStringIgnoreErrors(utils.OriginID), dbtItvl, args.ArgDispatcher, false); err != nil {
ev.GetStringIgnoreErrors(utils.OriginID), dbtItvl, args.ArgDispatcher,
false, ralsFlagsWithParams.HasKey(utils.MetaFD)); err != nil {
return err
}
}
var maxUsage time.Duration
if maxUsage, err = sS.updateSession(s, ev, false); err != nil {
if maxUsage, err = sS.updateSession(s, ev, false, ralsFlagsWithParams.HasKey(utils.MetaFD)); err != nil {
return utils.NewErrRALs(err)
}
rply.MaxUsage = maxUsage
@@ -3105,7 +3125,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(clnt rpcclient.ClientConnector,
if s, err = sS.initSession(args.CGREvent.Tenant,
ev, sS.biJClntID(clnt),
ev.GetStringIgnoreErrors(utils.OriginID), dbtItvl,
args.ArgDispatcher, false); err != nil {
args.ArgDispatcher, false, ralsFlagsWithParams.HasKey(utils.MetaFD)); err != nil {
return err
}
}

View File

@@ -827,7 +827,7 @@ func TestSessionSNewV1AuthorizeArgs(t *testing.T) {
GetAttributes: true,
CGREvent: cgrEv,
}
rply := NewV1AuthorizeArgs(true, nil, false, nil, false, nil, true, false, false, false, false, cgrEv, nil, utils.Paginator{})
rply := NewV1AuthorizeArgs(true, nil, false, nil, false, nil, true, false, false, false, false, cgrEv, nil, utils.Paginator{}, false)
if !reflect.DeepEqual(expected, rply) {
t.Errorf("Expecting %+v, received: %+v", expected, rply)
}
@@ -841,8 +841,9 @@ func TestSessionSNewV1AuthorizeArgs(t *testing.T) {
SuppliersIgnoreErrors: true,
SuppliersMaxCost: utils.MetaSuppliersEventCost,
CGREvent: cgrEv,
ForceDuration: true,
}
rply = NewV1AuthorizeArgs(true, nil, false, nil, true, nil, false, true, false, true, true, cgrEv, nil, utils.Paginator{})
rply = NewV1AuthorizeArgs(true, nil, false, nil, true, nil, false, true, false, true, true, cgrEv, nil, utils.Paginator{}, true)
if !reflect.DeepEqual(expected, rply) {
t.Errorf("Expecting %+v,\n received: %+v", expected, rply)
}
@@ -864,7 +865,8 @@ func TestSessionSNewV1AuthorizeArgs(t *testing.T) {
ThresholdIDs: []string{"ID1", "ID2"},
StatIDs: []string{"test3", "test4"},
}
rply = NewV1AuthorizeArgs(true, attributeIDs, false, thresholdIDs, true, statIDs, false, true, false, true, true, cgrEv, nil, utils.Paginator{})
rply = NewV1AuthorizeArgs(true, attributeIDs, false, thresholdIDs, true, statIDs,
false, true, false, true, true, cgrEv, nil, utils.Paginator{}, false)
if !reflect.DeepEqual(expected, rply) {
t.Errorf("Expecting %+v,\n received: %+v", expected, rply)
}
@@ -918,9 +920,10 @@ func TestV1AuthorizeArgsParseFlags(t *testing.T) {
StatIDs: []string{"st1", "st2", "st3"},
ArgDispatcher: cgrArgs.ArgDispatcher,
Paginator: *cgrArgs.SupplierPaginator,
ForceDuration: true,
}
strArg = "*accounts,*resources,,*dispatchers,*suppliers,*suppliers_ignore_errors,*suppliers_event_cost,*attributes:Attr1;Attr2,*thresholds:tr1;tr2;tr3,*stats:st1;st2;st3"
strArg = "*accounts,*fd,*resources,,*dispatchers,*suppliers,*suppliers_ignore_errors,*suppliers_event_cost,*attributes:Attr1;Attr2,*thresholds:tr1;tr2;tr3,*stats:st1;st2;st3"
v1authArgs.ParseFlags(strArg)
if !reflect.DeepEqual(eOut, v1authArgs) {
t.Errorf("Expecting %+v,\n received: %+v\n", utils.ToJSON(eOut), utils.ToJSON(v1authArgs))
@@ -940,8 +943,9 @@ func TestSessionSNewV1UpdateSessionArgs(t *testing.T) {
GetAttributes: true,
UpdateSession: true,
CGREvent: cgrEv,
ForceDuration: true,
}
rply := NewV1UpdateSessionArgs(true, nil, true, cgrEv, nil)
rply := NewV1UpdateSessionArgs(true, nil, true, cgrEv, nil, true)
if !reflect.DeepEqual(expected, rply) {
t.Errorf("Expecting %+v, received: %+v", expected, rply)
}
@@ -949,14 +953,15 @@ func TestSessionSNewV1UpdateSessionArgs(t *testing.T) {
GetAttributes: false,
UpdateSession: true,
CGREvent: cgrEv,
ForceDuration: false,
}
rply = NewV1UpdateSessionArgs(false, nil, true, cgrEv, nil)
rply = NewV1UpdateSessionArgs(false, nil, true, cgrEv, nil, false)
if !reflect.DeepEqual(expected, rply) {
t.Errorf("Expecting %+v, received: %+v", expected, rply)
}
//test with len(AttributeIDs) != 0
attributeIDs := []string{"ATTR1", "ATTR2"}
rply = NewV1UpdateSessionArgs(false, attributeIDs, true, cgrEv, nil)
rply = NewV1UpdateSessionArgs(false, attributeIDs, true, cgrEv, nil, false)
expected.AttributeIDs = []string{"ATTR1", "ATTR2"}
if !reflect.DeepEqual(expected, rply) {
t.Errorf("Expecting %+v, received: %+v", expected, rply)
@@ -977,14 +982,14 @@ func TestSessionSNewV1TerminateSessionArgs(t *testing.T) {
ProcessThresholds: true,
CGREvent: cgrEv,
}
rply := NewV1TerminateSessionArgs(true, false, true, nil, false, nil, cgrEv, nil)
rply := NewV1TerminateSessionArgs(true, false, true, nil, false, nil, cgrEv, nil, false)
if !reflect.DeepEqual(expected, rply) {
t.Errorf("Expecting %+v, received: %+v", expected, rply)
}
expected = &V1TerminateSessionArgs{
CGREvent: cgrEv,
}
rply = NewV1TerminateSessionArgs(false, false, false, nil, false, nil, cgrEv, nil)
rply = NewV1TerminateSessionArgs(false, false, false, nil, false, nil, cgrEv, nil, false)
if !reflect.DeepEqual(expected, rply) {
t.Errorf("Expecting %+v, received: %+v", expected, rply)
}
@@ -996,7 +1001,8 @@ func TestSessionSNewV1TerminateSessionArgs(t *testing.T) {
ThresholdIDs: []string{"ID1", "ID2"},
StatIDs: []string{"test1", "test2"},
}
rply = NewV1TerminateSessionArgs(false, false, false, thresholdIDs, false, statIDs, cgrEv, nil)
rply = NewV1TerminateSessionArgs(false, false, false,
thresholdIDs, false, statIDs, cgrEv, nil, false)
if !reflect.DeepEqual(expected, rply) {
t.Errorf("Expecting %+v, received: %+v", expected, rply)
}
@@ -1019,7 +1025,8 @@ func TestSessionSNewV1ProcessMessageArgs(t *testing.T) {
CGREvent: cgrEv,
GetSuppliers: true,
}
rply := NewV1ProcessMessageArgs(true, nil, false, nil, false, nil, true, true, true, false, false, cgrEv, nil, utils.Paginator{})
rply := NewV1ProcessMessageArgs(true, nil, false, nil, false, nil,
true, true, true, false, false, cgrEv, nil, utils.Paginator{}, false)
if !reflect.DeepEqual(expected, rply) {
t.Errorf("Expecting %+v, received: %+v", expected, rply)
}
@@ -1031,7 +1038,8 @@ func TestSessionSNewV1ProcessMessageArgs(t *testing.T) {
SuppliersMaxCost: utils.MetaSuppliersEventCost,
SuppliersIgnoreErrors: true,
}
rply = NewV1ProcessMessageArgs(true, nil, false, nil, false, nil, true, false, true, true, true, cgrEv, nil, utils.Paginator{})
rply = NewV1ProcessMessageArgs(true, nil, false, nil, false, nil, true,
false, true, true, true, cgrEv, nil, utils.Paginator{}, false)
if !reflect.DeepEqual(expected, rply) {
t.Errorf("Expecting %+v, received: %+v", expected, rply)
}
@@ -1051,7 +1059,8 @@ func TestSessionSNewV1ProcessMessageArgs(t *testing.T) {
ThresholdIDs: []string{"ID1", "ID2"},
StatIDs: []string{"test3", "test4"},
}
rply = NewV1ProcessMessageArgs(true, attributeIDs, false, thresholdIDs, false, statIDs, true, false, true, true, true, cgrEv, nil, utils.Paginator{})
rply = NewV1ProcessMessageArgs(true, attributeIDs, false, thresholdIDs, false, statIDs, true,
false, true, true, true, cgrEv, nil, utils.Paginator{}, false)
if !reflect.DeepEqual(expected, rply) {
t.Errorf("Expecting %+v, received: %+v", expected, rply)
}
@@ -1082,7 +1091,8 @@ func TestSessionSNewV1InitSessionArgs(t *testing.T) {
StatIDs: []string{"test3", "test4"},
CGREvent: cgrEv,
}
rply := NewV1InitSessionArgs(true, attributeIDs, true, thresholdIDs, true, statIDs, true, true, cgrEv, nil)
rply := NewV1InitSessionArgs(true, attributeIDs, true, thresholdIDs,
true, statIDs, true, true, cgrEv, nil, false)
if !reflect.DeepEqual(expected, rply) {
t.Errorf("Expecting %+v, received: %+v", expected, rply)
}
@@ -1104,7 +1114,8 @@ func TestSessionSNewV1InitSessionArgs(t *testing.T) {
ProcessStats: true,
CGREvent: cgrEv,
}
rply = NewV1InitSessionArgs(true, nil, true, nil, true, nil, true, true, cgrEv, nil)
rply = NewV1InitSessionArgs(true, nil, true, nil,
true, nil, true, true, cgrEv, nil, false)
if !reflect.DeepEqual(expected, rply) {
t.Errorf("Expecting %+v, received: %+v", expected, rply)
}
@@ -1116,7 +1127,8 @@ func TestSessionSNewV1InitSessionArgs(t *testing.T) {
ProcessStats: true,
CGREvent: cgrEv,
}
rply = NewV1InitSessionArgs(true, nil, false, nil, true, nil, false, true, cgrEv, nil)
rply = NewV1InitSessionArgs(true, nil, false, nil, true,
nil, false, true, cgrEv, nil, false)
if !reflect.DeepEqual(expected, rply) {
t.Errorf("Expecting %+v, received: %+v", expected, rply)
}
@@ -1489,7 +1501,8 @@ func TestSessionSNewV1AuthorizeArgsWithArgDispatcher(t *testing.T) {
},
}
cgrArgs := cgrEv.ExtractArgs(true, true)
rply := NewV1AuthorizeArgs(true, nil, false, nil, false, nil, true, false, false, false, false, cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator)
rply := NewV1AuthorizeArgs(true, nil, false, nil, false, nil, true, false, false, false,
false, cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator, false)
if !reflect.DeepEqual(expected, rply) {
t.Errorf("Expecting %+v, received: %+v", utils.ToJSON(expected), utils.ToJSON(rply))
}
@@ -1508,7 +1521,8 @@ func TestSessionSNewV1AuthorizeArgsWithArgDispatcher(t *testing.T) {
RouteID: utils.StringPointer("testrouteid"),
},
}
rply = NewV1AuthorizeArgs(true, nil, false, nil, true, nil, false, true, false, true, true, cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator)
rply = NewV1AuthorizeArgs(true, nil, false, nil, true, nil, false,
true, false, true, true, cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator, false)
if !reflect.DeepEqual(expected, rply) {
t.Errorf("Expecting %+v, received: %+v", utils.ToJSON(expected), utils.ToJSON(rply))
}
@@ -1533,7 +1547,8 @@ func TestSessionSNewV1AuthorizeArgsWithArgDispatcher2(t *testing.T) {
},
}
cgrArgs := cgrEv.ExtractArgs(true, true)
rply := NewV1AuthorizeArgs(true, nil, false, nil, false, nil, true, false, false, false, false, cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator)
rply := NewV1AuthorizeArgs(true, nil, false, nil, false, nil, true, false,
false, false, false, cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator, false)
if !reflect.DeepEqual(expected, rply) {
t.Errorf("Expecting %+v, received: %+v", utils.ToJSON(expected), utils.ToJSON(rply))
}
@@ -1551,7 +1566,8 @@ func TestSessionSNewV1AuthorizeArgsWithArgDispatcher2(t *testing.T) {
RouteID: utils.StringPointer("testrouteid"),
},
}
rply = NewV1AuthorizeArgs(true, nil, false, nil, true, nil, false, true, false, true, true, cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator)
rply = NewV1AuthorizeArgs(true, nil, false, nil, true, nil, false,
true, false, true, true, cgrEv, cgrArgs.ArgDispatcher, *cgrArgs.SupplierPaginator, false)
if !reflect.DeepEqual(expected, rply) {
t.Errorf("Expecting %+v, received: %+v", utils.ToJSON(expected), utils.ToJSON(rply))
}

View File

@@ -553,6 +553,7 @@ const (
MetaTrl = "*trl"
CGROriginHost = "cgr_originhost"
MetaInitiate = "*initiate"
MetaFD = "*fd"
MetaUpdate = "*update"
MetaTerminate = "*terminate"
MetaEvent = "*event"
@@ -1127,8 +1128,8 @@ const (
APIerSv1ReloadCdreConfig = "APIerSv1.ReloadCdreConfig"
APIerSv1GetLoadHistory = "APIerSv1.GetLoadHistory"
APIerSv1GetLoadIDs = "APIerSv1.GetLoadIDs"
APIerSv1GetLoadTimes = "APIerSv1.GetLoadTimes"
APIerSv1ExecuteScheduledActions = "APIerSv1.ExecuteScheduledActions"
APIerSv1GetLoadTimes = "APIerSv1.GetLoadTimes"
APIerSv1GetSharedGroup = "APIerSv1.GetSharedGroup"
APIerSv1RemoveActionTrigger = "APIerSv1.RemoveActionTrigger"
APIerSv1GetAccount = "APIerSv1.GetAccount"