mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Add support for *fd flag in agent
This commit is contained in:
committed by
Dan Christian Bogos
parent
211b14d4af
commit
3aaf458a2b
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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) {
|
||||
|
||||
13
ers/ers.go
13
ers/ers.go
@@ -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)
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user