Merge fixes

This commit is contained in:
adi
2022-09-22 16:07:16 +03:00
committed by Dan Christian Bogos
parent 15fbc25351
commit 67163a1ff5
22 changed files with 224 additions and 123 deletions

View File

@@ -330,7 +330,7 @@ func (aS *AccountS) V1AccountsForEvent(ctx *context.Context, args *utils.CGREven
return
}
var ignFilters bool
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args, aS.fltrS, aS.cfg.AccountSCfg().Opts.ProfileIgnoreFilters,
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), aS.fltrS, aS.cfg.AccountSCfg().Opts.ProfileIgnoreFilters,
config.AccountsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
return
}
@@ -354,7 +354,7 @@ func (aS *AccountS) V1MaxAbstracts(ctx *context.Context, args *utils.CGREvent, e
return
}
var ignFilters bool
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args, aS.fltrS, aS.cfg.AccountSCfg().Opts.ProfileIgnoreFilters,
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), aS.fltrS, aS.cfg.AccountSCfg().Opts.ProfileIgnoreFilters,
config.AccountsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
return
}
@@ -384,7 +384,7 @@ func (aS *AccountS) V1DebitAbstracts(ctx *context.Context, args *utils.CGREvent,
return
}
var ignFilters bool
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args, aS.fltrS, aS.cfg.AccountSCfg().Opts.ProfileIgnoreFilters,
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), aS.fltrS, aS.cfg.AccountSCfg().Opts.ProfileIgnoreFilters,
config.AccountsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
return
}
@@ -414,7 +414,7 @@ func (aS *AccountS) V1MaxConcretes(ctx *context.Context, args *utils.CGREvent, e
return
}
var ignFilters bool
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args, aS.fltrS, aS.cfg.AccountSCfg().Opts.ProfileIgnoreFilters,
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), aS.fltrS, aS.cfg.AccountSCfg().Opts.ProfileIgnoreFilters,
config.AccountsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
return
}
@@ -444,7 +444,7 @@ func (aS *AccountS) V1DebitConcretes(ctx *context.Context, args *utils.CGREvent,
return
}
var ignFilters bool
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args, aS.fltrS, aS.cfg.AccountSCfg().Opts.ProfileIgnoreFilters,
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), aS.fltrS, aS.cfg.AccountSCfg().Opts.ProfileIgnoreFilters,
config.AccountsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
return
}

View File

@@ -283,7 +283,7 @@ func (aS *ActionS) V1ScheduleActions(ctx *context.Context, args *utils.CGREvent,
return
}
var ignFilters bool
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args, aS.fltrS, aS.cfg.ActionSCfg().Opts.ProfileIgnoreFilters,
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), aS.fltrS, aS.cfg.ActionSCfg().Opts.ProfileIgnoreFilters,
config.ActionsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
return
}
@@ -303,7 +303,7 @@ func (aS *ActionS) V1ExecuteActions(ctx *context.Context, args *utils.CGREvent,
return
}
var ignFilters bool
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args, aS.fltrS, aS.cfg.ActionSCfg().Opts.ProfileIgnoreFilters,
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), aS.fltrS, aS.cfg.ActionSCfg().Opts.ProfileIgnoreFilters,
config.ActionsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
return
}

View File

@@ -20,6 +20,7 @@
"*dispatcher_loads": {"limit": -1, "replicate": true}
},
"replication_conns": ["cacheReplication"],
"remote_conns": ["cacheReplication"],
},

View File

@@ -19,9 +19,6 @@
"db_port": 6379,
"db_name": "11",
},
"caches":{
"partitions": {

View File

@@ -19,13 +19,21 @@
"db_type": "*internal",
},
"caches":{
"remote_conns": ["gob_cache"], // the conns that are queried when the items are not found in cache
},
"rpc_conns": {
"conn1": {
"strategy": "*first",
"conns": [{"address": "127.0.0.1:6012", "transport":"*json"}],
},
"gob_cache": {
"strategy": "*first",
"conns": [
{"address": "127.0.0.1:6013", "transport":"*gob"},
],
},
},
"attributes": {

View File

@@ -24,12 +24,32 @@
"dispatchers":{
"enabled": true,
"opts": {
"*dispatcherS": [
{
"Tenant": "cgrates.org",
"FilterIDs": ["*string:~*opts.*subsys:*dispatchers"],
"Value": false,
},
],
},
},
"caches":{
"remote_conns": ["gob_cache"], // the conns that are queried when the items are not found in cache
},
"admins": {
"enabled": true,
},
"rpc_conns": {
"gob_cache": {
"strategy": "*first",
"conns": [
{"address": "127.0.0.1:2013", "transport":"*gob"},
],
},
},
}

View File

@@ -18,23 +18,22 @@
"db_name": "10", // data_db database name to connect to
},
/*
"dispatchers":{
"enabled": true,
"opts": { //
// "*dispatcherS": [
// {
// "Tenant": "cgrates.org",
// "FilterIDs": [],
// "Value": true,
// },
// ],
},
"opts": {
"*dispatcherS": [
{
"Tenant": "cgrates.org",
"FilterIDs": ["*string:~*opts.*subsys:*dispatchers"],
"Value": false,
},
],
},
},
*/
"caches":{
//"remote_conns": ["*internal"], // the conns that are queried when the items are not found in cache
//"remote_conns": ["gob_cache"], // the conns that are queried when the items are not found in cache
},
@@ -51,6 +50,11 @@
{"address": "127.0.0.1:4012", "transport":"*json"},
],
},
/* "gob_cache": {
"conns": [
{"address": "127.0.0.1:4012", "transport":"*gob"},
],
}, */
},
}

View File

@@ -266,6 +266,8 @@ func testDspAttrGetAttrFailover(t *testing.T) {
APIOpts: map[string]interface{}{
utils.OptsAPIKey: "attr12345",
utils.OptsContext: "simpleauth",
utils.MetaNodeID: "DispatcherS1",
utils.MetaSubsys: "*dispatchers",
},
},
}
@@ -467,6 +469,8 @@ func testDspAttrTestAuthKey2(t *testing.T) {
APIOpts: map[string]interface{}{
utils.OptsAPIKey: "attr12345",
utils.OptsContext: "simpleauth",
utils.MetaNodeID: "DispatcherS1",
utils.MetaSubsys: "*dispatchers",
},
},
}
@@ -557,6 +561,8 @@ func testDspAttrGetAttrRoundRobin(t *testing.T) {
APIOpts: map[string]interface{}{
utils.OptsAPIKey: "attr12345",
utils.OptsContext: "simpleauth",
utils.MetaNodeID: "DispatcherS1",
utils.MetaSubsys: "*dispatchers",
},
},
}
@@ -632,6 +638,8 @@ func testDspAttrGetAttrInternal(t *testing.T) {
APIOpts: map[string]interface{}{
utils.OptsAPIKey: "attr12345",
utils.OptsContext: "simpleauth",
utils.MetaNodeID: "DispatcherS1",
utils.MetaSubsys: "*dispatchers",
},
},
}

View File

@@ -43,6 +43,7 @@ func (dS *DispatcherService) CacheSv1Clear(ctx *context.Context, args *utils.Att
}
return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCaches, utils.CacheSv1Clear, args, reply)
}
func (dS *DispatcherService) CacheSv1GetCacheStats(ctx *context.Context, args *utils.AttrCacheIDsWithAPIOpts, reply *map[string]*ltcache.CacheStats) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && len(args.Tenant) != 0 {
@@ -60,6 +61,7 @@ func (dS *DispatcherService) CacheSv1GetCacheStats(ctx *context.Context, args *u
}
return dS.Dispatch(ctx, &utils.CGREvent{Tenant: tnt, Event: ev, APIOpts: opts}, utils.MetaCaches, utils.CacheSv1GetCacheStats, args, reply)
}
func (dS *DispatcherService) CacheSv1GetGroupItemIDs(ctx *context.Context, args *utils.ArgsGetGroupWithAPIOpts, reply *[]string) (err error) {
tnt := dS.cfg.GeneralCfg().DefaultTenant
if args != nil && len(args.Tenant) != 0 {

View File

@@ -104,7 +104,7 @@ func (dS *DispatcherService) dispatcherProfilesForEvent(ctx *context.Context, tn
evNm utils.MapStorage) (dPrlfs engine.DispatcherProfiles, err error) {
// make sure dispatching is allowed
var shouldDispatch bool
if shouldDispatch, err = engine.GetBoolOpts(ctx, tnt, ev, dS.fltrS, dS.cfg.DispatcherSCfg().Opts.Dispatchers,
if shouldDispatch, err = engine.GetBoolOpts(ctx, tnt, evNm, dS.fltrS, dS.cfg.DispatcherSCfg().Opts.Dispatchers,
config.DispatchersDispatchersDftOpt, utils.OptsDispatchers); err != nil {
return
} else if !shouldDispatch {
@@ -184,7 +184,7 @@ func (dS *DispatcherService) Dispatch(ctx *context.Context, ev *utils.CGREvent,
}
// avoid further processing if the request is internal
var shouldDispatch bool
if shouldDispatch, err = engine.GetBoolOpts(ctx, tnt, ev, dS.fltrS, dS.cfg.DispatcherSCfg().Opts.Dispatchers,
if shouldDispatch, err = engine.GetBoolOpts(ctx, tnt, evNm, dS.fltrS, dS.cfg.DispatcherSCfg().Opts.Dispatchers,
true, utils.OptsDispatchers); err != nil {
return utils.NewErrDispatcherS(err)
} else if !shouldDispatch {

View File

@@ -162,7 +162,7 @@ func (alS *AttributeS) processEvent(ctx *context.Context, tnt string, args *util
return
}
var ignFilters bool
if ignFilters, err = GetBoolOpts(ctx, tnt, args, alS.fltrS, alS.cfg.AttributeSCfg().Opts.ProfileIgnoreFilters,
if ignFilters, err = GetBoolOpts(ctx, tnt, evNm, alS.fltrS, alS.cfg.AttributeSCfg().Opts.ProfileIgnoreFilters,
config.AttributesProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
return
}
@@ -256,18 +256,20 @@ func (alS *AttributeS) V1GetAttributeForEvent(ctx *context.Context, args *utils.
config.AttributesProfileIDsDftOpt, utils.OptsAttributesProfileIDs); err != nil {
return
}
var ignFilters bool
if ignFilters, err = GetBoolOpts(ctx, tnt, args, alS.fltrS, alS.cfg.AttributeSCfg().Opts.ProfileIgnoreFilters,
config.AttributesProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
return
}
attrPrf, err := alS.attributeProfileForEvent(ctx, tnt, attrIDs, utils.MapStorage{
evNM := utils.MapStorage{
utils.MetaReq: args.Event,
utils.MetaOpts: args.APIOpts,
utils.MetaVars: utils.MapStorage{
utils.OptsAttributesProcessRuns: 0,
},
}, utils.EmptyString, make(map[string]int), 0, ignFilters)
}
var ignFilters bool
if ignFilters, err = GetBoolOpts(ctx, tnt, evNM, alS.fltrS, alS.cfg.AttributeSCfg().Opts.ProfileIgnoreFilters,
config.AttributesProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
return
}
attrPrf, err := alS.attributeProfileForEvent(ctx, tnt, attrIDs, evNM,
utils.EmptyString, make(map[string]int), 0, ignFilters)
if err != nil {
if err != utils.ErrNotFound {
err = utils.NewErrServerError(err)

View File

@@ -195,7 +195,7 @@ func (cdrS *CDRServer) eeSProcessEvent(ctx *context.Context, cgrEv *utils.CGREve
func (cdrS *CDRServer) processEvent(ctx *context.Context, ev *utils.CGREvent) (evs []*utils.EventsWithOpts, err error) {
// making the options
var attrS bool
if attrS, err = GetBoolOpts(ctx, ev.Tenant, ev, cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Attributes,
if attrS, err = GetBoolOpts(ctx, ev.Tenant, ev.AsDataProvider(), cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Attributes,
config.CDRsAttributesDftOpt, utils.OptsAttributeS); err != nil {
return
}
@@ -211,7 +211,7 @@ func (cdrS *CDRServer) processEvent(ctx *context.Context, ev *utils.CGREvent) (e
var cgrEvs []*utils.CGREvent
var chrgS bool
if chrgS, err = GetBoolOpts(ctx, ev.Tenant, ev, cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Chargers,
if chrgS, err = GetBoolOpts(ctx, ev.Tenant, ev.AsDataProvider(), cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Chargers,
config.CDRsChargersDftOpt, utils.OptsChargerS); err != nil {
return
}
@@ -231,7 +231,7 @@ func (cdrS *CDRServer) processEvent(ctx *context.Context, ev *utils.CGREvent) (e
var rateS bool
for _, cgrEv := range cgrEvs {
if rateS, err = GetBoolOpts(ctx, cgrEv.Tenant, cgrEv, cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Rates,
if rateS, err = GetBoolOpts(ctx, cgrEv.Tenant, cgrEv.AsDataProvider(), cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Rates,
config.CDRsRatesDftOpt, utils.OptsRateS); err != nil {
return
}
@@ -247,7 +247,7 @@ func (cdrS *CDRServer) processEvent(ctx *context.Context, ev *utils.CGREvent) (e
var acntS bool
for _, cgrEv := range cgrEvs {
if acntS, err = GetBoolOpts(ctx, cgrEv.Tenant, cgrEv, cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Accounts,
if acntS, err = GetBoolOpts(ctx, cgrEv.Tenant, cgrEv.AsDataProvider(), cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Accounts,
config.CDRsAccountsDftOpt, utils.OptsAccountS); err != nil {
return
}
@@ -287,7 +287,7 @@ func (cdrS *CDRServer) processEvent(ctx *context.Context, ev *utils.CGREvent) (e
}
var export bool
for _, cgrEv := range cgrEvs {
if export, err = GetBoolOpts(ctx, cgrEv.Tenant, cgrEv, cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Export,
if export, err = GetBoolOpts(ctx, cgrEv.Tenant, cgrEv.AsDataProvider(), cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Export,
config.CDRsExportDftOpt, utils.OptsCDRsExport); err != nil {
return
}
@@ -307,7 +307,7 @@ func (cdrS *CDRServer) processEvent(ctx *context.Context, ev *utils.CGREvent) (e
var thdS bool
for _, cgrEv := range cgrEvs {
if thdS, err = GetBoolOpts(ctx, cgrEv.Tenant, cgrEv, cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Thresholds,
if thdS, err = GetBoolOpts(ctx, cgrEv.Tenant, cgrEv.AsDataProvider(), cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Thresholds,
config.CDRsThresholdsDftOpt, utils.OptsThresholdS); err != nil {
return
}
@@ -323,7 +323,7 @@ func (cdrS *CDRServer) processEvent(ctx *context.Context, ev *utils.CGREvent) (e
var stS bool
for _, cgrEv := range cgrEvs {
if stS, err = GetBoolOpts(ctx, cgrEv.Tenant, cgrEv, cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Stats,
if stS, err = GetBoolOpts(ctx, cgrEv.Tenant, cgrEv.AsDataProvider(), cdrS.fltrS, cdrS.cfg.CdrsCfg().Opts.Stats,
config.CDRsStatsDftOpt, utils.OptsStatS); err != nil {
return
}

View File

@@ -171,19 +171,19 @@ func GetIntOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *Filter
// GetBoolOpts checks the specified option names in order among the keys in APIOpts returning the first value it finds as bool, otherwise it
// returns the config option if at least one filter passes or the default value if none of them do
func GetBoolOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *FilterS, dynOpts []*utils.DynamicBoolOpt,
func GetBoolOpts(ctx *context.Context, tnt string, dP utils.DataProvider, fS *FilterS, dynOpts []*utils.DynamicBoolOpt,
dftOpt bool, optNames ...string) (cfgOpt bool, err error) {
optsDP := GetAPIOptsFromDataProvider(dP)
for _, optName := range optNames {
if opt, has := ev.APIOpts[optName]; has {
if opt, has := optsDP[optName]; has {
return utils.IfaceAsBool(opt)
}
}
evDP := ev.AsDataProvider()
for _, opt := range dynOpts { // iterate through the options
if !utils.IsSliceMember([]string{utils.EmptyString, utils.MetaAny, tnt}, opt.Tenant) {
continue
}
if pass, err := fS.Pass(ctx, tnt, opt.FilterIDs, evDP); err != nil { // check if the filter is passing for the DataProvider and return the option if it does
if pass, err := fS.Pass(ctx, tnt, opt.FilterIDs, dP); err != nil { // check if the filter is passing for the DataProvider and return the option if it does
return false, err
} else if pass {
return opt.Value, nil

View File

@@ -785,7 +785,7 @@ func TestLibFiltersGetBoolOptsReturnConfigOpt(t *testing.T) {
}
expected := true
if rcv, err := GetBoolOpts(context.Background(), "cgrates.org", ev, fS, dynOpts,
if rcv, err := GetBoolOpts(context.Background(), "cgrates.org", ev.AsDataProvider(), fS, dynOpts,
config.ThresholdsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
t.Error(err)
} else if rcv != expected {
@@ -816,7 +816,7 @@ func TestLibFiltersGetBoolOptsFilterCheckErr(t *testing.T) {
}
experr := `inline parse error for string: <*string.invalid:filter>`
if _, err := GetBoolOpts(context.Background(), "cgrates.org", ev, fS, dynOpts,
if _, err := GetBoolOpts(context.Background(), "cgrates.org", ev.AsDataProvider(), fS, dynOpts,
config.ThresholdsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
@@ -845,7 +845,7 @@ func TestLibFiltersGetBoolOptsReturnDefaultOpt(t *testing.T) {
},
}
if rcv, err := GetBoolOpts(context.Background(), "cgrates.org", ev, fS, dynOpts,
if rcv, err := GetBoolOpts(context.Background(), "cgrates.org", ev.AsDataProvider(), fS, dynOpts,
config.ThresholdsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
t.Error(err)
} else if rcv != config.ThresholdsProfileIgnoreFiltersDftOpt {
@@ -879,7 +879,7 @@ func TestLibFiltersGetBoolOptsReturnOptFromAPIOpts(t *testing.T) {
}
expected := true
if rcv, err := GetBoolOpts(context.Background(), "cgrates.org", ev, fS, dynOpts,
if rcv, err := GetBoolOpts(context.Background(), "cgrates.org", ev.AsDataProvider(), fS, dynOpts,
config.ThresholdsProfileIgnoreFiltersDftOpt, "nonExistingAPIOpt", utils.MetaProfileIgnoreFilters); err != nil {
t.Error(err)
} else if rcv != expected {

View File

@@ -182,6 +182,19 @@ func NewServiceWithName(val interface{}, name string, useName bool) (_ IntServic
return s, nil
}
func GetAPIOptsFromDataProvider(dP utils.DataProvider) map[string]interface{} {
switch v := dP.(type) {
case utils.MapStorage:
if x, has := v[utils.MetaOpts]; has {
return x.(map[string]interface{})
}
return make(map[string]interface{})
case MapEvent:
return v
}
return nil
}
func NewDispatcherService(val interface{}) (_ IntService, err error) {
var srv *birpc.Service
if srv, err = birpc.NewService(val, utils.EmptyString, false); err != nil {

View File

@@ -198,7 +198,7 @@ func (rpS *RouteS) matchingRouteProfilesForEvent(ctx *context.Context, tnt strin
func newOptsGetRoutes(ctx *context.Context, ev *utils.CGREvent, fS *FilterS, cfgOpts *config.RoutesOpts) (opts *optsGetRoutes, err error) {
var ignoreErrors bool
if ignoreErrors, err = GetBoolOpts(ctx, ev.Tenant, ev, fS, cfgOpts.IgnoreErrors,
if ignoreErrors, err = GetBoolOpts(ctx, ev.Tenant, ev.AsDataProvider(), fS, cfgOpts.IgnoreErrors,
config.RoutesIgnoreErrorsDftOpt, utils.OptsRoutesIgnoreErrors); err != nil {
return
}

View File

@@ -330,7 +330,7 @@ func (sS *StatS) processEvent(ctx *context.Context, tnt string, args *utils.CGRE
return
}
var ignFilters bool
if ignFilters, err = GetBoolOpts(ctx, tnt, args, sS.fltrS, sS.cfg.StatSCfg().Opts.ProfileIgnoreFilters,
if ignFilters, err = GetBoolOpts(ctx, tnt, evNm, sS.fltrS, sS.cfg.StatSCfg().Opts.ProfileIgnoreFilters,
config.StatsProfileIgnoreFilters, utils.MetaProfileIgnoreFilters); err != nil {
return
}
@@ -421,13 +421,14 @@ func (sS *StatS) V1GetStatQueuesForEvent(ctx *context.Context, args *utils.CGREv
config.StatsProfileIDsDftOpt, utils.OptsStatsProfileIDs); err != nil {
return
}
evDp := args.AsDataProvider()
var ignFilters bool
if ignFilters, err = GetBoolOpts(ctx, tnt, args, sS.fltrS, sS.cfg.StatSCfg().Opts.ProfileIgnoreFilters,
if ignFilters, err = GetBoolOpts(ctx, tnt, evDp, sS.fltrS, sS.cfg.StatSCfg().Opts.ProfileIgnoreFilters,
config.StatsProfileIgnoreFilters, utils.MetaProfileIgnoreFilters); err != nil {
return
}
var sQs StatQueues
if sQs, err = sS.matchingStatQueuesForEvent(ctx, tnt, sqIDs, args.AsDataProvider(), ignFilters); err != nil {
if sQs, err = sS.matchingStatQueuesForEvent(ctx, tnt, sqIDs, evDp, ignFilters); err != nil {
return
}

View File

@@ -336,7 +336,7 @@ func (tS *ThresholdS) matchingThresholdsForEvent(ctx *context.Context, tnt strin
return
}
var ignFilters bool
if ignFilters, err = GetBoolOpts(ctx, tnt, args, tS.fltrS, tS.cfg.ThresholdSCfg().Opts.ProfileIgnoreFilters,
if ignFilters, err = GetBoolOpts(ctx, tnt, evNm, tS.fltrS, tS.cfg.ThresholdSCfg().Opts.ProfileIgnoreFilters,
config.ThresholdsProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
return
}

File diff suppressed because one or more lines are too long

View File

@@ -47,24 +47,24 @@ var (
testDispatcherOptsAdminInitDataDb,
testDispatcherOptsAdminStartEngine,
testDispatcherOptsAdminRPCConn,
testDispatcherOptsAdminSetDispatcherProfile,
//testDispatcherOptsAdminSetDispatcherProfile,
// Start engine without Dispatcher on engine 2012 with profiles in database (*dispatchers:false)
// Start engine without Dispatcher on engine 4012 with profiles in database (*dispatchers:false)
testDispatcherOptsDSPInitCfg,
testDispatcherOptsDSPStartEngine,
testDispatcherOptsDSPRPCConn,
testDispatcherOptsCoreStatus, // self localhost(:2012) CoresV1Status
//testDispatcherOptsCoreStatus, // localhost(:4012) CoresV1Status
testDispatcherOptsAdminSetDispatcherHost4012,
testDispatcherOptsCoreStatusHost4012,
//testDispatcherOptsAdminSetDispatcherHost4012,
//testDispatcherOptsCoreStatusHost4012,
testDispatcherOptsAdminSetDispatcherProfileDoubleHost,
//testDispatcherOptsCoreStatusWithRouteID,
testDispatcherOptsCoreStatusWithRouteID,
testDispatcherOptsAdminSetDispatcherHostInexistent,
//testDispatcherOptsCoreStatusWithRouteID2,
testDispatcherOptsCoreStatusWithRouteID2,
//testDispatcherOptsCoreStatusWithoutRouteID,
testDispatcherOptsCoreStatusWithoutRouteID,
testDispatcherOptsDSPStopEngine,
testDispatcherOptsAdminStopEngine,
@@ -116,7 +116,7 @@ func testDispatcherOptsAdminSetDispatcherProfile(t *testing.T) {
Tenant: "cgrates.org",
RemoteHost: &config.RemoteHost{
ID: "SELF_ENGINE",
Address: "127.0.0.1:4012",
Address: "127.0.0.1:2012",
Transport: "*json",
ConnectAttempts: 1,
Reconnects: 3,
@@ -269,6 +269,51 @@ func testDispatcherOptsCoreStatusHost4012(t *testing.T) {
}
func testDispatcherOptsAdminSetDispatcherProfileDoubleHost(t *testing.T) {
var replyStr string
setDispatcherHost := &engine.DispatcherHostWithAPIOpts{
DispatcherHost: &engine.DispatcherHost{
Tenant: "cgrates.org",
RemoteHost: &config.RemoteHost{
ID: "SELF_ENGINE",
Address: "127.0.0.1:2012",
Transport: "*json",
ConnectAttempts: 1,
Reconnects: 3,
ConnectTimeout: time.Minute,
ReplyTimeout: 2 * time.Minute,
},
},
APIOpts: map[string]interface{}{
utils.OptsDispatchers: false,
},
}
if err := adminsRPC.Call(context.Background(), utils.AdminSv1SetDispatcherHost, setDispatcherHost, &replyStr); err != nil {
t.Error("Unexpected error when calling AdminSv1.SetDispatcherHost: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
setDispatcherHost = &engine.DispatcherHostWithAPIOpts{
DispatcherHost: &engine.DispatcherHost{
Tenant: "cgrates.org",
RemoteHost: &config.RemoteHost{
ID: "HOST4012",
Address: "127.0.0.1:4012",
Transport: "*json",
ConnectAttempts: 1,
Reconnects: 3,
ConnectTimeout: time.Minute,
ReplyTimeout: 2 * time.Minute,
},
},
APIOpts: map[string]interface{}{
utils.OptsDispatchers: false,
},
}
if err := adminsRPC.Call(context.Background(), utils.AdminSv1SetDispatcherHost, setDispatcherHost, &replyStr); err != nil {
t.Error("Unexpected error when calling AdminSv1.SetDispatcherHost: ", err)
} else if replyStr != utils.OK {
t.Error("Unexpected reply returned", replyStr)
}
// Set DispatcherProfile with both engines
setDispatcherProfile := &engine.DispatcherProfileWithAPIOpts{
DispatcherProfile: &engine.DispatcherProfile{
@@ -281,17 +326,17 @@ func testDispatcherOptsAdminSetDispatcherProfileDoubleHost(t *testing.T) {
ID: "SELF_ENGINE",
Weight: 5,
},
{
/* {
ID: "HOST4012",
Weight: 10,
},
}, */
},
},
APIOpts: map[string]interface{}{
utils.OptsDispatchers: false,
},
}
var replyStr string
//var replyStr string
if err := adminsRPC.Call(context.Background(), utils.AdminSv1SetDispatcherProfile, setDispatcherProfile, &replyStr); err != nil {
t.Error("Unexpected error when calling AdminSv1.SetDispatcherProfile: ", err)
} else if replyStr != utils.OK {
@@ -393,6 +438,9 @@ func testDispatcherOptsCoreStatusWithoutRouteID(t *testing.T) {
var reply map[string]interface{}
ev := utils.TenantWithAPIOpts{
Tenant: "cgrates.org",
APIOpts: map[string]interface{}{
"ATTEMPTS": 2,
},
}
if err := dspOptsRPC.Call(context.Background(), utils.CoreSv1Status, &ev, &reply); err != nil {
t.Error(err)

View File

@@ -329,7 +329,7 @@ func (rS *RateS) V1CostForEvent(ctx *context.Context, args *utils.CGREvent, rpCo
return
}
var ignFilters bool
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args, rS.fltrS, rS.cfg.RateSCfg().Opts.ProfileIgnoreFilters,
if ignFilters, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), rS.fltrS, rS.cfg.RateSCfg().Opts.ProfileIgnoreFilters,
config.RatesProfileIgnoreFiltersDftOpt, utils.MetaProfileIgnoreFilters); err != nil {
return
}

View File

@@ -916,7 +916,7 @@ func (sS *SessionS) newSession(ctx *context.Context, cgrEv *utils.CGREvent, resI
DebitInterval: dbtItval,
}
s.OptsStart[utils.MetaOriginID] = originID
if s.Chargeable, err = engine.GetBoolOpts(ctx, cgrEv.Tenant, cgrEv, sS.fltrS, sS.cfg.SessionSCfg().Opts.Chargeable,
if s.Chargeable, err = engine.GetBoolOpts(ctx, cgrEv.Tenant, s.OptsStart, sS.fltrS, sS.cfg.SessionSCfg().Opts.Chargeable,
config.SessionsChargeableDftOpt, utils.OptsSesChargeable); err != nil {
return
}
@@ -1237,7 +1237,7 @@ func (sS *SessionS) updateSession(ctx *context.Context, s *Session, updtEv, opts
Event: updtEv,
APIOpts: opts,
}
if s.Chargeable, err = engine.GetBoolOpts(ctx, event.Tenant, event, sS.fltrS, sS.cfg.SessionSCfg().Opts.Chargeable,
if s.Chargeable, err = engine.GetBoolOpts(ctx, event.Tenant, event.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Chargeable,
config.SessionsChargeableDftOpt, utils.OptsSesChargeable); err != nil {
return
}
@@ -1552,22 +1552,22 @@ func (sS *SessionS) BiRPCv1AuthorizeEvent(ctx *context.Context,
}
// end of RPC caching
var attrS bool
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
config.SessionsAttributesDftOpt, utils.OptsAttributeS); err != nil {
return
}
var routeS bool
if routeS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Routes,
if routeS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Routes,
config.SessionsRoutesDftOpt, utils.OptsRouteS); err != nil {
return
}
var maxUsage bool
if maxUsage, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.MaxUsage,
if maxUsage, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.MaxUsage,
config.SessionsMaxUsageDftOpt, utils.OptsSesMaxUsage); err != nil {
return
}
var resAuthorize bool
if resAuthorize, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesAuthorize,
if resAuthorize, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesAuthorize,
config.SessionsResourcesAuthorizeDftOpt, utils.OptsSesResourceSAuthorize); err != nil {
return
}
@@ -1592,7 +1592,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEvent(ctx *context.Context,
runEvents := make(map[string]*utils.CGREvent)
var chrgS bool
if chrgS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Chargers,
if chrgS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Chargers,
config.SessionsChargersDftOpt, utils.OptsChargerS); err != nil {
return
}
@@ -1608,7 +1608,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEvent(ctx *context.Context,
runEvents[utils.MetaRaw] = args
}
var acntS bool
if acntS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Accounts,
if acntS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Accounts,
config.SessionsAccountsDftOpt, utils.OptsAccountS); err != nil {
return
}
@@ -1645,7 +1645,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEvent(ctx *context.Context,
}
}
var thdS bool
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
config.SessionsThresholdsDftOpt, utils.OptsThresholdS); err != nil {
return
}
@@ -1660,7 +1660,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEvent(ctx *context.Context,
authReply.ThresholdIDs = &tIDs
}
var stS bool
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
config.SessionsStatsDftOpt, utils.OptsStatS); err != nil {
return
}
@@ -1690,7 +1690,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEventWithDigest(ctx *context.Context,
return
}
var attrS bool
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
config.SessionsAttributesDftOpt, utils.OptsAttributeS); err != nil {
return
}
@@ -1698,7 +1698,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEventWithDigest(ctx *context.Context,
authReply.AttributesDigest = utils.StringPointer(initAuthRply.Attributes.Digest())
}
var resourcesAuthorize bool
if resourcesAuthorize, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesAuthorize,
if resourcesAuthorize, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesAuthorize,
config.SessionsResourcesAuthorizeDftOpt, utils.OptsSesResourceSAuthorize); err != nil {
return
}
@@ -1706,7 +1706,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEventWithDigest(ctx *context.Context,
authReply.ResourceAllocation = initAuthRply.ResourceAllocation
}
var acntS bool
if acntS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Accounts,
if acntS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Accounts,
config.SessionsAccountsDftOpt, utils.OptsAccountS); err != nil {
return
}
@@ -1715,7 +1715,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEventWithDigest(ctx *context.Context,
authReply.MaxUsage = maxDur.Seconds()
}
var routeS bool
if routeS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Routes,
if routeS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Routes,
config.SessionsRoutesDftOpt, utils.OptsRouteS); err != nil {
return
}
@@ -1723,7 +1723,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEventWithDigest(ctx *context.Context,
authReply.RoutesDigest = utils.StringPointer(initAuthRply.RouteProfiles.Digest())
}
var thdS bool
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
config.SessionsThresholdsDftOpt, utils.OptsThresholdS); err != nil {
return
}
@@ -1732,7 +1732,7 @@ func (sS *SessionS) BiRPCv1AuthorizeEventWithDigest(ctx *context.Context,
strings.Join(*initAuthRply.ThresholdIDs, utils.FieldsSep))
}
var stS bool
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
config.SessionsStatsDftOpt, utils.OptsStatS); err != nil {
return
}
@@ -1782,17 +1782,17 @@ func (sS *SessionS) BiRPCv1InitiateSession(ctx *context.Context,
rply.MaxUsage = utils.DurationPointer(time.Duration(utils.InvalidUsage)) // temp
var attrS bool
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
config.SessionsAttributesDftOpt, utils.OptsAttributeS); err != nil {
return
}
var initS bool
if initS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Initiate,
if initS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Initiate,
config.SessionsInitiateDftOpt, utils.OptsSesInitiate); err != nil {
return
}
var resourcesAllocate bool
if resourcesAllocate, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesAllocate,
if resourcesAllocate, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesAllocate,
config.SessionsResourcesAllocateDftOpt, utils.OptsSesResourceSAllocate); err != nil {
return
}
@@ -1832,7 +1832,7 @@ func (sS *SessionS) BiRPCv1InitiateSession(ctx *context.Context,
return
}
var forceDuration bool
if forceDuration, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ForceDuration,
if forceDuration, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ForceDuration,
config.SessionsForceDurationDftOpt, utils.OptsSesForceDuration); err != nil {
return
}
@@ -1865,7 +1865,7 @@ func (sS *SessionS) BiRPCv1InitiateSession(ctx *context.Context,
}
}
var thdS bool
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
config.SessionsThresholdsDftOpt, utils.OptsThresholdS); err != nil {
return
}
@@ -1880,7 +1880,7 @@ func (sS *SessionS) BiRPCv1InitiateSession(ctx *context.Context,
rply.ThresholdIDs = &tIDs
}
var stS bool
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
config.SessionsStatsDftOpt, utils.OptsStatS); err != nil {
return
}
@@ -1967,12 +1967,12 @@ func (sS *SessionS) BiRPCv1UpdateSession(ctx *context.Context,
}
// end of RPC caching
var attrS bool
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
config.SessionsAttributesDftOpt, utils.OptsAttributeS); err != nil {
return
}
var updS bool
if updS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Update,
if updS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Update,
config.SessionsUpdateDftOpt, utils.OptsSesUpdate); err != nil {
return
}
@@ -2003,7 +2003,7 @@ func (sS *SessionS) BiRPCv1UpdateSession(ctx *context.Context,
ev.GetStringIgnoreErrors(utils.OriginHost))
if s == nil {
var forceDuration bool
if forceDuration, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ForceDuration,
if forceDuration, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ForceDuration,
config.SessionsForceDurationDftOpt, utils.OptsSesForceDuration); err != nil {
return
}
@@ -2065,12 +2065,12 @@ func (sS *SessionS) BiRPCv1TerminateSession(ctx *context.Context,
}
// end of RPC caching
var resourcesRelease bool
if resourcesRelease, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesRelease,
if resourcesRelease, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesRelease,
config.SessionsResourcesReleaseDftOpt, utils.OptsSesResourceSRelease); err != nil {
return
}
var termS bool
if termS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Terminate,
if termS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Terminate,
config.SessionsTerminateDftOpt, utils.OptsSesTerminate); err != nil {
return
}
@@ -2095,7 +2095,7 @@ func (sS *SessionS) BiRPCv1TerminateSession(ctx *context.Context,
fib := utils.FibDuration(time.Millisecond, 0)
var isMsg bool // one time charging, do not perform indexing and sTerminator
var forceDuration bool
if forceDuration, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ForceDuration,
if forceDuration, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ForceDuration,
config.SessionsForceDurationDftOpt, utils.OptsSesForceDuration); err != nil {
return
}
@@ -2124,7 +2124,7 @@ func (sS *SessionS) BiRPCv1TerminateSession(ctx *context.Context,
s.UpdateSRuns(ev, sS.cfg.SessionSCfg().AlterableFields)
}
s.Lock()
if s.Chargeable, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Chargeable,
if s.Chargeable, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Chargeable,
config.SessionsChargeableDftOpt, utils.OptsSesChargeable); err != nil {
return
}
@@ -2153,7 +2153,7 @@ func (sS *SessionS) BiRPCv1TerminateSession(ctx *context.Context,
}
}
var thdS bool
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
config.SessionsThresholdsDftOpt, utils.OptsThresholdS); err != nil {
return
}
@@ -2168,7 +2168,7 @@ func (sS *SessionS) BiRPCv1TerminateSession(ctx *context.Context,
}
}
var stS bool
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
config.SessionsStatsDftOpt, utils.OptsStatS); err != nil {
return
}
@@ -2270,7 +2270,7 @@ func (sS *SessionS) BiRPCv1ProcessMessage(ctx *context.Context,
originID := me.GetStringIgnoreErrors(utils.OriginID)
var attrS bool
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
config.SessionsAttributesDftOpt, utils.OptsAttributeS); err != nil {
return
}
@@ -2284,7 +2284,7 @@ func (sS *SessionS) BiRPCv1ProcessMessage(ctx *context.Context,
}
}
var resourcesAllocate bool
if resourcesAllocate, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesAllocate,
if resourcesAllocate, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesAllocate,
config.SessionsResourcesAllocateDftOpt, utils.OptsSesResourceSAllocate); err != nil {
return
}
@@ -2305,7 +2305,7 @@ func (sS *SessionS) BiRPCv1ProcessMessage(ctx *context.Context,
rply.ResourceAllocation = &allocMessage
}
var routeS bool
if routeS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Routes,
if routeS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Routes,
config.SessionsRoutesDftOpt, utils.OptsRouteS); err != nil {
return
}
@@ -2319,13 +2319,13 @@ func (sS *SessionS) BiRPCv1ProcessMessage(ctx *context.Context,
}
}
var message bool
if message, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Message,
if message, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Message,
config.SessionsMessageDftOpt, utils.OptsSesMessage); err != nil {
return
}
if message {
var forceDuration bool
if forceDuration, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ForceDuration,
if forceDuration, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ForceDuration,
config.SessionsForceDurationDftOpt, utils.OptsSesForceDuration); err != nil {
return
}
@@ -2336,7 +2336,7 @@ func (sS *SessionS) BiRPCv1ProcessMessage(ctx *context.Context,
rply.MaxUsage = &maxUsage
}
var thdS bool
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
config.SessionsThresholdsDftOpt, utils.OptsThresholdS); err != nil {
return
}
@@ -2351,7 +2351,7 @@ func (sS *SessionS) BiRPCv1ProcessMessage(ctx *context.Context,
rply.ThresholdIDs = &tIDs
}
var stS bool
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
config.SessionsStatsDftOpt, utils.OptsStatS); err != nil {
return
}
@@ -2411,7 +2411,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(ctx *context.Context,
// end of RPC caching
var blockError bool
if blockError, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.BlockerError,
if blockError, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.BlockerError,
config.SessionsBlockerErrorDftOpt, utils.OptsSesBlockerError); err != nil {
return
}
@@ -2419,7 +2419,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(ctx *context.Context,
utils.MetaRaw: args,
}
var chrgS bool
if chrgS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Chargers,
if chrgS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Chargers,
config.SessionsChargersDftOpt, utils.OptsChargerS); err != nil {
return
}
@@ -2435,14 +2435,14 @@ func (sS *SessionS) BiRPCv1ProcessEvent(ctx *context.Context,
// check for *attribute
var attrS bool
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
if attrS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Attributes,
config.SessionsAttributesDftOpt, utils.OptsAttributeS); err != nil {
return
}
if attrS {
rply.Attributes = make(map[string]*engine.AttrSProcessEventReply)
var attrsDerivedReply bool
if attrsDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.AttributesDerivedReply,
if attrsDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.AttributesDerivedReply,
config.SessionsAttributesDerivedReplyDftOpt, utils.OptsSesAttributeSDerivedReply); err != nil {
return
}
@@ -2462,13 +2462,13 @@ func (sS *SessionS) BiRPCv1ProcessEvent(ctx *context.Context,
// get routes if required
var routeS bool
if routeS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Routes,
if routeS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Routes,
config.SessionsRoutesDftOpt, utils.OptsRouteS); err != nil {
return
}
if routeS {
var routesDerivedReply bool
if routesDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.RoutesDerivedReply,
if routesDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.RoutesDerivedReply,
config.SessionsRoutesDerivedReplyDftOpt, utils.OptsSesRouteSDerivedReply); err != nil {
return
}
@@ -2487,13 +2487,13 @@ func (sS *SessionS) BiRPCv1ProcessEvent(ctx *context.Context,
// process thresholds if required
var thdS bool
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
if thdS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Thresholds,
config.SessionsThresholdsDftOpt, utils.OptsThresholdS); err != nil {
return
}
if thdS {
var thdsDerivedReply bool
if thdsDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ThresholdsDerivedReply,
if thdsDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ThresholdsDerivedReply,
config.SessionsThresholdsDerivedReplyDftOpt, utils.OptsSesThresholdSDerivedReply); err != nil {
return
}
@@ -2515,13 +2515,13 @@ func (sS *SessionS) BiRPCv1ProcessEvent(ctx *context.Context,
// process stats if required
var stS bool
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
if stS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.Stats,
config.SessionsStatsDftOpt, utils.OptsStatS); err != nil {
return
}
if stS {
var stsDerivedReply bool
if stsDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.StatsDerivedReply,
if stsDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.StatsDerivedReply,
config.SessionsStatsDerivedReplyDftOpt, utils.OptsSesStatSDerivedReply); err != nil {
return
}
@@ -2616,7 +2616,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(ctx *context.Context,
return fmt.Errorf("unsuported value for %s option: %q ", utils.OptsResourceS, optStr)
}
var resourcesDerivedReply bool
if resourcesDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesDerivedReply,
if resourcesDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.ResourcesDerivedReply,
config.SessionsResourcesDerivedReplyDftOpt, utils.OptsSesResourceSDerivedReply); err != nil {
return
}
@@ -2785,7 +2785,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(ctx *context.Context,
// }
var cdrS bool
if cdrS, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.CDRs,
if cdrS, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.CDRs,
config.SessionsCDRsDftOpt, utils.OptsCDRs); err != nil {
return
}
@@ -2794,7 +2794,7 @@ func (sS *SessionS) BiRPCv1ProcessEvent(ctx *context.Context,
return utils.NewErrNotConnected(utils.CDRs)
}
var cdrsDerivedReply bool
if cdrsDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args, sS.fltrS, sS.cfg.SessionSCfg().Opts.CDRsDerivedReply,
if cdrsDerivedReply, err = engine.GetBoolOpts(ctx, args.Tenant, args.AsDataProvider(), sS.fltrS, sS.cfg.SessionSCfg().Opts.CDRsDerivedReply,
config.SessionsCDRsDerivedReplyDftOpt, utils.OptsSesCDRsDerivedReply); err != nil {
return
}