diff --git a/accounts/accounts_test.go b/accounts/accounts_test.go
index b44e82040..90b5d6b0d 100644
--- a/accounts/accounts_test.go
+++ b/accounts/accounts_test.go
@@ -2832,7 +2832,7 @@ func TestV1AccountsForEventProfileIgnoreFilters(t *testing.T) {
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
fltr := engine.NewFilterS(cfg, nil, dm)
accnts := NewAccountS(cfg, fltr, nil, dm)
- cfg.AccountSCfg().Opts.ProfileIgnoreFilters = []*utils.DynamicBoolOpt{
+ cfg.AccountSCfg().Opts.ProfileIgnoreFilters = []*config.DynamicBoolOpt{
{
Value: true,
},
@@ -2905,7 +2905,7 @@ func TestV1AccountsForEventProfileIgnoreFilters(t *testing.T) {
func TestV1MaxAbstractsMetaProfileIgnoreFilters(t *testing.T) {
engine.Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
- cfg.AccountSCfg().Opts.ProfileIgnoreFilters = []*utils.DynamicBoolOpt{
+ cfg.AccountSCfg().Opts.ProfileIgnoreFilters = []*config.DynamicBoolOpt{
{
Value: true,
},
@@ -3039,7 +3039,7 @@ func TestV1MaxAbstractsMetaProfileIgnoreFilters(t *testing.T) {
func TestV1MaxAbstractsMetaProfileIgnoreFiltersError(t *testing.T) {
engine.Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
- cfg.AccountSCfg().Opts.ProfileIgnoreFilters = []*utils.DynamicBoolOpt{
+ cfg.AccountSCfg().Opts.ProfileIgnoreFilters = []*config.DynamicBoolOpt{
{
Value: true,
},
@@ -3080,7 +3080,7 @@ func TestV1MaxAbstractsMetaProfileIgnoreFiltersError(t *testing.T) {
func TestV1DebitAbstractsMetaProfileIgnoreFilters(t *testing.T) {
engine.Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
- cfg.AccountSCfg().Opts.ProfileIgnoreFilters = []*utils.DynamicBoolOpt{
+ cfg.AccountSCfg().Opts.ProfileIgnoreFilters = []*config.DynamicBoolOpt{
{
Value: true,
},
@@ -3230,7 +3230,7 @@ func TestV1DebitAbstractsMetaProfileIgnoreFilters(t *testing.T) {
func TestV1DebitAbstractsMetaProfileIgnoreFiltersError(t *testing.T) {
engine.Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
- cfg.AccountSCfg().Opts.ProfileIgnoreFilters = []*utils.DynamicBoolOpt{
+ cfg.AccountSCfg().Opts.ProfileIgnoreFilters = []*config.DynamicBoolOpt{
{
Value: true,
},
@@ -3308,7 +3308,7 @@ func TestV1DebitAbstractsMetaProfileIgnoreFiltersError(t *testing.T) {
func TestV1MaxConcretesProfileIgnoreFilters(t *testing.T) {
engine.Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
- cfg.AccountSCfg().Opts.ProfileIgnoreFilters = []*utils.DynamicBoolOpt{
+ cfg.AccountSCfg().Opts.ProfileIgnoreFilters = []*config.DynamicBoolOpt{
{
Value: true,
},
@@ -3461,7 +3461,7 @@ func TestV1MaxConcretesProfileIgnoreFilters(t *testing.T) {
func TestV1MaxConcretesProfileIgnoreFiltersError(t *testing.T) {
engine.Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
- cfg.AccountSCfg().Opts.ProfileIgnoreFilters = []*utils.DynamicBoolOpt{
+ cfg.AccountSCfg().Opts.ProfileIgnoreFilters = []*config.DynamicBoolOpt{
{
Value: true,
},
@@ -3503,7 +3503,7 @@ func TestV1MaxConcretesProfileIgnoreFiltersError(t *testing.T) {
func TestV1DebitConcretesProfileIgnoreFilters(t *testing.T) {
engine.Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
- cfg.AccountSCfg().Opts.ProfileIgnoreFilters = []*utils.DynamicBoolOpt{
+ cfg.AccountSCfg().Opts.ProfileIgnoreFilters = []*config.DynamicBoolOpt{
{
Value: true,
},
@@ -3668,7 +3668,7 @@ func TestV1DebitConcretesProfileIgnoreFilters(t *testing.T) {
func TestV1DebitConcretesProfileIgnoreFiltersError(t *testing.T) {
engine.Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
- cfg.AccountSCfg().Opts.ProfileIgnoreFilters = []*utils.DynamicBoolOpt{
+ cfg.AccountSCfg().Opts.ProfileIgnoreFilters = []*config.DynamicBoolOpt{
{
Value: true,
},
diff --git a/actions/actions_test.go b/actions/actions_test.go
index 998e0e282..09a08561f 100644
--- a/actions/actions_test.go
+++ b/actions/actions_test.go
@@ -1123,7 +1123,7 @@ func TestACScheduledActions(t *testing.T) {
func TestV1ScheduleActionsProfileIgnoreFilters(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- cfg.ActionSCfg().Opts.ProfileIgnoreFilters = []*utils.DynamicBoolOpt{
+ cfg.ActionSCfg().Opts.ProfileIgnoreFilters = []*config.DynamicBoolOpt{
{
Value: true,
},
@@ -1179,7 +1179,7 @@ func TestV1ScheduleActionsProfileIgnoreFilters(t *testing.T) {
func TestV1ExecuteActionsProfileIgnoreFilters(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- cfg.ActionSCfg().Opts.ProfileIgnoreFilters = []*utils.DynamicBoolOpt{
+ cfg.ActionSCfg().Opts.ProfileIgnoreFilters = []*config.DynamicBoolOpt{
{
Value: true,
},
diff --git a/apis/chargers_test.go b/apis/chargers_test.go
index a21faab22..300b125ee 100644
--- a/apis/chargers_test.go
+++ b/apis/chargers_test.go
@@ -1120,7 +1120,7 @@ func TestChargersAPIs(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.GeneralCfg().DefaultCaching = utils.MetaNone
cfg.ChargerSCfg().AttributeSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes)}
- cfg.AttributeSCfg().Opts.ProcessRuns = []*utils.DynamicIntOpt{
+ cfg.AttributeSCfg().Opts.ProcessRuns = []*config.DynamicIntOpt{
{
Value: 2,
},
diff --git a/apis/config_it_test.go b/apis/config_it_test.go
index 608da32de..3b13841bf 100644
--- a/apis/config_it_test.go
+++ b/apis/config_it_test.go
@@ -152,10 +152,10 @@ func testCfgGetConfig(t *testing.T) {
"exists_indexed_fields": []string{},
"notexists_indexed_fields": []string{},
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaProcessRunsCfg: []*utils.DynamicIntOpt{},
- utils.MetaProfileRunsCfg: []*utils.DynamicIntOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ utils.MetaProfileIDs: []*config.DynamicStringSliceOpt{},
+ utils.MetaProcessRunsCfg: []*config.DynamicIntOpt{},
+ utils.MetaProfileRunsCfg: []*config.DynamicIntOpt{},
+ utils.MetaProfileIgnoreFilters: []*config.DynamicBoolOpt{},
},
},
}
@@ -191,7 +191,7 @@ func testCfgSetGetConfig(t *testing.T) {
"stats_conns": []string{"*internal"},
"suffix_indexed_fields": []string{},
utils.OptsCfg: map[string]any{
- utils.MetaProcessRunsCfg: []*utils.DynamicIntOpt{
+ utils.MetaProcessRunsCfg: []*config.DynamicIntOpt{
{
Value: 2,
},
@@ -298,11 +298,11 @@ func testCfgSetEmptyReload(t *testing.T) {
"rate_notexists_indexed_fields": []string{},
"verbosity": 1000,
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaStartTime: []*utils.DynamicStringOpt{},
- utils.MetaUsage: []*utils.DynamicDecimalBigOpt{},
- utils.MetaIntervalStartCfg: []*utils.DynamicDecimalBigOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ utils.MetaProfileIDs: []*config.DynamicStringSliceOpt{},
+ utils.MetaStartTime: []*config.DynamicStringOpt{},
+ utils.MetaUsage: []*config.DynamicDecimalOpt{},
+ utils.MetaIntervalStartCfg: []*config.DynamicDecimalOpt{},
+ utils.MetaProfileIgnoreFilters: []*config.DynamicBoolOpt{},
},
},
}
@@ -496,7 +496,7 @@ func testCfgSetGetConfigStore(t *testing.T) {
"profile_runs": 0.,
"suffix_indexed_fields": []string{},
utils.OptsCfg: map[string]any{
- utils.MetaProcessRunsCfg: []*utils.DynamicIntOpt{},
+ utils.MetaProcessRunsCfg: []*config.DynamicIntOpt{},
},
},
},
@@ -521,10 +521,10 @@ func testCfgSetGetConfigStore(t *testing.T) {
"exists_indexed_fields": []string{},
"notexists_indexed_fields": []string{},
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaProcessRunsCfg: []*utils.DynamicIntOpt{},
- utils.MetaProfileRunsCfg: []*utils.DynamicIntOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ utils.MetaProfileIDs: []*config.DynamicStringSliceOpt{},
+ utils.MetaProcessRunsCfg: []*config.DynamicIntOpt{},
+ utils.MetaProfileRunsCfg: []*config.DynamicIntOpt{},
+ utils.MetaProfileIgnoreFilters: []*config.DynamicBoolOpt{},
},
},
}
@@ -577,7 +577,7 @@ func testCfgMdfSectConfigStore(t *testing.T) {
Suffix_indexed_fields: nil,
Nested_fields: nil,
Opts: &config.AttributesOptsJson{
- ProcessRuns: []*utils.DynamicIntOpt{
+ ProcessRuns: []*config.DynamicIntOpt{
{
Value: 2,
},
diff --git a/apis/config_test.go b/apis/config_test.go
index f2394db47..4b72e2e40 100644
--- a/apis/config_test.go
+++ b/apis/config_test.go
@@ -89,14 +89,14 @@ func TestConfigSetGetConfig(t *testing.T) {
"exists_indexed_fields": []string{},
"notexists_indexed_fields": []string{},
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaProcessRunsCfg: []*utils.DynamicIntOpt{
+ utils.MetaProfileIDs: []*config.DynamicStringSliceOpt{},
+ utils.MetaProcessRunsCfg: []*config.DynamicIntOpt{
{
Value: 3,
},
},
- utils.MetaProfileRunsCfg: []*utils.DynamicIntOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ utils.MetaProfileRunsCfg: []*config.DynamicIntOpt{},
+ utils.MetaProfileIgnoreFilters: []*config.DynamicBoolOpt{},
},
},
}
@@ -126,7 +126,7 @@ func TestConfigSetGetReloadConfig(t *testing.T) {
"exists_indexed_fields": []string{},
"notexists_indexed_fields": []string{},
utils.OptsCfg: map[string]any{
- utils.MetaProcessRunsCfg: []*utils.DynamicIntOpt{
+ utils.MetaProcessRunsCfg: []*config.DynamicIntOpt{
{
Value: 2,
},
@@ -158,10 +158,10 @@ func TestConfigSetGetReloadConfig(t *testing.T) {
"exists_indexed_fields": []string{},
"notexists_indexed_fields": []string{},
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaProcessRunsCfg: []*utils.DynamicIntOpt{},
- utils.MetaProfileRunsCfg: []*utils.DynamicIntOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ utils.MetaProfileIDs: []*config.DynamicStringSliceOpt{},
+ utils.MetaProcessRunsCfg: []*config.DynamicIntOpt{},
+ utils.MetaProfileRunsCfg: []*config.DynamicIntOpt{},
+ utils.MetaProfileIgnoreFilters: []*config.DynamicBoolOpt{},
},
},
}
@@ -198,10 +198,10 @@ func TestConfigSetGetReloadConfig(t *testing.T) {
"exists_indexed_fields": []string{},
"notexists_indexed_fields": []string{},
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaProcessRunsCfg: []*utils.DynamicIntOpt{},
- utils.MetaProfileRunsCfg: []*utils.DynamicIntOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ utils.MetaProfileIDs: []*config.DynamicStringSliceOpt{},
+ utils.MetaProcessRunsCfg: []*config.DynamicIntOpt{},
+ utils.MetaProfileRunsCfg: []*config.DynamicIntOpt{},
+ utils.MetaProfileIgnoreFilters: []*config.DynamicBoolOpt{},
},
},
}
diff --git a/cdrs/cdrs_test.go b/cdrs/cdrs_test.go
index bc75f5716..d0cf2effd 100644
--- a/cdrs/cdrs_test.go
+++ b/cdrs/cdrs_test.go
@@ -1253,7 +1253,7 @@ func TestCDRsProcessEventMockAttrsErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.CdrsCfg().EEsConns = []string{utils.ConcatenatedKey(utils.MetaInternal,
utils.MetaEEs)}
- cfg.CdrsCfg().Opts.Attributes = []*utils.DynamicBoolOpt{
+ cfg.CdrsCfg().Opts.Attributes = []*config.DynamicBoolOpt{
{
Value: false,
},
@@ -1313,7 +1313,7 @@ func TestCDRsProcessEventMockAttrsErrBoolOpts(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.CdrsCfg().EEsConns = []string{utils.ConcatenatedKey(utils.MetaInternal,
utils.MetaEEs)}
- cfg.CdrsCfg().Opts.Attributes = []*utils.DynamicBoolOpt{
+ cfg.CdrsCfg().Opts.Attributes = []*config.DynamicBoolOpt{
{
Value: false,
},
@@ -1374,7 +1374,7 @@ func TestCDRsProcessEventMockChrgsErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.CdrsCfg().EEsConns = []string{utils.ConcatenatedKey(utils.MetaInternal,
utils.MetaEEs)}
- cfg.CdrsCfg().Opts.Attributes = []*utils.DynamicBoolOpt{
+ cfg.CdrsCfg().Opts.Attributes = []*config.DynamicBoolOpt{
{
Value: false,
},
@@ -1435,7 +1435,7 @@ func TestCDRsProcessEventMockChrgsErrBoolOpts(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.CdrsCfg().EEsConns = []string{utils.ConcatenatedKey(utils.MetaInternal,
utils.MetaEEs)}
- cfg.CdrsCfg().Opts.Attributes = []*utils.DynamicBoolOpt{
+ cfg.CdrsCfg().Opts.Attributes = []*config.DynamicBoolOpt{
{
Value: false,
},
@@ -1497,7 +1497,7 @@ func TestCDRsProcessEventMockRateSErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.CdrsCfg().EEsConns = []string{utils.ConcatenatedKey(utils.MetaInternal,
utils.MetaEEs)}
- cfg.CdrsCfg().Opts.Attributes = []*utils.DynamicBoolOpt{
+ cfg.CdrsCfg().Opts.Attributes = []*config.DynamicBoolOpt{
{
Value: false,
},
@@ -1558,7 +1558,7 @@ func TestCDRsProcessEventMockRateSErrBoolOpts(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.CdrsCfg().EEsConns = []string{utils.ConcatenatedKey(utils.MetaInternal,
utils.MetaEEs)}
- cfg.CdrsCfg().Opts.Attributes = []*utils.DynamicBoolOpt{
+ cfg.CdrsCfg().Opts.Attributes = []*config.DynamicBoolOpt{
{
Value: false,
},
@@ -1620,7 +1620,7 @@ func TestCDRsProcessEventMockAcntsErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.CdrsCfg().EEsConns = []string{utils.ConcatenatedKey(utils.MetaInternal,
utils.MetaEEs)}
- cfg.CdrsCfg().Opts.Attributes = []*utils.DynamicBoolOpt{
+ cfg.CdrsCfg().Opts.Attributes = []*config.DynamicBoolOpt{
{
Value: false,
},
@@ -1681,7 +1681,7 @@ func TestCDRsProcessEventMockAcntsErrBoolOpts(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.CdrsCfg().EEsConns = []string{utils.ConcatenatedKey(utils.MetaInternal,
utils.MetaEEs)}
- cfg.CdrsCfg().Opts.Attributes = []*utils.DynamicBoolOpt{
+ cfg.CdrsCfg().Opts.Attributes = []*config.DynamicBoolOpt{
{
Value: false,
},
@@ -1743,7 +1743,7 @@ func TestCDRsProcessEventMockExportErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.CdrsCfg().EEsConns = []string{utils.ConcatenatedKey(utils.MetaInternal,
utils.MetaEEs)}
- cfg.CdrsCfg().Opts.Attributes = []*utils.DynamicBoolOpt{
+ cfg.CdrsCfg().Opts.Attributes = []*config.DynamicBoolOpt{
{
Value: false,
@@ -1805,7 +1805,7 @@ func TestCDRsProcessEventMockExportErrBoolOpts(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.CdrsCfg().EEsConns = []string{utils.ConcatenatedKey(utils.MetaInternal,
utils.MetaEEs)}
- cfg.CdrsCfg().Opts.Attributes = []*utils.DynamicBoolOpt{
+ cfg.CdrsCfg().Opts.Attributes = []*config.DynamicBoolOpt{
{
Value: false,
},
@@ -1867,7 +1867,7 @@ func TestCDRsProcessEventMockThdsErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.CdrsCfg().EEsConns = []string{utils.ConcatenatedKey(utils.MetaInternal,
utils.MetaEEs)}
- cfg.CdrsCfg().Opts.Attributes = []*utils.DynamicBoolOpt{
+ cfg.CdrsCfg().Opts.Attributes = []*config.DynamicBoolOpt{
{
Value: false,
},
@@ -1927,7 +1927,7 @@ func TestCDRsProcessEventMockThdsErrBoolOpts(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.CdrsCfg().EEsConns = []string{utils.ConcatenatedKey(utils.MetaInternal,
utils.MetaEEs)}
- cfg.CdrsCfg().Opts.Attributes = []*utils.DynamicBoolOpt{
+ cfg.CdrsCfg().Opts.Attributes = []*config.DynamicBoolOpt{
{
Value: false,
},
@@ -1989,7 +1989,7 @@ func TestCDRsProcessEventMockStatsErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.CdrsCfg().EEsConns = []string{utils.ConcatenatedKey(utils.MetaInternal,
utils.MetaEEs)}
- cfg.CdrsCfg().Opts.Attributes = []*utils.DynamicBoolOpt{
+ cfg.CdrsCfg().Opts.Attributes = []*config.DynamicBoolOpt{
{
Value: false,
},
@@ -2050,7 +2050,7 @@ func TestCDRsProcessEventMockStatsErrGetBoolOpts(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.CdrsCfg().EEsConns = []string{utils.ConcatenatedKey(utils.MetaInternal,
utils.MetaEEs)}
- cfg.CdrsCfg().Opts.Attributes = []*utils.DynamicBoolOpt{
+ cfg.CdrsCfg().Opts.Attributes = []*config.DynamicBoolOpt{
{
Value: false,
},
@@ -2337,7 +2337,7 @@ func TestCDRsProcessEventMockThdsEcCostIface(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.CdrsCfg().AccountSConns = []string{utils.ConcatenatedKey(utils.MetaInternal,
utils.MetaAccounts)}
- cfg.CdrsCfg().Opts.Attributes = []*utils.DynamicBoolOpt{
+ cfg.CdrsCfg().Opts.Attributes = []*config.DynamicBoolOpt{
{
Value: false,
},
diff --git a/config/accountscfg.go b/config/accountscfg.go
index 0a91673a5..c19cfae85 100644
--- a/config/accountscfg.go
+++ b/config/accountscfg.go
@@ -35,9 +35,9 @@ var (
const AccountsProfileIgnoreFiltersDftOpt = false
type AccountsOpts struct {
- ProfileIDs []*utils.DynamicStringSliceOpt
- Usage []*utils.DynamicDecimalBigOpt
- ProfileIgnoreFilters []*utils.DynamicBoolOpt
+ ProfileIDs []*DynamicStringSliceOpt
+ Usage []*DynamicDecimalOpt
+ ProfileIgnoreFilters []*DynamicBoolOpt
}
// AccountSCfg is the configuration of ActionS
@@ -75,8 +75,8 @@ func (accOpts *AccountsOpts) loadFromJSONCfg(jsnCfg *AccountsOptsJson) (err erro
accOpts.ProfileIDs = append(accOpts.ProfileIDs, jsnCfg.ProfileIDs...)
}
if jsnCfg.Usage != nil {
- var usage []*utils.DynamicDecimalBigOpt
- if usage, err = utils.StringToDecimalBigDynamicOpts(jsnCfg.Usage); err != nil {
+ var usage []*DynamicDecimalOpt
+ if usage, err = StringToDecimalBigDynamicOpts(jsnCfg.Usage); err != nil {
return
}
accOpts.Usage = append(accOpts.Usage, usage...)
@@ -183,17 +183,17 @@ func (acS AccountSCfg) AsMapInterface(string) any {
}
func (accOpts *AccountsOpts) Clone() *AccountsOpts {
- var accIDs []*utils.DynamicStringSliceOpt
+ var accIDs []*DynamicStringSliceOpt
if accOpts.ProfileIDs != nil {
- accIDs = utils.CloneDynamicStringSliceOpt(accOpts.ProfileIDs)
+ accIDs = CloneDynamicStringSliceOpt(accOpts.ProfileIDs)
}
- var usage []*utils.DynamicDecimalBigOpt
+ var usage []*DynamicDecimalOpt
if accOpts.Usage != nil {
- usage = utils.CloneDynamicDecimalBigOpt(accOpts.Usage)
+ usage = CloneDynamicDecimalOpt(accOpts.Usage)
}
- var profileIgnoreFilters []*utils.DynamicBoolOpt
+ var profileIgnoreFilters []*DynamicBoolOpt
if accOpts.ProfileIgnoreFilters != nil {
- profileIgnoreFilters = utils.CloneDynamicBoolOpt(accOpts.ProfileIgnoreFilters)
+ profileIgnoreFilters = CloneDynamicBoolOpt(accOpts.ProfileIgnoreFilters)
}
return &AccountsOpts{
ProfileIDs: accIDs,
@@ -242,9 +242,9 @@ func (acS AccountSCfg) Clone() (cln *AccountSCfg) {
}
type AccountsOptsJson struct {
- ProfileIDs []*utils.DynamicStringSliceOpt `json:"*profileIDs"`
- Usage []*utils.DynamicStringOpt `json:"*usage"`
- ProfileIgnoreFilters []*utils.DynamicBoolOpt `json:"*profileIgnoreFilters"`
+ ProfileIDs []*DynamicStringSliceOpt `json:"*profileIDs"`
+ Usage []*DynamicStringOpt `json:"*usage"`
+ ProfileIgnoreFilters []*DynamicBoolOpt `json:"*profileIgnoreFilters"`
}
// Account service config section
@@ -269,13 +269,13 @@ func diffAccountsOptsJsonCfg(d *AccountsOptsJson, v1, v2 *AccountsOpts) *Account
if d == nil {
d = new(AccountsOptsJson)
}
- if !utils.DynamicStringSliceOptEqual(v1.ProfileIDs, v2.ProfileIDs) {
+ if !DynamicStringSliceOptEqual(v1.ProfileIDs, v2.ProfileIDs) {
d.ProfileIDs = v2.ProfileIDs
}
- if !utils.DynamicDecimalBigOptEqual(v1.Usage, v2.Usage) {
- d.Usage = utils.DecimalBigToStringDynamicOpts(v2.Usage)
+ if !DynamicDecimalOptEqual(v1.Usage, v2.Usage) {
+ d.Usage = DecimalToStringDynamicOpts(v2.Usage)
}
- if !utils.DynamicBoolOptEqual(v1.ProfileIgnoreFilters, v2.ProfileIgnoreFilters) {
+ if !DynamicBoolOptEqual(v1.ProfileIgnoreFilters, v2.ProfileIgnoreFilters) {
d.ProfileIgnoreFilters = v2.ProfileIgnoreFilters
}
return d
diff --git a/config/accountscfg_test.go b/config/accountscfg_test.go
index a618d6ddc..792af3052 100644
--- a/config/accountscfg_test.go
+++ b/config/accountscfg_test.go
@@ -61,9 +61,9 @@ func TestAccountSCfgLoadFromJSONCfg(t *testing.T) {
MaxIterations: 1000,
MaxUsage: usage,
Opts: &AccountsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- Usage: []*utils.DynamicDecimalBigOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ Usage: []*DynamicDecimalOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
},
}
jsnCfg := NewDefaultCGRConfig()
@@ -82,17 +82,15 @@ func TestAccountSCfgLoadFromJSONCfg(t *testing.T) {
func TestAccountSCfgLoadFromJSONCfgOptsErr(t *testing.T) {
accOpts := &AccountsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Values: []string{"1001", "1002"},
},
},
- Usage: []*utils.DynamicDecimalBigOpt{
- {
- Value: decimal.WithContext(utils.DecimalContext).SetUint64(2),
- },
+ Usage: []*DynamicDecimalOpt{
+ NewDynamicDecimalOpt(nil, "", decimal.WithContext(utils.DecimalContext).SetUint64(2), nil),
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Value: false,
},
@@ -100,15 +98,15 @@ func TestAccountSCfgLoadFromJSONCfgOptsErr(t *testing.T) {
}
jsnCfg := &AccountsOptsJson{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{},
},
- Usage: []*utils.DynamicStringOpt{
+ Usage: []*DynamicStringOpt{
{
Value: "error",
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Value: false,
},
@@ -171,9 +169,9 @@ func TestAccountSCfgAsMapInterface(t *testing.T) {
utils.MaxIterations: 100,
utils.MaxUsage: "259200000000000", // 72h in ns
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaUsage: []*utils.DynamicDecimalBigOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ utils.MetaProfileIDs: []*DynamicStringSliceOpt{},
+ utils.MetaUsage: []*DynamicDecimalOpt{},
+ utils.MetaProfileIgnoreFilters: []*DynamicBoolOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -242,19 +240,16 @@ func TestDiffAccountSJsonCfg(t *testing.T) {
MaxIterations: 1,
MaxUsage: nil,
Opts: &AccountsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.org",
Values: []string{"ACC1"},
},
},
- Usage: []*utils.DynamicDecimalBigOpt{
- {
- Tenant: "cgrates.org",
- Value: decimal.WithContext(utils.DecimalContext).SetUint64(1),
- },
+ Usage: []*DynamicDecimalOpt{
+ NewDynamicDecimalOpt(nil, "cgrates.org", decimal.WithContext(utils.DecimalContext).SetUint64(1), nil),
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: true,
@@ -276,19 +271,16 @@ func TestDiffAccountSJsonCfg(t *testing.T) {
MaxIterations: 3,
MaxUsage: utils.NewDecimal(60, 0),
Opts: &AccountsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.net",
Values: []string{"ACC2"},
},
},
- Usage: []*utils.DynamicDecimalBigOpt{
- {
- Tenant: "cgrates.net",
- Value: decimal.WithContext(utils.DecimalContext).SetUint64(2),
- },
+ Usage: []*DynamicDecimalOpt{
+ NewDynamicDecimalOpt([]string{"fld1", "fld2"}, "cgrates.org", decimal.WithContext(utils.DecimalContext).SetUint64(2), nil),
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: false,
@@ -310,19 +302,20 @@ func TestDiffAccountSJsonCfg(t *testing.T) {
Max_iterations: utils.IntPointer(3),
Max_usage: utils.StringPointer("60"),
Opts: &AccountsOptsJson{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.net",
Values: []string{"ACC2"},
},
},
- Usage: []*utils.DynamicStringOpt{
+ Usage: []*DynamicStringOpt{
{
- Tenant: "cgrates.net",
- Value: "2",
+ FilterIDs: []string{"fld1", "fld2"},
+ Tenant: "cgrates.org",
+ Value: "2",
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: false,
@@ -374,7 +367,7 @@ func TestAccountSCloneSection(t *testing.T) {
MaxIterations: 1,
MaxUsage: nil,
Opts: &AccountsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Values: []string{"ACC1"},
},
diff --git a/config/actionscfg.go b/config/actionscfg.go
index 05f4fec74..21f8b7c37 100644
--- a/config/actionscfg.go
+++ b/config/actionscfg.go
@@ -30,9 +30,9 @@ var ActionsProfileIDsDftOpt = []string{}
const ActionsProfileIgnoreFiltersDftOpt = false
type ActionsOpts struct {
- ProfileIDs []*utils.DynamicStringSliceOpt
- ProfileIgnoreFilters []*utils.DynamicBoolOpt
- PosterAttempts []*utils.DynamicIntOpt
+ ProfileIDs []*DynamicStringSliceOpt
+ ProfileIgnoreFilters []*DynamicBoolOpt
+ PosterAttempts []*DynamicIntOpt
}
// ActionSCfg is the configuration of ActionS
@@ -189,17 +189,17 @@ func (ActionSCfg) SName() string { return ActionSJSON }
func (acS ActionSCfg) CloneSection() Section { return acS.Clone() }
func (actOpts *ActionsOpts) Clone() *ActionsOpts {
- var actPrfIDs []*utils.DynamicStringSliceOpt
+ var actPrfIDs []*DynamicStringSliceOpt
if actOpts.ProfileIDs != nil {
- actPrfIDs = utils.CloneDynamicStringSliceOpt(actOpts.ProfileIDs)
+ actPrfIDs = CloneDynamicStringSliceOpt(actOpts.ProfileIDs)
}
- var profileIgnoreFilters []*utils.DynamicBoolOpt
+ var profileIgnoreFilters []*DynamicBoolOpt
if actOpts.ProfileIgnoreFilters != nil {
- profileIgnoreFilters = utils.CloneDynamicBoolOpt(actOpts.ProfileIgnoreFilters)
+ profileIgnoreFilters = CloneDynamicBoolOpt(actOpts.ProfileIgnoreFilters)
}
- var posterAttempts []*utils.DynamicIntOpt
+ var posterAttempts []*DynamicIntOpt
if actOpts.PosterAttempts != nil {
- posterAttempts = utils.CloneDynamicIntOpt(actOpts.PosterAttempts)
+ posterAttempts = CloneDynamicIntOpt(actOpts.PosterAttempts)
}
return &ActionsOpts{
ProfileIDs: actPrfIDs,
@@ -257,9 +257,9 @@ func (acS ActionSCfg) Clone() (cln *ActionSCfg) {
}
type ActionsOptsJson struct {
- ProfileIDs []*utils.DynamicStringSliceOpt `json:"*profileIDs"`
- ProfileIgnoreFilters []*utils.DynamicBoolOpt `json:"*profileIgnoreFilters"`
- PosterAttempts []*utils.DynamicIntOpt `json:"*posterAttempts"`
+ ProfileIDs []*DynamicStringSliceOpt `json:"*profileIDs"`
+ ProfileIgnoreFilters []*DynamicBoolOpt `json:"*profileIgnoreFilters"`
+ PosterAttempts []*DynamicIntOpt `json:"*posterAttempts"`
}
// Action service config section
@@ -286,13 +286,13 @@ func diffActionsOptsJsonCfg(d *ActionsOptsJson, v1, v2 *ActionsOpts) *ActionsOpt
if d == nil {
d = new(ActionsOptsJson)
}
- if !utils.DynamicStringSliceOptEqual(v1.ProfileIDs, v2.ProfileIDs) {
+ if !DynamicStringSliceOptEqual(v1.ProfileIDs, v2.ProfileIDs) {
d.ProfileIDs = v2.ProfileIDs
}
- if !utils.DynamicBoolOptEqual(v1.ProfileIgnoreFilters, v2.ProfileIgnoreFilters) {
+ if !DynamicBoolOptEqual(v1.ProfileIgnoreFilters, v2.ProfileIgnoreFilters) {
d.ProfileIgnoreFilters = v2.ProfileIgnoreFilters
}
- if !utils.DynamicIntOptEqual(v1.PosterAttempts, v2.PosterAttempts) {
+ if !DynamicIntOptEqual(v1.PosterAttempts, v2.PosterAttempts) {
d.PosterAttempts = v2.PosterAttempts
}
return d
diff --git a/config/actionscfg_test.go b/config/actionscfg_test.go
index 48553126e..2d1672640 100644
--- a/config/actionscfg_test.go
+++ b/config/actionscfg_test.go
@@ -60,9 +60,9 @@ func TestActionSCfgLoadFromJSONCfg(t *testing.T) {
NestedFields: true,
DynaprepaidActionProfile: []string{"val1", "val2"},
Opts: &ActionsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
- PosterAttempts: []*utils.DynamicIntOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
+ PosterAttempts: []*DynamicIntOpt{},
},
}
jsnCfg := NewDefaultCGRConfig()
@@ -80,24 +80,24 @@ func TestActionSCfgLoadFromJSONCfg(t *testing.T) {
func TestActionoSLoadConfigFromJSONOpts(t *testing.T) {
actOpts := &ActionsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Values: []string{},
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Value: false,
},
},
}
exp := &ActionsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Values: []string{},
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Value: false,
},
@@ -147,9 +147,9 @@ func TestActionSCfgAsMapInterface(t *testing.T) {
utils.NestedFieldsCfg: true,
utils.DynaprepaidActionplansCfg: []string{},
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
- utils.MetaPosterAttempts: []*utils.DynamicIntOpt{},
+ utils.MetaProfileIDs: []*DynamicStringSliceOpt{},
+ utils.MetaProfileIgnoreFilters: []*DynamicBoolOpt{},
+ utils.MetaPosterAttempts: []*DynamicIntOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -230,13 +230,13 @@ func TestDiffActionSJsonCfg(t *testing.T) {
NestedFields: true,
DynaprepaidActionProfile: []string{},
Opts: &ActionsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.org",
Values: []string{"prf1"},
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
@@ -260,13 +260,13 @@ func TestDiffActionSJsonCfg(t *testing.T) {
NestedFields: false,
DynaprepaidActionProfile: []string{"dynaprepaid"},
Opts: &ActionsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.net",
Values: []string{"prf2"},
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Tenant: "cgrates.nett",
Value: true,
@@ -290,13 +290,13 @@ func TestDiffActionSJsonCfg(t *testing.T) {
Nested_fields: utils.BoolPointer(false),
Dynaprepaid_actionprofile: &[]string{"dynaprepaid"},
Opts: &ActionsOptsJson{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.net",
Values: []string{"prf2"},
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Tenant: "cgrates.nett",
Value: true,
@@ -337,7 +337,7 @@ func TestActionSCloneSection(t *testing.T) {
NestedFields: false,
DynaprepaidActionProfile: []string{"dynaprepaid"},
Opts: &ActionsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Values: []string{},
},
@@ -359,7 +359,7 @@ func TestActionSCloneSection(t *testing.T) {
NestedFields: false,
DynaprepaidActionProfile: []string{"dynaprepaid"},
Opts: &ActionsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Values: []string{},
},
@@ -374,17 +374,17 @@ func TestActionSCloneSection(t *testing.T) {
func TestDiffActionsOptsJsonCfg(t *testing.T) {
d := &ActionsOptsJson{}
v1 := &ActionsOpts{
- PosterAttempts: []*utils.DynamicIntOpt{},
+ PosterAttempts: []*DynamicIntOpt{},
}
v2 := &ActionsOpts{
- PosterAttempts: []*utils.DynamicIntOpt{{
+ PosterAttempts: []*DynamicIntOpt{{
FilterIDs: []string{"fltr1"},
},
},
}
exp := &ActionsOptsJson{
- PosterAttempts: []*utils.DynamicIntOpt{{
+ PosterAttempts: []*DynamicIntOpt{{
FilterIDs: []string{"fltr1"},
},
},
diff --git a/config/analyzerscfg.go b/config/analyzerscfg.go
index ad83f62f5..65d1222af 100644
--- a/config/analyzerscfg.go
+++ b/config/analyzerscfg.go
@@ -38,7 +38,7 @@ type AnalyzerSCfg struct {
}
type AnalyzerSOpts struct {
- ExporterIDs []*utils.DynamicStringSliceOpt
+ ExporterIDs []*DynamicStringSliceOpt
}
// loadAnalyzerCgrCfg loads the Analyzer section of the configuration
@@ -134,12 +134,12 @@ func (anzOpts *AnalyzerSOpts) Clone() *AnalyzerSOpts {
return nil
}
return &AnalyzerSOpts{
- ExporterIDs: utils.CloneDynamicStringSliceOpt(anzOpts.ExporterIDs),
+ ExporterIDs: []*DynamicStringSliceOpt(anzOpts.ExporterIDs),
}
}
type AnalyzerSOptsJson struct {
- ExporterIDs []*utils.DynamicStringSliceOpt `json:"*exporterIDs"`
+ ExporterIDs []*DynamicStringSliceOpt `json:"*exporterIDs"`
}
// Analyzer service json config section
@@ -157,7 +157,7 @@ func diffAnalyzerSOptsJsonCfg(d *AnalyzerSOptsJson, v1, v2 *AnalyzerSOpts) *Anal
if d == nil {
d = new(AnalyzerSOptsJson)
}
- if !utils.DynamicStringSliceOptEqual(v1.ExporterIDs, v2.ExporterIDs) {
+ if !DynamicStringSliceOptEqual(v1.ExporterIDs, v2.ExporterIDs) {
d.ExporterIDs = v2.ExporterIDs
}
return d
diff --git a/config/analyzerscfg_test.go b/config/analyzerscfg_test.go
index 5f137f7de..26af75ff5 100644
--- a/config/analyzerscfg_test.go
+++ b/config/analyzerscfg_test.go
@@ -37,7 +37,7 @@ func TestAnalyzerSCfgloadFromJsonCfg(t *testing.T) {
EEsConns: []string{},
TTL: 24 * time.Hour,
Opts: &AnalyzerSOpts{
- ExporterIDs: []*utils.DynamicStringSliceOpt{},
+ ExporterIDs: []*DynamicStringSliceOpt{},
},
}
jsnCfg := NewDefaultCGRConfig()
@@ -65,7 +65,7 @@ func TestAnalyzerSCfgAsMapInterface(t *testing.T) {
utils.EEsConnsCfg: []string{},
utils.TTLCfg: "24h0m0s",
utils.OptsCfg: map[string]any{
- utils.MetaExporterIDs: []*utils.DynamicStringSliceOpt{},
+ utils.MetaExporterIDs: []*DynamicStringSliceOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -91,7 +91,7 @@ func TestAnalyzerSCfgAsMapInterface1(t *testing.T) {
utils.EEsConnsCfg: []string{"*localhost"},
utils.TTLCfg: "24h0m0s",
utils.OptsCfg: map[string]any{
- utils.MetaExporterIDs: []*utils.DynamicStringSliceOpt{},
+ utils.MetaExporterIDs: []*DynamicStringSliceOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -207,7 +207,7 @@ func TestAnalyzerSCloneSection(t *testing.T) {
func TestToLoadFromJSONCfg(t *testing.T) {
anzOpts := &AnalyzerSOpts{
- ExporterIDs: []*utils.DynamicStringSliceOpt{
+ ExporterIDs: []*DynamicStringSliceOpt{
{
FilterIDs: []string{"filtr1"},
},
@@ -226,17 +226,17 @@ func TestToLoadFromJSONCfg(t *testing.T) {
func TestDiffAnalyzerSOptsJsonCfg(t *testing.T) {
d := &AnalyzerSOptsJson{}
v1 := &AnalyzerSOpts{
- ExporterIDs: []*utils.DynamicStringSliceOpt{},
+ ExporterIDs: []*DynamicStringSliceOpt{},
}
v2 := &AnalyzerSOpts{
- ExporterIDs: []*utils.DynamicStringSliceOpt{{
+ ExporterIDs: []*DynamicStringSliceOpt{{
FilterIDs: []string{"test"},
},
},
}
exp := &AnalyzerSOptsJson{
- ExporterIDs: []*utils.DynamicStringSliceOpt{{
+ ExporterIDs: []*DynamicStringSliceOpt{{
FilterIDs: []string{"test"},
},
},
diff --git a/config/apis_test.go b/config/apis_test.go
index 3087199da..febfce673 100644
--- a/config/apis_test.go
+++ b/config/apis_test.go
@@ -233,7 +233,7 @@ func TestConfigLoadFromDB(t *testing.T) {
MaxParallelConns: 100,
RSRSep: ";",
Opts: &GeneralOpts{
- ExporterIDs: []*utils.DynamicStringSliceOpt{},
+ ExporterIDs: []*DynamicStringSliceOpt{},
},
}
if !reflect.DeepEqual(expGeneral, cfg.GeneralCfg()) {
diff --git a/config/attributescfg.go b/config/attributescfg.go
index 2000f909e..04fed5b4a 100644
--- a/config/attributescfg.go
+++ b/config/attributescfg.go
@@ -34,10 +34,10 @@ const (
)
type AttributesOpts struct {
- ProfileIDs []*utils.DynamicStringSliceOpt
- ProcessRuns []*utils.DynamicIntOpt
- ProfileRuns []*utils.DynamicIntOpt
- ProfileIgnoreFilters []*utils.DynamicBoolOpt
+ ProfileIDs []*DynamicStringSliceOpt
+ ProcessRuns []*DynamicIntOpt
+ ProfileRuns []*DynamicIntOpt
+ ProfileIgnoreFilters []*DynamicBoolOpt
}
// AttributeSCfg is the configuration of attribute service
@@ -168,21 +168,21 @@ func (alS AttributeSCfg) AsMapInterface(string) any {
}
func (attrOpts AttributesOpts) Clone() *AttributesOpts {
- var attrIDs []*utils.DynamicStringSliceOpt
+ var attrIDs []*DynamicStringSliceOpt
if attrOpts.ProfileIDs != nil {
- attrIDs = utils.CloneDynamicStringSliceOpt(attrOpts.ProfileIDs)
+ attrIDs = CloneDynamicStringSliceOpt(attrOpts.ProfileIDs)
}
- var processRuns []*utils.DynamicIntOpt
+ var processRuns []*DynamicIntOpt
if attrOpts.ProcessRuns != nil {
- processRuns = utils.CloneDynamicIntOpt(attrOpts.ProcessRuns)
+ processRuns = CloneDynamicIntOpt(attrOpts.ProcessRuns)
}
- var profileRuns []*utils.DynamicIntOpt
+ var profileRuns []*DynamicIntOpt
if attrOpts.ProfileRuns != nil {
- profileRuns = utils.CloneDynamicIntOpt(attrOpts.ProfileRuns)
+ profileRuns = CloneDynamicIntOpt(attrOpts.ProfileRuns)
}
- var profileIgnoreFilters []*utils.DynamicBoolOpt
+ var profileIgnoreFilters []*DynamicBoolOpt
if attrOpts.ProfileIgnoreFilters != nil {
- profileIgnoreFilters = utils.CloneDynamicBoolOpt(attrOpts.ProfileIgnoreFilters)
+ profileIgnoreFilters = CloneDynamicBoolOpt(attrOpts.ProfileIgnoreFilters)
}
return &AttributesOpts{
ProfileIDs: attrIDs,
@@ -232,10 +232,10 @@ func (alS AttributeSCfg) Clone() (cln *AttributeSCfg) {
}
type AttributesOptsJson struct {
- ProfileIDs []*utils.DynamicStringSliceOpt `json:"*profileIDs"`
- ProcessRuns []*utils.DynamicIntOpt `json:"*processRuns"`
- ProfileRuns []*utils.DynamicIntOpt `json:"*profileRuns"`
- ProfileIgnoreFilters []*utils.DynamicBoolOpt `json:"*profileIgnoreFilters"`
+ ProfileIDs []*DynamicStringSliceOpt `json:"*profileIDs"`
+ ProcessRuns []*DynamicIntOpt `json:"*processRuns"`
+ ProfileRuns []*DynamicIntOpt `json:"*profileRuns"`
+ ProfileIgnoreFilters []*DynamicBoolOpt `json:"*profileIgnoreFilters"`
}
// Attribute service config section
@@ -258,16 +258,16 @@ func diffAttributesOptsJsonCfg(d *AttributesOptsJson, v1, v2 *AttributesOpts) *A
if d == nil {
d = new(AttributesOptsJson)
}
- if !utils.DynamicStringSliceOptEqual(v1.ProfileIDs, v2.ProfileIDs) {
+ if !DynamicStringSliceOptEqual(v1.ProfileIDs, v2.ProfileIDs) {
d.ProfileIDs = v2.ProfileIDs
}
- if !utils.DynamicIntOptEqual(v1.ProcessRuns, v2.ProcessRuns) {
+ if !DynamicIntOptEqual(v1.ProcessRuns, v2.ProcessRuns) {
d.ProcessRuns = v2.ProcessRuns
}
- if !utils.DynamicIntOptEqual(v1.ProfileRuns, v2.ProfileRuns) {
+ if !DynamicIntOptEqual(v1.ProfileRuns, v2.ProfileRuns) {
d.ProfileRuns = v2.ProfileRuns
}
- if !utils.DynamicBoolOptEqual(v1.ProfileIgnoreFilters, v2.ProfileIgnoreFilters) {
+ if !DynamicBoolOptEqual(v1.ProfileIgnoreFilters, v2.ProfileIgnoreFilters) {
d.ProfileIgnoreFilters = v2.ProfileIgnoreFilters
}
return d
diff --git a/config/attributescfg_test.go b/config/attributescfg_test.go
index f05f28351..3881a3723 100644
--- a/config/attributescfg_test.go
+++ b/config/attributescfg_test.go
@@ -52,10 +52,10 @@ func TestAttributeSCfgloadFromJsonCfg(t *testing.T) {
NotExistsIndexedFields: &[]string{"*req.index1"},
NestedFields: true,
Opts: &AttributesOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- ProcessRuns: []*utils.DynamicIntOpt{},
- ProfileRuns: []*utils.DynamicIntOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ ProcessRuns: []*DynamicIntOpt{},
+ ProfileRuns: []*DynamicIntOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
},
}
jsnCfg := NewDefaultCGRConfig()
@@ -73,22 +73,22 @@ func TestAttributeSCfgloadFromJsonCfg(t *testing.T) {
func TestAttributeSLoadFromJsonCfgOpts(t *testing.T) {
attrOpt := &AttributesOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Values: []string{},
},
},
- ProcessRuns: []*utils.DynamicIntOpt{
+ ProcessRuns: []*DynamicIntOpt{
{
Value: 1,
},
},
- ProfileRuns: []*utils.DynamicIntOpt{
+ ProfileRuns: []*DynamicIntOpt{
{
Value: 0,
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Value: false,
},
@@ -96,22 +96,22 @@ func TestAttributeSLoadFromJsonCfgOpts(t *testing.T) {
}
exp := &AttributesOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Values: []string{},
},
},
- ProcessRuns: []*utils.DynamicIntOpt{
+ ProcessRuns: []*DynamicIntOpt{
{
Value: 1,
},
},
- ProfileRuns: []*utils.DynamicIntOpt{
+ ProfileRuns: []*DynamicIntOpt{
{
Value: 0,
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Value: false,
},
@@ -157,14 +157,14 @@ func TestAttributeSCfgAsMapInterface(t *testing.T) {
utils.NestedFieldsCfg: false,
utils.SuffixIndexedFieldsCfg: []string{},
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaProcessRunsCfg: []*utils.DynamicIntOpt{
+ utils.MetaProfileIDs: []*DynamicStringSliceOpt{},
+ utils.MetaProcessRunsCfg: []*DynamicIntOpt{
{
Value: 3,
},
},
- utils.MetaProfileRunsCfg: []*utils.DynamicIntOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ utils.MetaProfileRunsCfg: []*DynamicIntOpt{},
+ utils.MetaProfileIgnoreFilters: []*DynamicBoolOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -202,14 +202,14 @@ func TestAttributeSCfgAsMapInterface2(t *testing.T) {
utils.NotExistsIndexedFieldsCfg: []string{"*req.index1", "*req.index2"},
utils.NestedFieldsCfg: true,
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaProcessRunsCfg: []*utils.DynamicIntOpt{
+ utils.MetaProfileIDs: []*DynamicStringSliceOpt{},
+ utils.MetaProcessRunsCfg: []*DynamicIntOpt{
{
Value: 7,
},
},
- utils.MetaProfileRunsCfg: []*utils.DynamicIntOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ utils.MetaProfileRunsCfg: []*DynamicIntOpt{},
+ utils.MetaProfileIgnoreFilters: []*DynamicBoolOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -237,10 +237,10 @@ func TestAttributeSCfgAsMapInterface3(t *testing.T) {
utils.NotExistsIndexedFieldsCfg: []string{},
utils.NestedFieldsCfg: false,
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaProcessRunsCfg: []*utils.DynamicIntOpt{},
- utils.MetaProfileRunsCfg: []*utils.DynamicIntOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ utils.MetaProfileIDs: []*DynamicStringSliceOpt{},
+ utils.MetaProcessRunsCfg: []*DynamicIntOpt{},
+ utils.MetaProfileRunsCfg: []*DynamicIntOpt{},
+ utils.MetaProfileIgnoreFilters: []*DynamicBoolOpt{},
},
}
if conv, err := NewCGRConfigFromJSONStringWithDefaults(myJSONStr); err != nil {
@@ -301,25 +301,25 @@ func TestDiffAttributeSJsonCfg(t *testing.T) {
SuffixIndexedFields: &[]string{},
NestedFields: true,
Opts: &AttributesOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.org",
Values: []string{"prf1"},
},
},
- ProcessRuns: []*utils.DynamicIntOpt{
+ ProcessRuns: []*DynamicIntOpt{
{
FilterIDs: []string{},
Value: 1,
},
},
- ProfileRuns: []*utils.DynamicIntOpt{
+ ProfileRuns: []*DynamicIntOpt{
{
FilterIDs: []string{},
Value: 1,
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
@@ -339,25 +339,25 @@ func TestDiffAttributeSJsonCfg(t *testing.T) {
SuffixIndexedFields: nil,
NestedFields: false,
Opts: &AttributesOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.net",
Values: []string{"prf2"},
},
},
- ProcessRuns: []*utils.DynamicIntOpt{
+ ProcessRuns: []*DynamicIntOpt{
{
FilterIDs: []string{},
Value: 2,
},
},
- ProfileRuns: []*utils.DynamicIntOpt{
+ ProfileRuns: []*DynamicIntOpt{
{
FilterIDs: []string{},
Value: 2,
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
@@ -377,25 +377,25 @@ func TestDiffAttributeSJsonCfg(t *testing.T) {
Suffix_indexed_fields: nil,
Nested_fields: utils.BoolPointer(false),
Opts: &AttributesOptsJson{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.net",
Values: []string{"prf2"},
},
},
- ProcessRuns: []*utils.DynamicIntOpt{
+ ProcessRuns: []*DynamicIntOpt{
{
FilterIDs: []string{},
Value: 2,
},
},
- ProfileRuns: []*utils.DynamicIntOpt{
+ ProfileRuns: []*DynamicIntOpt{
{
FilterIDs: []string{},
Value: 2,
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
@@ -431,7 +431,7 @@ func TestAttributeSCloneSection(t *testing.T) {
SuffixIndexedFields: &[]string{},
NestedFields: true,
Opts: &AttributesOpts{
- ProcessRuns: []*utils.DynamicIntOpt{
+ ProcessRuns: []*DynamicIntOpt{
{
FilterIDs: []string{},
Value: 1,
@@ -451,7 +451,7 @@ func TestAttributeSCloneSection(t *testing.T) {
SuffixIndexedFields: &[]string{},
NestedFields: true,
Opts: &AttributesOpts{
- ProcessRuns: []*utils.DynamicIntOpt{
+ ProcessRuns: []*DynamicIntOpt{
{
FilterIDs: []string{},
Value: 1,
diff --git a/config/cdrscfg.go b/config/cdrscfg.go
index 3fdd6f385..d6f122c9b 100644
--- a/config/cdrscfg.go
+++ b/config/cdrscfg.go
@@ -39,16 +39,16 @@ const (
)
type CdrsOpts struct {
- Accounts []*utils.DynamicBoolOpt
- Attributes []*utils.DynamicBoolOpt
- Chargers []*utils.DynamicBoolOpt
- Export []*utils.DynamicBoolOpt
- Rates []*utils.DynamicBoolOpt
- Stats []*utils.DynamicBoolOpt
- Thresholds []*utils.DynamicBoolOpt
- Refund []*utils.DynamicBoolOpt
- Rerate []*utils.DynamicBoolOpt
- Store []*utils.DynamicBoolOpt
+ Accounts []*DynamicBoolOpt
+ Attributes []*DynamicBoolOpt
+ Chargers []*DynamicBoolOpt
+ Export []*DynamicBoolOpt
+ Rates []*DynamicBoolOpt
+ Stats []*DynamicBoolOpt
+ Thresholds []*DynamicBoolOpt
+ Refund []*DynamicBoolOpt
+ Rerate []*DynamicBoolOpt
+ Store []*DynamicBoolOpt
}
// CdrsCfg is the CDR server
@@ -215,45 +215,45 @@ func (CdrsCfg) SName() string { return CDRsJSON }
func (cdrscfg CdrsCfg) CloneSection() Section { return cdrscfg.Clone() }
func (cdrsOpts *CdrsOpts) Clone() *CdrsOpts {
- var accS []*utils.DynamicBoolOpt
+ var accS []*DynamicBoolOpt
if cdrsOpts.Accounts != nil {
- accS = utils.CloneDynamicBoolOpt(cdrsOpts.Accounts)
+ accS = CloneDynamicBoolOpt(cdrsOpts.Accounts)
}
- var attrS []*utils.DynamicBoolOpt
+ var attrS []*DynamicBoolOpt
if cdrsOpts.Attributes != nil {
- attrS = utils.CloneDynamicBoolOpt(cdrsOpts.Attributes)
+ attrS = CloneDynamicBoolOpt(cdrsOpts.Attributes)
}
- var chrgS []*utils.DynamicBoolOpt
+ var chrgS []*DynamicBoolOpt
if cdrsOpts.Chargers != nil {
- chrgS = utils.CloneDynamicBoolOpt(cdrsOpts.Chargers)
+ chrgS = CloneDynamicBoolOpt(cdrsOpts.Chargers)
}
- var export []*utils.DynamicBoolOpt
+ var export []*DynamicBoolOpt
if cdrsOpts.Export != nil {
- export = utils.CloneDynamicBoolOpt(cdrsOpts.Export)
+ export = CloneDynamicBoolOpt(cdrsOpts.Export)
}
- var rtS []*utils.DynamicBoolOpt
+ var rtS []*DynamicBoolOpt
if cdrsOpts.Rates != nil {
- rtS = utils.CloneDynamicBoolOpt(cdrsOpts.Rates)
+ rtS = CloneDynamicBoolOpt(cdrsOpts.Rates)
}
- var stS []*utils.DynamicBoolOpt
+ var stS []*DynamicBoolOpt
if cdrsOpts.Stats != nil {
- stS = utils.CloneDynamicBoolOpt(cdrsOpts.Stats)
+ stS = CloneDynamicBoolOpt(cdrsOpts.Stats)
}
- var thdS []*utils.DynamicBoolOpt
+ var thdS []*DynamicBoolOpt
if cdrsOpts.Thresholds != nil {
- thdS = utils.CloneDynamicBoolOpt(cdrsOpts.Thresholds)
+ thdS = CloneDynamicBoolOpt(cdrsOpts.Thresholds)
}
- var refund []*utils.DynamicBoolOpt
+ var refund []*DynamicBoolOpt
if cdrsOpts.Refund != nil {
- refund = utils.CloneDynamicBoolOpt(cdrsOpts.Refund)
+ refund = CloneDynamicBoolOpt(cdrsOpts.Refund)
}
- var rerate []*utils.DynamicBoolOpt
+ var rerate []*DynamicBoolOpt
if cdrsOpts.Rerate != nil {
- rerate = utils.CloneDynamicBoolOpt(cdrsOpts.Rerate)
+ rerate = CloneDynamicBoolOpt(cdrsOpts.Rerate)
}
- var store []*utils.DynamicBoolOpt
+ var store []*DynamicBoolOpt
if cdrsOpts.Store != nil {
- store = utils.CloneDynamicBoolOpt(cdrsOpts.Store)
+ store = CloneDynamicBoolOpt(cdrsOpts.Store)
}
return &CdrsOpts{
Accounts: accS,
@@ -309,16 +309,16 @@ func (cdrscfg CdrsCfg) Clone() (cln *CdrsCfg) {
}
type CdrsOptsJson struct {
- Accounts []*utils.DynamicBoolOpt `json:"*accounts"`
- Attributes []*utils.DynamicBoolOpt `json:"*attributes"`
- Chargers []*utils.DynamicBoolOpt `json:"*chargers"`
- Export []*utils.DynamicBoolOpt `json:"*ees"`
- Rates []*utils.DynamicBoolOpt `json:"*rates"`
- Stats []*utils.DynamicBoolOpt `json:"*stats"`
- Thresholds []*utils.DynamicBoolOpt `json:"*thresholds"`
- Refund []*utils.DynamicBoolOpt `json:"*refund"`
- Rerate []*utils.DynamicBoolOpt `json:"*rerate"`
- Store []*utils.DynamicBoolOpt `json:"*store"`
+ Accounts []*DynamicBoolOpt `json:"*accounts"`
+ Attributes []*DynamicBoolOpt `json:"*attributes"`
+ Chargers []*DynamicBoolOpt `json:"*chargers"`
+ Export []*DynamicBoolOpt `json:"*ees"`
+ Rates []*DynamicBoolOpt `json:"*rates"`
+ Stats []*DynamicBoolOpt `json:"*stats"`
+ Thresholds []*DynamicBoolOpt `json:"*thresholds"`
+ Refund []*DynamicBoolOpt `json:"*refund"`
+ Rerate []*DynamicBoolOpt `json:"*rerate"`
+ Store []*DynamicBoolOpt `json:"*store"`
}
// Cdrs config section
@@ -342,34 +342,34 @@ func diffCdrsOptsJsonCfg(d *CdrsOptsJson, v1, v2 *CdrsOpts) *CdrsOptsJson {
if d == nil {
d = new(CdrsOptsJson)
}
- if !utils.DynamicBoolOptEqual(v1.Accounts, v2.Accounts) {
+ if !DynamicBoolOptEqual(v1.Accounts, v2.Accounts) {
d.Accounts = v2.Accounts
}
- if !utils.DynamicBoolOptEqual(v1.Attributes, v2.Attributes) {
+ if !DynamicBoolOptEqual(v1.Attributes, v2.Attributes) {
d.Attributes = v2.Attributes
}
- if !utils.DynamicBoolOptEqual(v1.Chargers, v2.Chargers) {
+ if !DynamicBoolOptEqual(v1.Chargers, v2.Chargers) {
d.Chargers = v2.Chargers
}
- if !utils.DynamicBoolOptEqual(v1.Export, v2.Export) {
+ if !DynamicBoolOptEqual(v1.Export, v2.Export) {
d.Export = v2.Export
}
- if !utils.DynamicBoolOptEqual(v1.Rates, v2.Rates) {
+ if !DynamicBoolOptEqual(v1.Rates, v2.Rates) {
d.Rates = v2.Rates
}
- if !utils.DynamicBoolOptEqual(v1.Stats, v2.Stats) {
+ if !DynamicBoolOptEqual(v1.Stats, v2.Stats) {
d.Stats = v2.Stats
}
- if !utils.DynamicBoolOptEqual(v1.Thresholds, v2.Thresholds) {
+ if !DynamicBoolOptEqual(v1.Thresholds, v2.Thresholds) {
d.Thresholds = v2.Thresholds
}
- if !utils.DynamicBoolOptEqual(v1.Refund, v2.Refund) {
+ if !DynamicBoolOptEqual(v1.Refund, v2.Refund) {
d.Refund = v2.Refund
}
- if !utils.DynamicBoolOptEqual(v1.Rerate, v2.Rerate) {
+ if !DynamicBoolOptEqual(v1.Rerate, v2.Rerate) {
d.Rerate = v2.Rerate
}
- if !utils.DynamicBoolOptEqual(v1.Store, v2.Store) {
+ if !DynamicBoolOptEqual(v1.Store, v2.Store) {
d.Store = v2.Store
}
return d
diff --git a/config/cdrscfg_test.go b/config/cdrscfg_test.go
index daff96ced..e7bb90c08 100644
--- a/config/cdrscfg_test.go
+++ b/config/cdrscfg_test.go
@@ -53,16 +53,16 @@ func TestCdrsCfgloadFromJsonCfg(t *testing.T) {
AccountSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAccounts), "*conn1"},
ExtraFields: RSRParsers{},
Opts: &CdrsOpts{
- Accounts: []*utils.DynamicBoolOpt{},
- Attributes: []*utils.DynamicBoolOpt{},
- Chargers: []*utils.DynamicBoolOpt{},
- Export: []*utils.DynamicBoolOpt{},
- Rates: []*utils.DynamicBoolOpt{},
- Stats: []*utils.DynamicBoolOpt{},
- Thresholds: []*utils.DynamicBoolOpt{},
- Refund: []*utils.DynamicBoolOpt{},
- Rerate: []*utils.DynamicBoolOpt{},
- Store: []*utils.DynamicBoolOpt{},
+ Accounts: []*DynamicBoolOpt{},
+ Attributes: []*DynamicBoolOpt{},
+ Chargers: []*DynamicBoolOpt{},
+ Export: []*DynamicBoolOpt{},
+ Rates: []*DynamicBoolOpt{},
+ Stats: []*DynamicBoolOpt{},
+ Thresholds: []*DynamicBoolOpt{},
+ Refund: []*DynamicBoolOpt{},
+ Rerate: []*DynamicBoolOpt{},
+ Store: []*DynamicBoolOpt{},
},
}
jsnCfg := NewDefaultCGRConfig()
@@ -80,37 +80,37 @@ func TestCdrsCfgloadFromJsonCfg(t *testing.T) {
func TestCdrsCfgloadFromJsonCfgOpt(t *testing.T) {
cdrsOpt := &CdrsOpts{
- Accounts: []*utils.DynamicBoolOpt{
+ Accounts: []*DynamicBoolOpt{
{
Value: false,
},
},
- Attributes: []*utils.DynamicBoolOpt{
+ Attributes: []*DynamicBoolOpt{
{
Value: false,
},
},
- Chargers: []*utils.DynamicBoolOpt{
+ Chargers: []*DynamicBoolOpt{
{
Value: false,
},
},
- Export: []*utils.DynamicBoolOpt{
+ Export: []*DynamicBoolOpt{
{
Value: false,
},
},
- Rates: []*utils.DynamicBoolOpt{
+ Rates: []*DynamicBoolOpt{
{
Value: false,
},
},
- Stats: []*utils.DynamicBoolOpt{
+ Stats: []*DynamicBoolOpt{
{
Value: false,
},
},
- Thresholds: []*utils.DynamicBoolOpt{
+ Thresholds: []*DynamicBoolOpt{
{
Value: false,
},
@@ -118,37 +118,37 @@ func TestCdrsCfgloadFromJsonCfgOpt(t *testing.T) {
}
exp := &CdrsOpts{
- Accounts: []*utils.DynamicBoolOpt{
+ Accounts: []*DynamicBoolOpt{
{
Value: false,
},
},
- Attributes: []*utils.DynamicBoolOpt{
+ Attributes: []*DynamicBoolOpt{
{
Value: false,
},
},
- Chargers: []*utils.DynamicBoolOpt{
+ Chargers: []*DynamicBoolOpt{
{
Value: false,
},
},
- Export: []*utils.DynamicBoolOpt{
+ Export: []*DynamicBoolOpt{
{
Value: false,
},
},
- Rates: []*utils.DynamicBoolOpt{
+ Rates: []*DynamicBoolOpt{
{
Value: false,
},
},
- Stats: []*utils.DynamicBoolOpt{
+ Stats: []*DynamicBoolOpt{
{
Value: false,
},
},
- Thresholds: []*utils.DynamicBoolOpt{
+ Thresholds: []*DynamicBoolOpt{
{
Value: false,
},
@@ -203,16 +203,16 @@ func TestCdrsCfgAsMapInterface(t *testing.T) {
utils.RateSConnsCfg: []string{utils.MetaInternal, "*conn1"},
utils.AccountSConnsCfg: []string{utils.MetaInternal, "*conn1"},
utils.OptsCfg: map[string]any{
- utils.MetaAccounts: []*utils.DynamicBoolOpt{},
- utils.MetaAttributes: []*utils.DynamicBoolOpt{},
- utils.MetaChargers: []*utils.DynamicBoolOpt{},
- utils.MetaEEs: []*utils.DynamicBoolOpt{},
- utils.MetaRates: []*utils.DynamicBoolOpt{},
- utils.MetaStats: []*utils.DynamicBoolOpt{},
- utils.MetaThresholds: []*utils.DynamicBoolOpt{},
- utils.MetaRefund: []*utils.DynamicBoolOpt{},
- utils.MetaRerate: []*utils.DynamicBoolOpt{},
- utils.MetaStore: []*utils.DynamicBoolOpt{},
+ utils.MetaAccounts: []*DynamicBoolOpt{},
+ utils.MetaAttributes: []*DynamicBoolOpt{},
+ utils.MetaChargers: []*DynamicBoolOpt{},
+ utils.MetaEEs: []*DynamicBoolOpt{},
+ utils.MetaRates: []*DynamicBoolOpt{},
+ utils.MetaStats: []*DynamicBoolOpt{},
+ utils.MetaThresholds: []*DynamicBoolOpt{},
+ utils.MetaRefund: []*DynamicBoolOpt{},
+ utils.MetaRerate: []*DynamicBoolOpt{},
+ utils.MetaStore: []*DynamicBoolOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -245,16 +245,16 @@ func TestCdrsCfgAsMapInterface2(t *testing.T) {
utils.RateSConnsCfg: []string{},
utils.AccountSConnsCfg: []string{},
utils.OptsCfg: map[string]any{
- utils.MetaAccounts: []*utils.DynamicBoolOpt{},
- utils.MetaAttributes: []*utils.DynamicBoolOpt{},
- utils.MetaChargers: []*utils.DynamicBoolOpt{},
- utils.MetaEEs: []*utils.DynamicBoolOpt{},
- utils.MetaRates: []*utils.DynamicBoolOpt{},
- utils.MetaStats: []*utils.DynamicBoolOpt{},
- utils.MetaThresholds: []*utils.DynamicBoolOpt{},
- utils.MetaRefund: []*utils.DynamicBoolOpt{},
- utils.MetaRerate: []*utils.DynamicBoolOpt{},
- utils.MetaStore: []*utils.DynamicBoolOpt{},
+ utils.MetaAccounts: []*DynamicBoolOpt{},
+ utils.MetaAttributes: []*DynamicBoolOpt{},
+ utils.MetaChargers: []*DynamicBoolOpt{},
+ utils.MetaEEs: []*DynamicBoolOpt{},
+ utils.MetaRates: []*DynamicBoolOpt{},
+ utils.MetaStats: []*DynamicBoolOpt{},
+ utils.MetaThresholds: []*DynamicBoolOpt{},
+ utils.MetaRefund: []*DynamicBoolOpt{},
+ utils.MetaRerate: []*DynamicBoolOpt{},
+ utils.MetaStore: []*DynamicBoolOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -329,43 +329,43 @@ func TestDiffCdrsJsonCfg(t *testing.T) {
RateSConns: []string{"*localhost"},
AccountSConns: []string{"*localhost"},
Opts: &CdrsOpts{
- Accounts: []*utils.DynamicBoolOpt{
+ Accounts: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- Attributes: []*utils.DynamicBoolOpt{
+ Attributes: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- Chargers: []*utils.DynamicBoolOpt{
+ Chargers: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- Export: []*utils.DynamicBoolOpt{
+ Export: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- Rates: []*utils.DynamicBoolOpt{
+ Rates: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- Stats: []*utils.DynamicBoolOpt{
+ Stats: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- Thresholds: []*utils.DynamicBoolOpt{
+ Thresholds: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
@@ -393,43 +393,43 @@ func TestDiffCdrsJsonCfg(t *testing.T) {
RateSConns: []string{"*birpc"},
AccountSConns: []string{"*birpc"},
Opts: &CdrsOpts{
- Accounts: []*utils.DynamicBoolOpt{
+ Accounts: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Attributes: []*utils.DynamicBoolOpt{
+ Attributes: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Chargers: []*utils.DynamicBoolOpt{
+ Chargers: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Export: []*utils.DynamicBoolOpt{
+ Export: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Rates: []*utils.DynamicBoolOpt{
+ Rates: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Stats: []*utils.DynamicBoolOpt{
+ Stats: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Thresholds: []*utils.DynamicBoolOpt{
+ Thresholds: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
@@ -452,43 +452,43 @@ func TestDiffCdrsJsonCfg(t *testing.T) {
Rates_conns: &[]string{"*birpc"},
Accounts_conns: &[]string{"*birpc"},
Opts: &CdrsOptsJson{
- Accounts: []*utils.DynamicBoolOpt{
+ Accounts: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Attributes: []*utils.DynamicBoolOpt{
+ Attributes: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Chargers: []*utils.DynamicBoolOpt{
+ Chargers: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Export: []*utils.DynamicBoolOpt{
+ Export: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Rates: []*utils.DynamicBoolOpt{
+ Rates: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Stats: []*utils.DynamicBoolOpt{
+ Stats: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Thresholds: []*utils.DynamicBoolOpt{
+ Thresholds: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
diff --git a/config/config.go b/config/config.go
index b79d84a90..6ee913363 100644
--- a/config/config.go
+++ b/config/config.go
@@ -100,7 +100,7 @@ func newCGRConfig(config []byte) (cfg *CGRConfig, err error) {
generalCfg: &GeneralCfg{
NodeID: utils.UUIDSha1Prefix(),
Opts: &GeneralOpts{
- ExporterIDs: []*utils.DynamicStringSliceOpt{},
+ ExporterIDs: []*DynamicStringSliceOpt{},
},
},
loggerCfg: &LoggerCfg{
@@ -123,57 +123,57 @@ func newCGRConfig(config []byte) (cfg *CGRConfig, err error) {
},
filterSCfg: new(FilterSCfg),
cdrsCfg: &CdrsCfg{Opts: &CdrsOpts{
- Accounts: []*utils.DynamicBoolOpt{},
- Attributes: []*utils.DynamicBoolOpt{},
- Chargers: []*utils.DynamicBoolOpt{},
- Export: []*utils.DynamicBoolOpt{},
- Rates: []*utils.DynamicBoolOpt{},
- Stats: []*utils.DynamicBoolOpt{},
- Thresholds: []*utils.DynamicBoolOpt{},
- Refund: []*utils.DynamicBoolOpt{},
- Rerate: []*utils.DynamicBoolOpt{},
- Store: []*utils.DynamicBoolOpt{},
+ Accounts: []*DynamicBoolOpt{},
+ Attributes: []*DynamicBoolOpt{},
+ Chargers: []*DynamicBoolOpt{},
+ Export: []*DynamicBoolOpt{},
+ Rates: []*DynamicBoolOpt{},
+ Stats: []*DynamicBoolOpt{},
+ Thresholds: []*DynamicBoolOpt{},
+ Refund: []*DynamicBoolOpt{},
+ Rerate: []*DynamicBoolOpt{},
+ Store: []*DynamicBoolOpt{},
}},
analyzerSCfg: &AnalyzerSCfg{
Opts: &AnalyzerSOpts{
- ExporterIDs: []*utils.DynamicStringSliceOpt{},
+ ExporterIDs: []*DynamicStringSliceOpt{},
},
},
sessionSCfg: &SessionSCfg{
STIRCfg: new(STIRcfg),
DefaultUsage: make(map[string]time.Duration),
Opts: &SessionsOpts{
- Accounts: []*utils.DynamicBoolOpt{},
- Attributes: []*utils.DynamicBoolOpt{},
- CDRs: []*utils.DynamicBoolOpt{},
- Chargers: []*utils.DynamicBoolOpt{},
- Resources: []*utils.DynamicBoolOpt{},
- Routes: []*utils.DynamicBoolOpt{},
- Stats: []*utils.DynamicBoolOpt{},
- Thresholds: []*utils.DynamicBoolOpt{},
- Initiate: []*utils.DynamicBoolOpt{},
- Update: []*utils.DynamicBoolOpt{},
- Terminate: []*utils.DynamicBoolOpt{},
- Message: []*utils.DynamicBoolOpt{},
- AttributesDerivedReply: []*utils.DynamicBoolOpt{},
- BlockerError: []*utils.DynamicBoolOpt{},
- CDRsDerivedReply: []*utils.DynamicBoolOpt{},
- ResourcesAuthorize: []*utils.DynamicBoolOpt{},
- ResourcesAllocate: []*utils.DynamicBoolOpt{},
- ResourcesRelease: []*utils.DynamicBoolOpt{},
- ResourcesDerivedReply: []*utils.DynamicBoolOpt{},
- RoutesDerivedReply: []*utils.DynamicBoolOpt{},
- StatsDerivedReply: []*utils.DynamicBoolOpt{},
- ThresholdsDerivedReply: []*utils.DynamicBoolOpt{},
- MaxUsage: []*utils.DynamicBoolOpt{},
- ForceDuration: []*utils.DynamicBoolOpt{},
- TTL: []*utils.DynamicDurationOpt{},
- Chargeable: []*utils.DynamicBoolOpt{},
- TTLLastUsage: []*utils.DynamicDurationPointerOpt{},
- TTLLastUsed: []*utils.DynamicDurationPointerOpt{},
- DebitInterval: []*utils.DynamicDurationOpt{},
- TTLMaxDelay: []*utils.DynamicDurationOpt{},
- TTLUsage: []*utils.DynamicDurationPointerOpt{},
+ Accounts: []*DynamicBoolOpt{},
+ Attributes: []*DynamicBoolOpt{},
+ CDRs: []*DynamicBoolOpt{},
+ Chargers: []*DynamicBoolOpt{},
+ Resources: []*DynamicBoolOpt{},
+ Routes: []*DynamicBoolOpt{},
+ Stats: []*DynamicBoolOpt{},
+ Thresholds: []*DynamicBoolOpt{},
+ Initiate: []*DynamicBoolOpt{},
+ Update: []*DynamicBoolOpt{},
+ Terminate: []*DynamicBoolOpt{},
+ Message: []*DynamicBoolOpt{},
+ AttributesDerivedReply: []*DynamicBoolOpt{},
+ BlockerError: []*DynamicBoolOpt{},
+ CDRsDerivedReply: []*DynamicBoolOpt{},
+ ResourcesAuthorize: []*DynamicBoolOpt{},
+ ResourcesAllocate: []*DynamicBoolOpt{},
+ ResourcesRelease: []*DynamicBoolOpt{},
+ ResourcesDerivedReply: []*DynamicBoolOpt{},
+ RoutesDerivedReply: []*DynamicBoolOpt{},
+ StatsDerivedReply: []*DynamicBoolOpt{},
+ ThresholdsDerivedReply: []*DynamicBoolOpt{},
+ MaxUsage: []*DynamicBoolOpt{},
+ ForceDuration: []*DynamicBoolOpt{},
+ TTL: []*DynamicDurationOpt{},
+ Chargeable: []*DynamicBoolOpt{},
+ TTLLastUsage: []*DynamicDurationPointerOpt{},
+ TTLLastUsed: []*DynamicDurationPointerOpt{},
+ DebitInterval: []*DynamicDurationOpt{},
+ TTLMaxDelay: []*DynamicDurationOpt{},
+ TTLUsage: []*DynamicDurationPointerOpt{},
},
},
fsAgentCfg: new(FsAgentCfg),
@@ -187,43 +187,43 @@ func newCGRConfig(config []byte) (cfg *CGRConfig, err error) {
dnsAgentCfg: new(DNSAgentCfg),
janusAgentCfg: new(JanusAgentCfg),
attributeSCfg: &AttributeSCfg{Opts: &AttributesOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- ProcessRuns: []*utils.DynamicIntOpt{},
- ProfileRuns: []*utils.DynamicIntOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ ProcessRuns: []*DynamicIntOpt{},
+ ProfileRuns: []*DynamicIntOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
}},
chargerSCfg: new(ChargerSCfg),
resourceSCfg: &ResourceSConfig{Opts: &ResourcesOpts{
- UsageID: []*utils.DynamicStringOpt{},
- UsageTTL: []*utils.DynamicDurationOpt{},
- Units: []*utils.DynamicFloat64Opt{},
+ UsageID: []*DynamicStringOpt{},
+ UsageTTL: []*DynamicDurationOpt{},
+ Units: []*DynamicFloat64Opt{},
}},
trendSCfg: new(TrendSCfg),
rankingSCfg: new(RankingSCfg),
statsCfg: &StatSCfg{Opts: &StatsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
- RoundingDecimals: []*utils.DynamicIntOpt{},
- PrometheusStatIDs: []*utils.DynamicStringSliceOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
+ RoundingDecimals: []*DynamicIntOpt{},
+ PrometheusStatIDs: []*DynamicStringSliceOpt{},
}},
thresholdSCfg: &ThresholdSCfg{Opts: &ThresholdsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
}},
routeSCfg: &RouteSCfg{Opts: &RoutesOpts{
- Context: []*utils.DynamicStringOpt{},
- IgnoreErrors: []*utils.DynamicBoolOpt{},
- MaxCost: []*utils.DynamicInterfaceOpt{},
- ProfileCount: []*utils.DynamicIntPointerOpt{},
- Limit: []*utils.DynamicIntPointerOpt{},
- Offset: []*utils.DynamicIntPointerOpt{},
- MaxItems: []*utils.DynamicIntPointerOpt{},
- Usage: []*utils.DynamicDecimalBigOpt{},
+ Context: []*DynamicStringOpt{},
+ IgnoreErrors: []*DynamicBoolOpt{},
+ MaxCost: []*DynamicInterfaceOpt{},
+ ProfileCount: []*DynamicIntPointerOpt{},
+ Limit: []*DynamicIntPointerOpt{},
+ Offset: []*DynamicIntPointerOpt{},
+ MaxItems: []*DynamicIntPointerOpt{},
+ Usage: []*DynamicDecimalOpt{},
}},
tpeSCfg: new(TpeSCfg),
sureTaxCfg: new(SureTaxCfg),
dispatcherSCfg: &DispatcherSCfg{Opts: &DispatchersOpts{
- Dispatchers: []*utils.DynamicBoolOpt{},
+ Dispatchers: []*DynamicBoolOpt{},
}},
registrarCCfg: &RegistrarCCfgs{
RPC: &RegistrarCCfg{Hosts: make(map[string][]*RemoteHost)},
@@ -239,17 +239,17 @@ func newCGRConfig(config []byte) (cfg *CGRConfig, err error) {
ersCfg: new(ERsCfg),
eesCfg: &EEsCfg{Cache: make(map[string]*CacheParamCfg)},
rateSCfg: &RateSCfg{Opts: &RatesOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- StartTime: []*utils.DynamicStringOpt{},
- Usage: []*utils.DynamicDecimalBigOpt{},
- IntervalStart: []*utils.DynamicDecimalBigOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ StartTime: []*DynamicStringOpt{},
+ Usage: []*DynamicDecimalOpt{},
+ IntervalStart: []*DynamicDecimalOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
}},
efsCfg: new(EFsCfg),
actionSCfg: &ActionSCfg{Opts: &ActionsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
- PosterAttempts: []*utils.DynamicIntOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
+ PosterAttempts: []*DynamicIntOpt{},
}},
sipAgentCfg: new(SIPAgentCfg),
configSCfg: new(ConfigSCfg),
@@ -257,9 +257,9 @@ func newCGRConfig(config []byte) (cfg *CGRConfig, err error) {
sentryPeerCfg: new(SentryPeerCfg),
coreSCfg: new(CoreSCfg),
accountSCfg: &AccountSCfg{Opts: &AccountsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- Usage: []*utils.DynamicDecimalBigOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ Usage: []*DynamicDecimalOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
}},
configDBCfg: &ConfigDBCfg{
Opts: &DataDBOpts{},
diff --git a/config/config_it_test.go b/config/config_it_test.go
index 8aad8a2d2..3f7fff0d7 100644
--- a/config/config_it_test.go
+++ b/config/config_it_test.go
@@ -157,10 +157,10 @@ func testCGRConfigReloadAttributeS(t *testing.T) {
NotExistsIndexedFields: &[]string{},
IndexedSelects: true,
Opts: &AttributesOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- ProcessRuns: []*utils.DynamicIntOpt{},
- ProfileRuns: []*utils.DynamicIntOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ ProcessRuns: []*DynamicIntOpt{},
+ ProfileRuns: []*DynamicIntOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
},
}
if !reflect.DeepEqual(expAttr, cfg.AttributeSCfg()) {
@@ -198,10 +198,10 @@ func testCGRConfigReloadAttributeSWithDB(t *testing.T) {
NotExistsIndexedFields: &[]string{},
IndexedSelects: true,
Opts: &AttributesOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- ProcessRuns: []*utils.DynamicIntOpt{},
- ProfileRuns: []*utils.DynamicIntOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ ProcessRuns: []*DynamicIntOpt{},
+ ProfileRuns: []*DynamicIntOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
},
}
if !reflect.DeepEqual(expAttr, cfg.AttributeSCfg()) {
@@ -276,8 +276,8 @@ func testCGRConfigReloadThresholdS(t *testing.T) {
ActionSConns: []string{},
IndexedSelects: true,
Opts: &ThresholdsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
},
}
if !reflect.DeepEqual(expAttr, cfg.ThresholdSCfg()) {
@@ -307,10 +307,10 @@ func testCGRConfigReloadStatS(t *testing.T) {
IndexedSelects: true,
ThresholdSConns: []string{utils.MetaLocalHost},
Opts: &StatsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
- RoundingDecimals: []*utils.DynamicIntOpt{},
- PrometheusStatIDs: []*utils.DynamicStringSliceOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
+ RoundingDecimals: []*DynamicIntOpt{},
+ PrometheusStatIDs: []*DynamicStringSliceOpt{},
},
EEsConns: []string{},
}
@@ -341,9 +341,9 @@ func testCGRConfigReloadResourceS(t *testing.T) {
IndexedSelects: true,
ThresholdSConns: []string{utils.MetaLocalHost},
Opts: &ResourcesOpts{
- UsageID: []*utils.DynamicStringOpt{},
- UsageTTL: []*utils.DynamicDurationOpt{},
- Units: []*utils.DynamicFloat64Opt{},
+ UsageID: []*DynamicStringOpt{},
+ UsageTTL: []*DynamicDurationOpt{},
+ Units: []*DynamicFloat64Opt{},
},
}
if !reflect.DeepEqual(expAttr, cfg.ResourceSCfg()) {
@@ -378,14 +378,14 @@ func testCGRConfigReloadSupplierS(t *testing.T) {
IndexedSelects: true,
DefaultRatio: 1,
Opts: &RoutesOpts{
- Context: []*utils.DynamicStringOpt{},
- ProfileCount: []*utils.DynamicIntPointerOpt{},
- IgnoreErrors: []*utils.DynamicBoolOpt{},
- MaxCost: []*utils.DynamicInterfaceOpt{},
- Limit: []*utils.DynamicIntPointerOpt{},
- Offset: []*utils.DynamicIntPointerOpt{},
- Usage: []*utils.DynamicDecimalBigOpt{},
- MaxItems: []*utils.DynamicIntPointerOpt{},
+ Context: []*DynamicStringOpt{},
+ ProfileCount: []*DynamicIntPointerOpt{},
+ IgnoreErrors: []*DynamicBoolOpt{},
+ MaxCost: []*DynamicInterfaceOpt{},
+ Limit: []*DynamicIntPointerOpt{},
+ Offset: []*DynamicIntPointerOpt{},
+ Usage: []*DynamicDecimalOpt{},
+ MaxItems: []*DynamicIntPointerOpt{},
},
}
if !reflect.DeepEqual(expAttr, cfg.RouteSCfg()) {
@@ -826,37 +826,37 @@ func testCGRConfigReloadConfigFromJSONSessionS(t *testing.T) {
utils.MetaSMS: 1,
},
Opts: &SessionsOpts{
- Accounts: []*utils.DynamicBoolOpt{},
- Attributes: []*utils.DynamicBoolOpt{},
- CDRs: []*utils.DynamicBoolOpt{},
- Chargers: []*utils.DynamicBoolOpt{},
- Resources: []*utils.DynamicBoolOpt{},
- Routes: []*utils.DynamicBoolOpt{},
- Stats: []*utils.DynamicBoolOpt{},
- Thresholds: []*utils.DynamicBoolOpt{},
- Initiate: []*utils.DynamicBoolOpt{},
- Update: []*utils.DynamicBoolOpt{},
- Terminate: []*utils.DynamicBoolOpt{},
- Message: []*utils.DynamicBoolOpt{},
- AttributesDerivedReply: []*utils.DynamicBoolOpt{},
- BlockerError: []*utils.DynamicBoolOpt{},
- CDRsDerivedReply: []*utils.DynamicBoolOpt{},
- ResourcesAuthorize: []*utils.DynamicBoolOpt{},
- ResourcesAllocate: []*utils.DynamicBoolOpt{},
- ResourcesRelease: []*utils.DynamicBoolOpt{},
- ResourcesDerivedReply: []*utils.DynamicBoolOpt{},
- RoutesDerivedReply: []*utils.DynamicBoolOpt{},
- StatsDerivedReply: []*utils.DynamicBoolOpt{},
- ThresholdsDerivedReply: []*utils.DynamicBoolOpt{},
- MaxUsage: []*utils.DynamicBoolOpt{},
- ForceDuration: []*utils.DynamicBoolOpt{},
- TTL: []*utils.DynamicDurationOpt{},
- Chargeable: []*utils.DynamicBoolOpt{},
- TTLLastUsage: []*utils.DynamicDurationPointerOpt{},
- TTLLastUsed: []*utils.DynamicDurationPointerOpt{},
- DebitInterval: []*utils.DynamicDurationOpt{},
- TTLMaxDelay: []*utils.DynamicDurationOpt{},
- TTLUsage: []*utils.DynamicDurationPointerOpt{},
+ Accounts: []*DynamicBoolOpt{},
+ Attributes: []*DynamicBoolOpt{},
+ CDRs: []*DynamicBoolOpt{},
+ Chargers: []*DynamicBoolOpt{},
+ Resources: []*DynamicBoolOpt{},
+ Routes: []*DynamicBoolOpt{},
+ Stats: []*DynamicBoolOpt{},
+ Thresholds: []*DynamicBoolOpt{},
+ Initiate: []*DynamicBoolOpt{},
+ Update: []*DynamicBoolOpt{},
+ Terminate: []*DynamicBoolOpt{},
+ Message: []*DynamicBoolOpt{},
+ AttributesDerivedReply: []*DynamicBoolOpt{},
+ BlockerError: []*DynamicBoolOpt{},
+ CDRsDerivedReply: []*DynamicBoolOpt{},
+ ResourcesAuthorize: []*DynamicBoolOpt{},
+ ResourcesAllocate: []*DynamicBoolOpt{},
+ ResourcesRelease: []*DynamicBoolOpt{},
+ ResourcesDerivedReply: []*DynamicBoolOpt{},
+ RoutesDerivedReply: []*DynamicBoolOpt{},
+ StatsDerivedReply: []*DynamicBoolOpt{},
+ ThresholdsDerivedReply: []*DynamicBoolOpt{},
+ MaxUsage: []*DynamicBoolOpt{},
+ ForceDuration: []*DynamicBoolOpt{},
+ TTL: []*DynamicDurationOpt{},
+ Chargeable: []*DynamicBoolOpt{},
+ TTLLastUsage: []*DynamicDurationPointerOpt{},
+ TTLLastUsed: []*DynamicDurationPointerOpt{},
+ DebitInterval: []*DynamicDurationOpt{},
+ TTLMaxDelay: []*DynamicDurationOpt{},
+ TTLUsage: []*DynamicDurationPointerOpt{},
},
}
if !reflect.DeepEqual(expAttr, cfg.SessionSCfg()) {
@@ -914,37 +914,37 @@ func testCGRConfigReloadConfigFromStringSessionS(t *testing.T) {
utils.MetaSMS: 1,
},
Opts: &SessionsOpts{
- Accounts: []*utils.DynamicBoolOpt{},
- Attributes: []*utils.DynamicBoolOpt{},
- CDRs: []*utils.DynamicBoolOpt{},
- Chargers: []*utils.DynamicBoolOpt{},
- Resources: []*utils.DynamicBoolOpt{},
- Routes: []*utils.DynamicBoolOpt{},
- Stats: []*utils.DynamicBoolOpt{},
- Thresholds: []*utils.DynamicBoolOpt{},
- Initiate: []*utils.DynamicBoolOpt{},
- Update: []*utils.DynamicBoolOpt{},
- Terminate: []*utils.DynamicBoolOpt{},
- Message: []*utils.DynamicBoolOpt{},
- AttributesDerivedReply: []*utils.DynamicBoolOpt{},
- BlockerError: []*utils.DynamicBoolOpt{},
- CDRsDerivedReply: []*utils.DynamicBoolOpt{},
- ResourcesAuthorize: []*utils.DynamicBoolOpt{},
- ResourcesAllocate: []*utils.DynamicBoolOpt{},
- ResourcesRelease: []*utils.DynamicBoolOpt{},
- ResourcesDerivedReply: []*utils.DynamicBoolOpt{},
- RoutesDerivedReply: []*utils.DynamicBoolOpt{},
- StatsDerivedReply: []*utils.DynamicBoolOpt{},
- ThresholdsDerivedReply: []*utils.DynamicBoolOpt{},
- MaxUsage: []*utils.DynamicBoolOpt{},
- ForceDuration: []*utils.DynamicBoolOpt{},
- TTL: []*utils.DynamicDurationOpt{},
- Chargeable: []*utils.DynamicBoolOpt{},
- TTLLastUsage: []*utils.DynamicDurationPointerOpt{},
- TTLLastUsed: []*utils.DynamicDurationPointerOpt{},
- DebitInterval: []*utils.DynamicDurationOpt{},
- TTLMaxDelay: []*utils.DynamicDurationOpt{},
- TTLUsage: []*utils.DynamicDurationPointerOpt{},
+ Accounts: []*DynamicBoolOpt{},
+ Attributes: []*DynamicBoolOpt{},
+ CDRs: []*DynamicBoolOpt{},
+ Chargers: []*DynamicBoolOpt{},
+ Resources: []*DynamicBoolOpt{},
+ Routes: []*DynamicBoolOpt{},
+ Stats: []*DynamicBoolOpt{},
+ Thresholds: []*DynamicBoolOpt{},
+ Initiate: []*DynamicBoolOpt{},
+ Update: []*DynamicBoolOpt{},
+ Terminate: []*DynamicBoolOpt{},
+ Message: []*DynamicBoolOpt{},
+ AttributesDerivedReply: []*DynamicBoolOpt{},
+ BlockerError: []*DynamicBoolOpt{},
+ CDRsDerivedReply: []*DynamicBoolOpt{},
+ ResourcesAuthorize: []*DynamicBoolOpt{},
+ ResourcesAllocate: []*DynamicBoolOpt{},
+ ResourcesRelease: []*DynamicBoolOpt{},
+ ResourcesDerivedReply: []*DynamicBoolOpt{},
+ RoutesDerivedReply: []*DynamicBoolOpt{},
+ StatsDerivedReply: []*DynamicBoolOpt{},
+ ThresholdsDerivedReply: []*DynamicBoolOpt{},
+ MaxUsage: []*DynamicBoolOpt{},
+ ForceDuration: []*DynamicBoolOpt{},
+ TTL: []*DynamicDurationOpt{},
+ Chargeable: []*DynamicBoolOpt{},
+ TTLLastUsage: []*DynamicDurationPointerOpt{},
+ TTLLastUsed: []*DynamicDurationPointerOpt{},
+ DebitInterval: []*DynamicDurationOpt{},
+ TTLMaxDelay: []*DynamicDurationOpt{},
+ TTLUsage: []*DynamicDurationPointerOpt{},
},
}
if !reflect.DeepEqual(expAttr, cfg.SessionSCfg()) {
@@ -1005,37 +1005,37 @@ func testCGRConfigReloadAll(t *testing.T) {
utils.MetaSMS: 1,
},
Opts: &SessionsOpts{
- Accounts: []*utils.DynamicBoolOpt{},
- Attributes: []*utils.DynamicBoolOpt{},
- CDRs: []*utils.DynamicBoolOpt{},
- Chargers: []*utils.DynamicBoolOpt{},
- Resources: []*utils.DynamicBoolOpt{},
- Routes: []*utils.DynamicBoolOpt{},
- Stats: []*utils.DynamicBoolOpt{},
- Thresholds: []*utils.DynamicBoolOpt{},
- Initiate: []*utils.DynamicBoolOpt{},
- Update: []*utils.DynamicBoolOpt{},
- Terminate: []*utils.DynamicBoolOpt{},
- Message: []*utils.DynamicBoolOpt{},
- AttributesDerivedReply: []*utils.DynamicBoolOpt{},
- BlockerError: []*utils.DynamicBoolOpt{},
- CDRsDerivedReply: []*utils.DynamicBoolOpt{},
- ResourcesAuthorize: []*utils.DynamicBoolOpt{},
- ResourcesAllocate: []*utils.DynamicBoolOpt{},
- ResourcesRelease: []*utils.DynamicBoolOpt{},
- ResourcesDerivedReply: []*utils.DynamicBoolOpt{},
- RoutesDerivedReply: []*utils.DynamicBoolOpt{},
- StatsDerivedReply: []*utils.DynamicBoolOpt{},
- ThresholdsDerivedReply: []*utils.DynamicBoolOpt{},
- MaxUsage: []*utils.DynamicBoolOpt{},
- ForceDuration: []*utils.DynamicBoolOpt{},
- TTL: []*utils.DynamicDurationOpt{},
- Chargeable: []*utils.DynamicBoolOpt{},
- TTLLastUsage: []*utils.DynamicDurationPointerOpt{},
- TTLLastUsed: []*utils.DynamicDurationPointerOpt{},
- DebitInterval: []*utils.DynamicDurationOpt{},
- TTLMaxDelay: []*utils.DynamicDurationOpt{},
- TTLUsage: []*utils.DynamicDurationPointerOpt{},
+ Accounts: []*DynamicBoolOpt{},
+ Attributes: []*DynamicBoolOpt{},
+ CDRs: []*DynamicBoolOpt{},
+ Chargers: []*DynamicBoolOpt{},
+ Resources: []*DynamicBoolOpt{},
+ Routes: []*DynamicBoolOpt{},
+ Stats: []*DynamicBoolOpt{},
+ Thresholds: []*DynamicBoolOpt{},
+ Initiate: []*DynamicBoolOpt{},
+ Update: []*DynamicBoolOpt{},
+ Terminate: []*DynamicBoolOpt{},
+ Message: []*DynamicBoolOpt{},
+ AttributesDerivedReply: []*DynamicBoolOpt{},
+ BlockerError: []*DynamicBoolOpt{},
+ CDRsDerivedReply: []*DynamicBoolOpt{},
+ ResourcesAuthorize: []*DynamicBoolOpt{},
+ ResourcesAllocate: []*DynamicBoolOpt{},
+ ResourcesRelease: []*DynamicBoolOpt{},
+ ResourcesDerivedReply: []*DynamicBoolOpt{},
+ RoutesDerivedReply: []*DynamicBoolOpt{},
+ StatsDerivedReply: []*DynamicBoolOpt{},
+ ThresholdsDerivedReply: []*DynamicBoolOpt{},
+ MaxUsage: []*DynamicBoolOpt{},
+ ForceDuration: []*DynamicBoolOpt{},
+ TTL: []*DynamicDurationOpt{},
+ Chargeable: []*DynamicBoolOpt{},
+ TTLLastUsage: []*DynamicDurationPointerOpt{},
+ TTLLastUsed: []*DynamicDurationPointerOpt{},
+ DebitInterval: []*DynamicDurationOpt{},
+ TTLMaxDelay: []*DynamicDurationOpt{},
+ TTLUsage: []*DynamicDurationPointerOpt{},
},
}
if !reflect.DeepEqual(expAttr, cfg.SessionSCfg()) {
@@ -1519,7 +1519,7 @@ func TestReloadCfgInDb(t *testing.T) {
ExistsIndexedFields: &[]string{"field1"},
NotExistsIndexedFields: &[]string{"field1"},
Opts: &AttributesOpts{
- ProcessRuns: []*utils.DynamicIntOpt{
+ ProcessRuns: []*DynamicIntOpt{
{
FilterIDs: []string{},
Value: 2,
@@ -1544,7 +1544,7 @@ func TestReloadCfgInDb(t *testing.T) {
Exists_indexed_fields: &[]string{"field2"},
Notexists_indexed_fields: &[]string{"field2"},
Opts: &AttributesOptsJson{
- ProcessRuns: []*utils.DynamicIntOpt{
+ ProcessRuns: []*DynamicIntOpt{
{
Value: 3,
},
@@ -1565,7 +1565,7 @@ func TestReloadCfgInDb(t *testing.T) {
ExistsIndexedFields: &[]string{"field2"},
NotExistsIndexedFields: &[]string{"field2"},
Opts: &AttributesOpts{
- ProcessRuns: []*utils.DynamicIntOpt{
+ ProcessRuns: []*DynamicIntOpt{
{
FilterIDs: []string{},
Value: 2,
diff --git a/config/config_test.go b/config/config_test.go
index 60c8f486a..145bf94b1 100644
--- a/config/config_test.go
+++ b/config/config_test.go
@@ -319,16 +319,16 @@ func TestCgrCfgJSONDefaultsCDRS(t *testing.T) {
AccountSConns: []string{},
ExtraFields: RSRParsers{},
Opts: &CdrsOpts{
- Accounts: []*utils.DynamicBoolOpt{},
- Attributes: []*utils.DynamicBoolOpt{},
- Chargers: []*utils.DynamicBoolOpt{},
- Export: []*utils.DynamicBoolOpt{},
- Rates: []*utils.DynamicBoolOpt{},
- Stats: []*utils.DynamicBoolOpt{},
- Thresholds: []*utils.DynamicBoolOpt{},
- Refund: []*utils.DynamicBoolOpt{},
- Rerate: []*utils.DynamicBoolOpt{},
- Store: []*utils.DynamicBoolOpt{},
+ Accounts: []*DynamicBoolOpt{},
+ Attributes: []*DynamicBoolOpt{},
+ Chargers: []*DynamicBoolOpt{},
+ Export: []*DynamicBoolOpt{},
+ Rates: []*DynamicBoolOpt{},
+ Stats: []*DynamicBoolOpt{},
+ Thresholds: []*DynamicBoolOpt{},
+ Refund: []*DynamicBoolOpt{},
+ Rerate: []*DynamicBoolOpt{},
+ Store: []*DynamicBoolOpt{},
},
}
if !reflect.DeepEqual(eCdrsCfg, cgrCfg.cdrsCfg) {
@@ -391,37 +391,37 @@ func TestCgrCfgJSONDefaultsSMGenericCfg(t *testing.T) {
utils.MetaSMS: 1,
},
Opts: &SessionsOpts{
- Accounts: []*utils.DynamicBoolOpt{},
- Attributes: []*utils.DynamicBoolOpt{},
- CDRs: []*utils.DynamicBoolOpt{},
- Chargers: []*utils.DynamicBoolOpt{},
- Resources: []*utils.DynamicBoolOpt{},
- Routes: []*utils.DynamicBoolOpt{},
- Stats: []*utils.DynamicBoolOpt{},
- Thresholds: []*utils.DynamicBoolOpt{},
- Initiate: []*utils.DynamicBoolOpt{},
- Update: []*utils.DynamicBoolOpt{},
- Terminate: []*utils.DynamicBoolOpt{},
- Message: []*utils.DynamicBoolOpt{},
- AttributesDerivedReply: []*utils.DynamicBoolOpt{},
- BlockerError: []*utils.DynamicBoolOpt{},
- CDRsDerivedReply: []*utils.DynamicBoolOpt{},
- ResourcesAuthorize: []*utils.DynamicBoolOpt{},
- ResourcesAllocate: []*utils.DynamicBoolOpt{},
- ResourcesRelease: []*utils.DynamicBoolOpt{},
- ResourcesDerivedReply: []*utils.DynamicBoolOpt{},
- RoutesDerivedReply: []*utils.DynamicBoolOpt{},
- StatsDerivedReply: []*utils.DynamicBoolOpt{},
- ThresholdsDerivedReply: []*utils.DynamicBoolOpt{},
- MaxUsage: []*utils.DynamicBoolOpt{},
- ForceDuration: []*utils.DynamicBoolOpt{},
- TTL: []*utils.DynamicDurationOpt{},
- Chargeable: []*utils.DynamicBoolOpt{},
- TTLLastUsage: []*utils.DynamicDurationPointerOpt{},
- TTLLastUsed: []*utils.DynamicDurationPointerOpt{},
- DebitInterval: []*utils.DynamicDurationOpt{},
- TTLMaxDelay: []*utils.DynamicDurationOpt{},
- TTLUsage: []*utils.DynamicDurationPointerOpt{},
+ Accounts: []*DynamicBoolOpt{},
+ Attributes: []*DynamicBoolOpt{},
+ CDRs: []*DynamicBoolOpt{},
+ Chargers: []*DynamicBoolOpt{},
+ Resources: []*DynamicBoolOpt{},
+ Routes: []*DynamicBoolOpt{},
+ Stats: []*DynamicBoolOpt{},
+ Thresholds: []*DynamicBoolOpt{},
+ Initiate: []*DynamicBoolOpt{},
+ Update: []*DynamicBoolOpt{},
+ Terminate: []*DynamicBoolOpt{},
+ Message: []*DynamicBoolOpt{},
+ AttributesDerivedReply: []*DynamicBoolOpt{},
+ BlockerError: []*DynamicBoolOpt{},
+ CDRsDerivedReply: []*DynamicBoolOpt{},
+ ResourcesAuthorize: []*DynamicBoolOpt{},
+ ResourcesAllocate: []*DynamicBoolOpt{},
+ ResourcesRelease: []*DynamicBoolOpt{},
+ ResourcesDerivedReply: []*DynamicBoolOpt{},
+ RoutesDerivedReply: []*DynamicBoolOpt{},
+ StatsDerivedReply: []*DynamicBoolOpt{},
+ ThresholdsDerivedReply: []*DynamicBoolOpt{},
+ MaxUsage: []*DynamicBoolOpt{},
+ ForceDuration: []*DynamicBoolOpt{},
+ TTL: []*DynamicDurationOpt{},
+ Chargeable: []*DynamicBoolOpt{},
+ TTLLastUsage: []*DynamicDurationPointerOpt{},
+ TTLLastUsed: []*DynamicDurationPointerOpt{},
+ DebitInterval: []*DynamicDurationOpt{},
+ TTLMaxDelay: []*DynamicDurationOpt{},
+ TTLUsage: []*DynamicDurationPointerOpt{},
},
}
if !reflect.DeepEqual(eSessionSCfg, cgrCfg.sessionSCfg) {
@@ -602,9 +602,9 @@ func TestCgrCfgJSONDefaultsResLimCfg(t *testing.T) {
ExistsIndexedFields: &[]string{},
NotExistsIndexedFields: &[]string{},
Opts: &ResourcesOpts{
- UsageID: []*utils.DynamicStringOpt{},
- UsageTTL: []*utils.DynamicDurationOpt{},
- Units: []*utils.DynamicFloat64Opt{},
+ UsageID: []*DynamicStringOpt{},
+ UsageTTL: []*DynamicDurationOpt{},
+ Units: []*DynamicFloat64Opt{},
},
}
if !reflect.DeepEqual(cgrCfg.resourceSCfg, eResLiCfg) {
@@ -625,10 +625,10 @@ func TestCgrCfgJSONDefaultStatsCfg(t *testing.T) {
ExistsIndexedFields: &[]string{},
NotExistsIndexedFields: &[]string{},
Opts: &StatsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
- RoundingDecimals: []*utils.DynamicIntOpt{},
- PrometheusStatIDs: []*utils.DynamicStringSliceOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
+ RoundingDecimals: []*DynamicIntOpt{},
+ PrometheusStatIDs: []*DynamicStringSliceOpt{},
},
EEsConns: []string{},
}
@@ -649,8 +649,8 @@ func TestCgrCfgJSONDefaultThresholdSCfg(t *testing.T) {
NotExistsIndexedFields: &[]string{},
ActionSConns: []string{},
Opts: &ThresholdsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
},
}
if !reflect.DeepEqual(eThresholdSCfg, cgrCfg.thresholdSCfg) {
@@ -674,14 +674,14 @@ func TestCgrCfgJSONDefaultRouteSCfg(t *testing.T) {
AccountSConns: []string{},
DefaultRatio: 1,
Opts: &RoutesOpts{
- Context: []*utils.DynamicStringOpt{},
- ProfileCount: []*utils.DynamicIntPointerOpt{},
- IgnoreErrors: []*utils.DynamicBoolOpt{},
- MaxCost: []*utils.DynamicInterfaceOpt{},
- Limit: []*utils.DynamicIntPointerOpt{},
- Offset: []*utils.DynamicIntPointerOpt{},
- MaxItems: []*utils.DynamicIntPointerOpt{},
- Usage: []*utils.DynamicDecimalBigOpt{},
+ Context: []*DynamicStringOpt{},
+ ProfileCount: []*DynamicIntPointerOpt{},
+ IgnoreErrors: []*DynamicBoolOpt{},
+ MaxCost: []*DynamicInterfaceOpt{},
+ Limit: []*DynamicIntPointerOpt{},
+ Offset: []*DynamicIntPointerOpt{},
+ MaxItems: []*DynamicIntPointerOpt{},
+ Usage: []*DynamicDecimalOpt{},
},
}
if !reflect.DeepEqual(eSupplSCfg, cgrCfg.routeSCfg) {
@@ -1608,10 +1608,10 @@ func TestAttributeSConfig(t *testing.T) {
NotExistsIndexedFields: &[]string{},
NestedFields: false,
Opts: &AttributesOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- ProcessRuns: []*utils.DynamicIntOpt{},
- ProfileRuns: []*utils.DynamicIntOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ ProcessRuns: []*DynamicIntOpt{},
+ ProfileRuns: []*DynamicIntOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
},
}
cgrConfig := NewDefaultCGRConfig()
@@ -1651,9 +1651,9 @@ func TestResourceSConfig(t *testing.T) {
NotExistsIndexedFields: &[]string{},
NestedFields: false,
Opts: &ResourcesOpts{
- UsageID: []*utils.DynamicStringOpt{},
- UsageTTL: []*utils.DynamicDurationOpt{},
- Units: []*utils.DynamicFloat64Opt{},
+ UsageID: []*DynamicStringOpt{},
+ UsageTTL: []*DynamicDurationOpt{},
+ Units: []*DynamicFloat64Opt{},
},
}
cgrConfig := NewDefaultCGRConfig()
@@ -1676,10 +1676,10 @@ func TestStatSConfig(t *testing.T) {
NotExistsIndexedFields: &[]string{},
NestedFields: false,
Opts: &StatsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
- RoundingDecimals: []*utils.DynamicIntOpt{},
- PrometheusStatIDs: []*utils.DynamicStringSliceOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
+ RoundingDecimals: []*DynamicIntOpt{},
+ PrometheusStatIDs: []*DynamicStringSliceOpt{},
},
EEsConns: []string{},
}
@@ -1702,8 +1702,8 @@ func TestThresholdSConfig(t *testing.T) {
NestedFields: false,
ActionSConns: []string{},
Opts: &ThresholdsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
},
}
cgrConfig := NewDefaultCGRConfig()
@@ -1729,14 +1729,14 @@ func TestRouteSConfig(t *testing.T) {
DefaultRatio: 1,
NestedFields: false,
Opts: &RoutesOpts{
- Context: []*utils.DynamicStringOpt{},
- ProfileCount: []*utils.DynamicIntPointerOpt{},
- IgnoreErrors: []*utils.DynamicBoolOpt{},
- MaxCost: []*utils.DynamicInterfaceOpt{},
- Limit: []*utils.DynamicIntPointerOpt{},
- Offset: []*utils.DynamicIntPointerOpt{},
- MaxItems: []*utils.DynamicIntPointerOpt{},
- Usage: []*utils.DynamicDecimalBigOpt{},
+ Context: []*DynamicStringOpt{},
+ ProfileCount: []*DynamicIntPointerOpt{},
+ IgnoreErrors: []*DynamicBoolOpt{},
+ MaxCost: []*DynamicInterfaceOpt{},
+ Limit: []*DynamicIntPointerOpt{},
+ Offset: []*DynamicIntPointerOpt{},
+ MaxItems: []*DynamicIntPointerOpt{},
+ Usage: []*DynamicDecimalOpt{},
},
}
cgrConfig := NewDefaultCGRConfig()
@@ -1781,37 +1781,37 @@ func TestSessionSConfig(t *testing.T) {
utils.MetaSMS: 1,
},
Opts: &SessionsOpts{
- Accounts: []*utils.DynamicBoolOpt{},
- Attributes: []*utils.DynamicBoolOpt{},
- CDRs: []*utils.DynamicBoolOpt{},
- Chargers: []*utils.DynamicBoolOpt{},
- Resources: []*utils.DynamicBoolOpt{},
- Routes: []*utils.DynamicBoolOpt{},
- Stats: []*utils.DynamicBoolOpt{},
- Thresholds: []*utils.DynamicBoolOpt{},
- Initiate: []*utils.DynamicBoolOpt{},
- Update: []*utils.DynamicBoolOpt{},
- Terminate: []*utils.DynamicBoolOpt{},
- Message: []*utils.DynamicBoolOpt{},
- AttributesDerivedReply: []*utils.DynamicBoolOpt{},
- BlockerError: []*utils.DynamicBoolOpt{},
- CDRsDerivedReply: []*utils.DynamicBoolOpt{},
- ResourcesAuthorize: []*utils.DynamicBoolOpt{},
- ResourcesAllocate: []*utils.DynamicBoolOpt{},
- ResourcesRelease: []*utils.DynamicBoolOpt{},
- ResourcesDerivedReply: []*utils.DynamicBoolOpt{},
- RoutesDerivedReply: []*utils.DynamicBoolOpt{},
- StatsDerivedReply: []*utils.DynamicBoolOpt{},
- ThresholdsDerivedReply: []*utils.DynamicBoolOpt{},
- MaxUsage: []*utils.DynamicBoolOpt{},
- ForceDuration: []*utils.DynamicBoolOpt{},
- TTL: []*utils.DynamicDurationOpt{},
- Chargeable: []*utils.DynamicBoolOpt{},
- TTLLastUsage: []*utils.DynamicDurationPointerOpt{},
- TTLLastUsed: []*utils.DynamicDurationPointerOpt{},
- DebitInterval: []*utils.DynamicDurationOpt{},
- TTLMaxDelay: []*utils.DynamicDurationOpt{},
- TTLUsage: []*utils.DynamicDurationPointerOpt{},
+ Accounts: []*DynamicBoolOpt{},
+ Attributes: []*DynamicBoolOpt{},
+ CDRs: []*DynamicBoolOpt{},
+ Chargers: []*DynamicBoolOpt{},
+ Resources: []*DynamicBoolOpt{},
+ Routes: []*DynamicBoolOpt{},
+ Stats: []*DynamicBoolOpt{},
+ Thresholds: []*DynamicBoolOpt{},
+ Initiate: []*DynamicBoolOpt{},
+ Update: []*DynamicBoolOpt{},
+ Terminate: []*DynamicBoolOpt{},
+ Message: []*DynamicBoolOpt{},
+ AttributesDerivedReply: []*DynamicBoolOpt{},
+ BlockerError: []*DynamicBoolOpt{},
+ CDRsDerivedReply: []*DynamicBoolOpt{},
+ ResourcesAuthorize: []*DynamicBoolOpt{},
+ ResourcesAllocate: []*DynamicBoolOpt{},
+ ResourcesRelease: []*DynamicBoolOpt{},
+ ResourcesDerivedReply: []*DynamicBoolOpt{},
+ RoutesDerivedReply: []*DynamicBoolOpt{},
+ StatsDerivedReply: []*DynamicBoolOpt{},
+ ThresholdsDerivedReply: []*DynamicBoolOpt{},
+ MaxUsage: []*DynamicBoolOpt{},
+ ForceDuration: []*DynamicBoolOpt{},
+ TTL: []*DynamicDurationOpt{},
+ Chargeable: []*DynamicBoolOpt{},
+ TTLLastUsage: []*DynamicDurationPointerOpt{},
+ TTLLastUsed: []*DynamicDurationPointerOpt{},
+ DebitInterval: []*DynamicDurationOpt{},
+ TTLMaxDelay: []*DynamicDurationOpt{},
+ TTLUsage: []*DynamicDurationPointerOpt{},
},
}
cgrConfig := NewDefaultCGRConfig()
@@ -1955,7 +1955,7 @@ func TestDispatcherSConfig(t *testing.T) {
AttributeSConns: []string{},
NestedFields: false,
Opts: &DispatchersOpts{
- []*utils.DynamicBoolOpt{},
+ []*DynamicBoolOpt{},
},
}
cgrConfig := NewDefaultCGRConfig()
@@ -1974,7 +1974,7 @@ func TestAnalyzerConfig(t *testing.T) {
EEsConns: []string{},
TTL: 24 * time.Hour,
Opts: &AnalyzerSOpts{
- ExporterIDs: []*utils.DynamicStringSliceOpt{},
+ ExporterIDs: []*DynamicStringSliceOpt{},
},
}
cgrConfig := NewDefaultCGRConfig()
@@ -2094,11 +2094,11 @@ func TestRateSConfig(t *testing.T) {
RateNestedFields: false,
Verbosity: 1000,
Opts: &RatesOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- StartTime: []*utils.DynamicStringOpt{},
- Usage: []*utils.DynamicDecimalBigOpt{},
- IntervalStart: []*utils.DynamicDecimalBigOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ StartTime: []*DynamicStringOpt{},
+ Usage: []*DynamicDecimalOpt{},
+ IntervalStart: []*DynamicDecimalOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
},
}
cgrConfig := NewDefaultCGRConfig()
@@ -3348,7 +3348,7 @@ func TestCgrCfgJSONDefaultDispatcherSCfg(t *testing.T) {
NotExistsIndexedFields: &[]string{},
AttributeSConns: []string{},
Opts: &DispatchersOpts{
- []*utils.DynamicBoolOpt{},
+ []*DynamicBoolOpt{},
},
}
if !reflect.DeepEqual(cgrCfg.dispatcherSCfg, eDspSCfg) {
@@ -3474,7 +3474,7 @@ func TestCgrCfgJSONDefaultAnalyzerSCfg(t *testing.T) {
EEsConns: []string{},
TTL: 24 * time.Hour,
Opts: &AnalyzerSOpts{
- ExporterIDs: []*utils.DynamicStringSliceOpt{},
+ ExporterIDs: []*DynamicStringSliceOpt{},
},
}
if !reflect.DeepEqual(cgrCfg.analyzerSCfg, aSCfg) {
@@ -3536,11 +3536,11 @@ func TestCgrCfgJSONDefaultRateCfg(t *testing.T) {
RateNestedFields: false,
Verbosity: 1000,
Opts: &RatesOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- StartTime: []*utils.DynamicStringOpt{},
- Usage: []*utils.DynamicDecimalBigOpt{},
- IntervalStart: []*utils.DynamicDecimalBigOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ StartTime: []*DynamicStringOpt{},
+ Usage: []*DynamicDecimalOpt{},
+ IntervalStart: []*DynamicDecimalOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
},
}
if !reflect.DeepEqual(cgrCfg.rateSCfg, eCfg) {
@@ -3719,7 +3719,7 @@ func TestV1GetConfigGeneral(t *testing.T) {
utils.DecimalPrecisionCfg: 0,
utils.DecimalRoundingModeCfg: "*toNearestEven",
utils.OptsCfg: map[string]any{
- utils.MetaExporterIDs: []*utils.DynamicStringSliceOpt{},
+ utils.MetaExporterIDs: []*DynamicStringSliceOpt{},
},
}
expected = map[string]any{
@@ -3888,16 +3888,16 @@ func TestV1GetConfigCdrs(t *testing.T) {
utils.RateSConnsCfg: []string{},
utils.AccountSConnsCfg: []string{},
utils.OptsCfg: map[string]any{
- utils.MetaAccounts: []*utils.DynamicBoolOpt{},
- utils.MetaAttributes: []*utils.DynamicBoolOpt{},
- utils.MetaChargers: []*utils.DynamicBoolOpt{},
- utils.MetaEEs: []*utils.DynamicBoolOpt{},
- utils.MetaRates: []*utils.DynamicBoolOpt{},
- utils.MetaStats: []*utils.DynamicBoolOpt{},
- utils.MetaThresholds: []*utils.DynamicBoolOpt{},
- utils.MetaRefund: []*utils.DynamicBoolOpt{},
- utils.MetaRerate: []*utils.DynamicBoolOpt{},
- utils.MetaStore: []*utils.DynamicBoolOpt{},
+ utils.MetaAccounts: []*DynamicBoolOpt{},
+ utils.MetaAttributes: []*DynamicBoolOpt{},
+ utils.MetaChargers: []*DynamicBoolOpt{},
+ utils.MetaEEs: []*DynamicBoolOpt{},
+ utils.MetaRates: []*DynamicBoolOpt{},
+ utils.MetaStats: []*DynamicBoolOpt{},
+ utils.MetaThresholds: []*DynamicBoolOpt{},
+ utils.MetaRefund: []*DynamicBoolOpt{},
+ utils.MetaRerate: []*DynamicBoolOpt{},
+ utils.MetaStore: []*DynamicBoolOpt{},
},
},
}
@@ -3948,37 +3948,37 @@ func TestV1GetConfigSessionS(t *testing.T) {
utils.MetaSMS: "1",
},
utils.OptsCfg: map[string]any{
- utils.MetaAccounts: []*utils.DynamicBoolOpt{},
- utils.MetaAttributes: []*utils.DynamicBoolOpt{},
- utils.MetaCDRs: []*utils.DynamicBoolOpt{},
- utils.MetaChargers: []*utils.DynamicBoolOpt{},
- utils.MetaResources: []*utils.DynamicBoolOpt{},
- utils.MetaRoutes: []*utils.DynamicBoolOpt{},
- utils.MetaStats: []*utils.DynamicBoolOpt{},
- utils.MetaThresholds: []*utils.DynamicBoolOpt{},
- utils.MetaInitiate: []*utils.DynamicBoolOpt{},
- utils.MetaUpdate: []*utils.DynamicBoolOpt{},
- utils.MetaTerminate: []*utils.DynamicBoolOpt{},
- utils.MetaMessage: []*utils.DynamicBoolOpt{},
- utils.MetaAttributesDerivedReplyCfg: []*utils.DynamicBoolOpt{},
- utils.MetaBlockerErrorCfg: []*utils.DynamicBoolOpt{},
- utils.MetaCDRsDerivedReplyCfg: []*utils.DynamicBoolOpt{},
- utils.MetaResourcesAuthorizeCfg: []*utils.DynamicBoolOpt{},
- utils.MetaResourcesAllocateCfg: []*utils.DynamicBoolOpt{},
- utils.MetaResourcesReleaseCfg: []*utils.DynamicBoolOpt{},
- utils.MetaResourcesDerivedReplyCfg: []*utils.DynamicBoolOpt{},
- utils.MetaRoutesDerivedReplyCfg: []*utils.DynamicBoolOpt{},
- utils.MetaStatsDerivedReplyCfg: []*utils.DynamicBoolOpt{},
- utils.MetaThresholdsDerivedReplyCfg: []*utils.DynamicBoolOpt{},
- utils.MetaMaxUsageCfg: []*utils.DynamicBoolOpt{},
- utils.MetaForceDurationCfg: []*utils.DynamicBoolOpt{},
- utils.MetaTTLCfg: []*utils.DynamicDurationOpt{},
- utils.MetaChargeableCfg: []*utils.DynamicBoolOpt{},
- utils.MetaDebitIntervalCfg: []*utils.DynamicDurationOpt{},
- utils.MetaTTLLastUsageCfg: []*utils.DynamicDurationPointerOpt{},
- utils.MetaTTLLastUsedCfg: []*utils.DynamicDurationPointerOpt{},
- utils.MetaTTLMaxDelayCfg: []*utils.DynamicDurationOpt{},
- utils.MetaTTLUsageCfg: []*utils.DynamicDurationPointerOpt{},
+ utils.MetaAccounts: []*DynamicBoolOpt{},
+ utils.MetaAttributes: []*DynamicBoolOpt{},
+ utils.MetaCDRs: []*DynamicBoolOpt{},
+ utils.MetaChargers: []*DynamicBoolOpt{},
+ utils.MetaResources: []*DynamicBoolOpt{},
+ utils.MetaRoutes: []*DynamicBoolOpt{},
+ utils.MetaStats: []*DynamicBoolOpt{},
+ utils.MetaThresholds: []*DynamicBoolOpt{},
+ utils.MetaInitiate: []*DynamicBoolOpt{},
+ utils.MetaUpdate: []*DynamicBoolOpt{},
+ utils.MetaTerminate: []*DynamicBoolOpt{},
+ utils.MetaMessage: []*DynamicBoolOpt{},
+ utils.MetaAttributesDerivedReplyCfg: []*DynamicBoolOpt{},
+ utils.MetaBlockerErrorCfg: []*DynamicBoolOpt{},
+ utils.MetaCDRsDerivedReplyCfg: []*DynamicBoolOpt{},
+ utils.MetaResourcesAuthorizeCfg: []*DynamicBoolOpt{},
+ utils.MetaResourcesAllocateCfg: []*DynamicBoolOpt{},
+ utils.MetaResourcesReleaseCfg: []*DynamicBoolOpt{},
+ utils.MetaResourcesDerivedReplyCfg: []*DynamicBoolOpt{},
+ utils.MetaRoutesDerivedReplyCfg: []*DynamicBoolOpt{},
+ utils.MetaStatsDerivedReplyCfg: []*DynamicBoolOpt{},
+ utils.MetaThresholdsDerivedReplyCfg: []*DynamicBoolOpt{},
+ utils.MetaMaxUsageCfg: []*DynamicBoolOpt{},
+ utils.MetaForceDurationCfg: []*DynamicBoolOpt{},
+ utils.MetaTTLCfg: []*DynamicDurationOpt{},
+ utils.MetaChargeableCfg: []*DynamicBoolOpt{},
+ utils.MetaDebitIntervalCfg: []*DynamicDurationOpt{},
+ utils.MetaTTLLastUsageCfg: []*DynamicDurationPointerOpt{},
+ utils.MetaTTLLastUsedCfg: []*DynamicDurationPointerOpt{},
+ utils.MetaTTLMaxDelayCfg: []*DynamicDurationOpt{},
+ utils.MetaTTLUsageCfg: []*DynamicDurationPointerOpt{},
},
},
}
@@ -4171,10 +4171,10 @@ func TestV1GetConfigAttribute(t *testing.T) {
utils.NotExistsIndexedFieldsCfg: []string{},
utils.NestedFieldsCfg: false,
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaProcessRunsCfg: []*utils.DynamicIntOpt{},
- utils.MetaProfileRunsCfg: []*utils.DynamicIntOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ utils.MetaProfileIDs: []*DynamicStringSliceOpt{},
+ utils.MetaProcessRunsCfg: []*DynamicIntOpt{},
+ utils.MetaProfileRunsCfg: []*DynamicIntOpt{},
+ utils.MetaProfileIgnoreFilters: []*DynamicBoolOpt{},
},
},
}
@@ -4222,9 +4222,9 @@ func TestV1GetConfigResourceS(t *testing.T) {
utils.NotExistsIndexedFieldsCfg: []string{},
utils.NestedFieldsCfg: false,
utils.OptsCfg: map[string]any{
- utils.MetaUsageIDCfg: []*utils.DynamicStringOpt{},
- utils.MetaUsageTTLCfg: []*utils.DynamicDurationOpt{},
- utils.MetaUnitsCfg: []*utils.DynamicFloat64Opt{},
+ utils.MetaUsageIDCfg: []*DynamicStringOpt{},
+ utils.MetaUsageTTLCfg: []*DynamicDurationOpt{},
+ utils.MetaUnitsCfg: []*DynamicFloat64Opt{},
},
},
}
@@ -4251,10 +4251,10 @@ func TestV1GetConfigStats(t *testing.T) {
utils.NotExistsIndexedFieldsCfg: []string{},
utils.NestedFieldsCfg: false,
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
- utils.OptsRoundingDecimals: []*utils.DynamicIntOpt{},
- utils.OptsPrometheusStatIDs: []*utils.DynamicStringSliceOpt{},
+ utils.MetaProfileIDs: []*DynamicStringSliceOpt{},
+ utils.MetaProfileIgnoreFilters: []*DynamicBoolOpt{},
+ utils.OptsRoundingDecimals: []*DynamicIntOpt{},
+ utils.OptsPrometheusStatIDs: []*DynamicStringSliceOpt{},
},
utils.EEsConnsCfg: []string{},
utils.EEsExporterIDsCfg: []string(nil),
@@ -4282,8 +4282,8 @@ func TestV1GetConfigThresholds(t *testing.T) {
utils.NestedFieldsCfg: false,
utils.ActionSConnsCfg: []string{},
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ utils.MetaProfileIDs: []*DynamicStringSliceOpt{},
+ utils.MetaProfileIgnoreFilters: []*DynamicBoolOpt{},
},
},
}
@@ -4312,9 +4312,9 @@ func TestV1GetConfigAcounts(t *testing.T) {
utils.MaxIterations: 1000,
utils.MaxUsage: "259200000000000", // 72h in ns
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaUsage: []*utils.DynamicDecimalBigOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ utils.MetaProfileIDs: []*DynamicStringSliceOpt{},
+ utils.MetaUsage: []*DynamicDecimalOpt{},
+ utils.MetaProfileIgnoreFilters: []*DynamicBoolOpt{},
},
},
}
@@ -4344,14 +4344,14 @@ func TestV1GetConfigRoutes(t *testing.T) {
utils.AccountSConnsCfg: []string{},
utils.DefaultRatioCfg: 1,
utils.OptsCfg: map[string]any{
- utils.OptsContext: []*utils.DynamicStringOpt{},
- utils.MetaProfileCountCfg: []*utils.DynamicIntPointerOpt{},
- utils.MetaIgnoreErrorsCfg: []*utils.DynamicBoolOpt{},
- utils.MetaMaxCostCfg: []*utils.DynamicInterfaceOpt{},
- utils.MetaLimitCfg: []*utils.DynamicIntPointerOpt{},
- utils.MetaOffsetCfg: []*utils.DynamicIntPointerOpt{},
- utils.MetaMaxItemsCfg: []*utils.DynamicIntPointerOpt{},
- utils.MetaUsage: []*utils.DynamicDecimalBigOpt{},
+ utils.OptsContext: []*DynamicStringOpt{},
+ utils.MetaProfileCountCfg: []*DynamicIntPointerOpt{},
+ utils.MetaIgnoreErrorsCfg: []*DynamicBoolOpt{},
+ utils.MetaMaxCostCfg: []*DynamicInterfaceOpt{},
+ utils.MetaLimitCfg: []*DynamicIntPointerOpt{},
+ utils.MetaOffsetCfg: []*DynamicIntPointerOpt{},
+ utils.MetaMaxItemsCfg: []*DynamicIntPointerOpt{},
+ utils.MetaUsage: []*DynamicDecimalOpt{},
},
},
}
@@ -4417,7 +4417,7 @@ func TestV1GetConfigDispatcherS(t *testing.T) {
utils.NestedFieldsCfg: false,
utils.AttributeSConnsCfg: []string{},
utils.OptsCfg: map[string]any{
- utils.MetaDispatcherSCfg: []*utils.DynamicBoolOpt{},
+ utils.MetaDispatcherSCfg: []*DynamicBoolOpt{},
},
},
}
@@ -4817,7 +4817,7 @@ func TestV1GetConfigSectionAnalyzer(t *testing.T) {
utils.EEsConnsCfg: []string{},
utils.TTLCfg: "24h0m0s",
utils.OptsCfg: map[string]any{
- utils.MetaExporterIDs: []*utils.DynamicStringSliceOpt{},
+ utils.MetaExporterIDs: []*DynamicStringSliceOpt{},
},
},
}
@@ -4848,11 +4848,11 @@ func TestV1GetConfigSectionRateS(t *testing.T) {
utils.RateNestedFieldsCfg: false,
utils.Verbosity: 1000,
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaStartTime: []*utils.DynamicStringOpt{},
- utils.MetaUsage: []*utils.DynamicDecimalBigOpt{},
- utils.MetaIntervalStartCfg: []*utils.DynamicDecimalBigOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ utils.MetaProfileIDs: []*DynamicStringSliceOpt{},
+ utils.MetaStartTime: []*DynamicStringOpt{},
+ utils.MetaUsage: []*DynamicDecimalOpt{},
+ utils.MetaIntervalStartCfg: []*DynamicDecimalOpt{},
+ utils.MetaProfileIgnoreFilters: []*DynamicBoolOpt{},
},
},
}
@@ -5793,9 +5793,9 @@ func TestActionSConfig(t *testing.T) {
NestedFields: false,
DynaprepaidActionProfile: []string{},
Opts: &ActionsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
- PosterAttempts: []*utils.DynamicIntOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
+ PosterAttempts: []*DynamicIntOpt{},
},
}
cgrConfig := NewDefaultCGRConfig()
@@ -5824,9 +5824,9 @@ func TestV1GetConfigSectionActionSJSON(t *testing.T) {
utils.NestedFieldsCfg: false,
utils.DynaprepaidActionplansCfg: []string{},
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
- utils.MetaPosterAttempts: []*utils.DynamicIntOpt{},
+ utils.MetaProfileIDs: []*DynamicStringSliceOpt{},
+ utils.MetaProfileIgnoreFilters: []*DynamicBoolOpt{},
+ utils.MetaPosterAttempts: []*DynamicIntOpt{},
},
},
}
@@ -5921,7 +5921,7 @@ func TestSetCfgInDb(t *testing.T) {
ExistsIndexedFields: &[]string{"field1"},
NotExistsIndexedFields: &[]string{"field1"},
Opts: &AttributesOpts{
- ProcessRuns: []*utils.DynamicIntOpt{
+ ProcessRuns: []*DynamicIntOpt{
{
Value: 2,
},
@@ -5945,7 +5945,7 @@ func TestSetCfgInDb(t *testing.T) {
Exists_indexed_fields: &[]string{"field2"},
Notexists_indexed_fields: &[]string{"field2"},
Opts: &AttributesOptsJson{
- ProcessRuns: []*utils.DynamicIntOpt{
+ ProcessRuns: []*DynamicIntOpt{
{
Value: 3,
},
@@ -5967,7 +5967,7 @@ func TestSetCfgInDb(t *testing.T) {
Exists_indexed_fields: &[]string{"field2"},
Notexists_indexed_fields: &[]string{"field2"},
Opts: &AttributesOptsJson{
- ProcessRuns: []*utils.DynamicIntOpt{
+ ProcessRuns: []*DynamicIntOpt{
{
Value: 2,
},
@@ -6008,7 +6008,7 @@ func TestSetNilCfgInDb(t *testing.T) {
ExistsIndexedFields: &[]string{"field1"},
NotExistsIndexedFields: &[]string{"field1"},
Opts: &AttributesOpts{
- ProcessRuns: []*utils.DynamicIntOpt{
+ ProcessRuns: []*DynamicIntOpt{
{
FilterIDs: []string{},
Value: 2,
diff --git a/config/configsanity_test.go b/config/configsanity_test.go
index ee6b2ff10..c74b7f6fa 100644
--- a/config/configsanity_test.go
+++ b/config/configsanity_test.go
@@ -971,7 +971,7 @@ func TestConfigSanityAttributesCfg(t *testing.T) {
cfg.attributeSCfg = &AttributeSCfg{
Enabled: true,
Opts: &AttributesOpts{
- ProcessRuns: []*utils.DynamicIntOpt{
+ ProcessRuns: []*DynamicIntOpt{
{
FilterIDs: []string{},
Value: 0,
@@ -1968,7 +1968,7 @@ func TestCGRConfigcheckConfigSanityCacheSIdErr(t *testing.T) {
cfg.attributeSCfg = &AttributeSCfg{
Enabled: true,
Opts: &AttributesOpts{
- ProcessRuns: []*utils.DynamicIntOpt{
+ ProcessRuns: []*DynamicIntOpt{
{
Value: 2,
},
diff --git a/config/dispatcherscfg.go b/config/dispatcherscfg.go
index 6dea976a4..c4900610e 100644
--- a/config/dispatcherscfg.go
+++ b/config/dispatcherscfg.go
@@ -30,7 +30,7 @@ const (
)
type DispatchersOpts struct {
- Dispatchers []*utils.DynamicBoolOpt
+ Dispatchers []*DynamicBoolOpt
}
// DispatcherSCfg is the configuration of dispatcher service
@@ -138,9 +138,9 @@ func (DispatcherSCfg) SName() string { return DispatcherSJSON }
func (dps DispatcherSCfg) CloneSection() Section { return dps.Clone() }
func (dspOpts *DispatchersOpts) Clone() *DispatchersOpts {
- var dpS []*utils.DynamicBoolOpt
+ var dpS []*DynamicBoolOpt
if dspOpts.Dispatchers != nil {
- dpS = utils.CloneDynamicBoolOpt(dspOpts.Dispatchers)
+ dpS = CloneDynamicBoolOpt(dspOpts.Dispatchers)
}
return &DispatchersOpts{
Dispatchers: dpS,
@@ -178,7 +178,7 @@ func (dps DispatcherSCfg) Clone() (cln *DispatcherSCfg) {
}
type DispatchersOptsJson struct {
- Dispatchers []*utils.DynamicBoolOpt `json:"*dispatchers"`
+ Dispatchers []*DynamicBoolOpt `json:"*dispatchers"`
}
type DispatcherSJsonCfg struct {
@@ -198,7 +198,7 @@ func diffDispatchersOptsJsonCfg(d *DispatchersOptsJson, v1, v2 *DispatchersOpts)
if d == nil {
d = new(DispatchersOptsJson)
}
- if !utils.DynamicBoolOptEqual(v1.Dispatchers, v2.Dispatchers) {
+ if !DynamicBoolOptEqual(v1.Dispatchers, v2.Dispatchers) {
d.Dispatchers = v2.Dispatchers
}
return d
diff --git a/config/dispatcherscfg_test.go b/config/dispatcherscfg_test.go
index 65afe9627..d78c71935 100644
--- a/config/dispatcherscfg_test.go
+++ b/config/dispatcherscfg_test.go
@@ -48,7 +48,7 @@ func TestDispatcherSCfgloadFromJsonCfg(t *testing.T) {
AttributeSConns: []string{utils.ConcatenatedKey(utils.MetaDispatchers, utils.MetaAttributes), "*conn1"},
NestedFields: true,
Opts: &DispatchersOpts{
- []*utils.DynamicBoolOpt{},
+ []*DynamicBoolOpt{},
},
}
jsnCfg := NewDefaultCGRConfig()
@@ -87,7 +87,7 @@ func TestDispatcherSCfgAsMapInterface(t *testing.T) {
utils.NestedFieldsCfg: false,
utils.AttributeSConnsCfg: []string{},
utils.OptsCfg: map[string]any{
- utils.MetaDispatcherSCfg: []*utils.DynamicBoolOpt{},
+ utils.MetaDispatcherSCfg: []*DynamicBoolOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -123,7 +123,7 @@ func TestDispatcherSCfgAsMapInterface1(t *testing.T) {
utils.NestedFieldsCfg: false,
utils.AttributeSConnsCfg: []string{"*internal", "*conn1"},
utils.OptsCfg: map[string]any{
- utils.MetaDispatcherSCfg: []*utils.DynamicBoolOpt{},
+ utils.MetaDispatcherSCfg: []*DynamicBoolOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -147,7 +147,7 @@ func TestDispatcherSCfgAsMapInterface2(t *testing.T) {
utils.NestedFieldsCfg: false,
utils.AttributeSConnsCfg: []string{},
utils.OptsCfg: map[string]any{
- utils.MetaDispatcherSCfg: []*utils.DynamicBoolOpt{},
+ utils.MetaDispatcherSCfg: []*DynamicBoolOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -273,7 +273,7 @@ func TestDispatcherSCfgCloneTest(t *testing.T) {
func TestDispatchersOptsLoadFromJSONCfgNil(t *testing.T) {
var jsnCfg *DispatchersOptsJson
dspOpts := &DispatchersOpts{
- Dispatchers: []*utils.DynamicBoolOpt{
+ Dispatchers: []*DynamicBoolOpt{
{
Tenant: "Filler val",
},
@@ -290,7 +290,7 @@ func TestDiffDispatchersOptsJsonCfg(t *testing.T) {
var d *DispatchersOptsJson
v1 := &DispatchersOpts{
- Dispatchers: []*utils.DynamicBoolOpt{
+ Dispatchers: []*DynamicBoolOpt{
{
Tenant: "1",
},
@@ -298,7 +298,7 @@ func TestDiffDispatchersOptsJsonCfg(t *testing.T) {
}
v2 := &DispatchersOpts{
- Dispatchers: []*utils.DynamicBoolOpt{
+ Dispatchers: []*DynamicBoolOpt{
{
Tenant: "2",
},
@@ -306,7 +306,7 @@ func TestDiffDispatchersOptsJsonCfg(t *testing.T) {
}
expected := &DispatchersOptsJson{
- Dispatchers: []*utils.DynamicBoolOpt{
+ Dispatchers: []*DynamicBoolOpt{
{
Tenant: "2",
},
diff --git a/config/generalcfg.go b/config/generalcfg.go
index ff74cb45b..7dca8f6ae 100644
--- a/config/generalcfg.go
+++ b/config/generalcfg.go
@@ -28,7 +28,7 @@ import (
)
type GeneralOpts struct {
- ExporterIDs []*utils.DynamicStringSliceOpt
+ ExporterIDs []*DynamicStringSliceOpt
}
// GeneralCfg is the general config section
@@ -237,7 +237,7 @@ func (generalOpts *GeneralOpts) Clone() *GeneralOpts {
return nil
}
return &GeneralOpts{
- ExporterIDs: utils.CloneDynamicStringSliceOpt(generalOpts.ExporterIDs),
+ ExporterIDs: CloneDynamicStringSliceOpt(generalOpts.ExporterIDs),
}
}
@@ -272,7 +272,7 @@ func (gencfg GeneralCfg) Clone() *GeneralCfg {
}
type GeneralOptsJson struct {
- ExporterIDs []*utils.DynamicStringSliceOpt `json:"*exporterIDs"`
+ ExporterIDs []*DynamicStringSliceOpt `json:"*exporterIDs"`
}
// General config section
@@ -309,7 +309,7 @@ func diffGeneralOptsJsonCfg(d *GeneralOptsJson, v1, v2 *GeneralOpts) *GeneralOpt
if d == nil {
d = new(GeneralOptsJson)
}
- if !utils.DynamicStringSliceOptEqual(v1.ExporterIDs, v2.ExporterIDs) {
+ if !DynamicStringSliceOptEqual(v1.ExporterIDs, v2.ExporterIDs) {
d.ExporterIDs = v2.ExporterIDs
}
return d
diff --git a/config/generalcfg_test.go b/config/generalcfg_test.go
index 2944c499f..87cecc13f 100644
--- a/config/generalcfg_test.go
+++ b/config/generalcfg_test.go
@@ -64,7 +64,7 @@ func TestGeneralCfgloadFromJsonCfg(t *testing.T) {
RSRSep: ";",
DefaultCaching: utils.MetaReload,
Opts: &GeneralOpts{
- ExporterIDs: []*utils.DynamicStringSliceOpt{},
+ ExporterIDs: []*DynamicStringSliceOpt{},
},
}
jsnCfg := NewDefaultCGRConfig()
@@ -156,7 +156,7 @@ func TestGeneralCfgAsMapInterface(t *testing.T) {
utils.DecimalPrecisionCfg: 0,
utils.DecimalRoundingModeCfg: "*toNearestEven",
utils.OptsCfg: map[string]any{
- utils.MetaExporterIDs: []*utils.DynamicStringSliceOpt{},
+ utils.MetaExporterIDs: []*DynamicStringSliceOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -203,7 +203,7 @@ func TestGeneralCfgAsMapInterface1(t *testing.T) {
utils.DecimalPrecisionCfg: 0,
utils.DecimalRoundingModeCfg: "*toNearestEven",
utils.OptsCfg: map[string]any{
- utils.MetaExporterIDs: []*utils.DynamicStringSliceOpt{},
+ utils.MetaExporterIDs: []*DynamicStringSliceOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -233,7 +233,7 @@ func TestGeneralCfgClone(t *testing.T) {
RSRSep: ";",
DefaultCaching: utils.MetaReload,
Opts: &GeneralOpts{
- ExporterIDs: []*utils.DynamicStringSliceOpt{
+ ExporterIDs: []*DynamicStringSliceOpt{
{
Values: []string{"*ees"},
},
@@ -271,7 +271,7 @@ func TestDiffGeneralJsonCfg(t *testing.T) {
RSRSep: "",
DefaultCaching: utils.MetaClear,
Opts: &GeneralOpts{
- ExporterIDs: []*utils.DynamicStringSliceOpt{
+ ExporterIDs: []*DynamicStringSliceOpt{
{
Values: []string{"*ees"},
},
@@ -304,7 +304,7 @@ func TestDiffGeneralJsonCfg(t *testing.T) {
DefaultCaching: utils.MetaReload,
LockingTimeout: 2 * time.Second,
Opts: &GeneralOpts{
- ExporterIDs: []*utils.DynamicStringSliceOpt{
+ ExporterIDs: []*DynamicStringSliceOpt{
{
Values: []string{"*syslog"},
},
@@ -337,7 +337,7 @@ func TestDiffGeneralJsonCfg(t *testing.T) {
Digest_equal: utils.StringPointer(":"),
Max_parallel_conns: utils.IntPointer(100),
Opts: &GeneralOptsJson{
- ExporterIDs: []*utils.DynamicStringSliceOpt{
+ ExporterIDs: []*DynamicStringSliceOpt{
{
Values: []string{"*syslog"},
},
@@ -407,7 +407,7 @@ func TestGeneralCfgCloneSection(t *testing.T) {
RSRSep: "",
DefaultCaching: utils.MetaClear,
Opts: &GeneralOpts{
- ExporterIDs: []*utils.DynamicStringSliceOpt{},
+ ExporterIDs: []*DynamicStringSliceOpt{},
},
}
diff --git a/utils/libdynamics.go b/config/libdynamics.go
similarity index 84%
rename from utils/libdynamics.go
rename to config/libdynamics.go
index e6d7b44d1..1d88a966e 100644
--- a/utils/libdynamics.go
+++ b/config/libdynamics.go
@@ -15,12 +15,14 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see
*/
-package utils
+package config
import (
"slices"
+ "strings"
"time"
+ "github.com/cgrates/cgrates/utils"
"github.com/ericlagergren/decimal"
)
@@ -60,10 +62,11 @@ type DynamicDurationOpt struct {
Value time.Duration
}
-type DynamicDecimalBigOpt struct {
+type DynamicDecimalOpt struct {
FilterIDs []string `json:",omitempty"`
Tenant string
- Value *decimal.Big
+ value *decimal.Big
+ dynVal RSRParsers
}
type DynamicInterfaceOpt struct {
@@ -168,13 +171,13 @@ func CloneDynamicDurationOpt(in []*DynamicDurationOpt) (cl []*DynamicDurationOpt
return
}
-func CloneDynamicDecimalBigOpt(in []*DynamicDecimalBigOpt) (cl []*DynamicDecimalBigOpt) {
- cl = make([]*DynamicDecimalBigOpt, len(in))
+func CloneDynamicDecimalOpt(in []*DynamicDecimalOpt) (cl []*DynamicDecimalOpt) {
+ cl = make([]*DynamicDecimalOpt, len(in))
for i, val := range in {
- cl[i] = &DynamicDecimalBigOpt{
+ cl[i] = &DynamicDecimalOpt{
Tenant: val.Tenant,
FilterIDs: slices.Clone(val.FilterIDs),
- Value: CloneDecimalBig(val.Value),
+ value: utils.CloneDecimalBig(val.value),
}
}
return
@@ -186,7 +189,7 @@ func CloneDynamicIntPointerOpt(in []*DynamicIntPointerOpt) (cl []*DynamicIntPoin
cl[i] = &DynamicIntPointerOpt{
Tenant: val.Tenant,
FilterIDs: slices.Clone(val.FilterIDs),
- Value: IntPointer(*val.Value),
+ Value: utils.IntPointer(*val.Value),
}
}
return
@@ -198,7 +201,7 @@ func CloneDynamicDurationPointerOpt(in []*DynamicDurationPointerOpt) (cl []*Dyna
cl[i] = &DynamicDurationPointerOpt{
Tenant: val.Tenant,
FilterIDs: slices.Clone(val.FilterIDs),
- Value: DurationPointer(*val.Value),
+ Value: utils.DurationPointer(*val.Value),
}
}
return
@@ -312,7 +315,7 @@ func DynamicDurationOptEqual(v1, v2 []*DynamicDurationOpt) bool {
return true
}
-func DynamicDecimalBigOptEqual(v1, v2 []*DynamicDecimalBigOpt) bool {
+func DynamicDecimalOptEqual(v1, v2 []*DynamicDecimalOpt) bool {
if len(v1) != len(v2) {
return false
}
@@ -321,7 +324,7 @@ func DynamicDecimalBigOptEqual(v1, v2 []*DynamicDecimalBigOpt) bool {
return false
}
if !slices.Equal(v1[i].FilterIDs, v2[i].FilterIDs) ||
- v1[i].Value.Cmp(v2[i].Value) != 0 {
+ v1[i].value.Cmp(v2[i].value) != 0 {
return false
}
}
@@ -382,27 +385,35 @@ func DynamicDurationPointerOptEqual(v1, v2 []*DynamicDurationPointerOpt) bool {
return true
}
-func StringToDecimalBigDynamicOpts(strOpts []*DynamicStringOpt) (decOpts []*DynamicDecimalBigOpt, err error) {
- decOpts = make([]*DynamicDecimalBigOpt, len(strOpts))
+func StringToDecimalBigDynamicOpts(strOpts []*DynamicStringOpt) (decOpts []*DynamicDecimalOpt, err error) {
+ decOpts = make([]*DynamicDecimalOpt, len(strOpts))
for index, opt := range strOpts {
- decOpts[index] = &DynamicDecimalBigOpt{
+ decOpts[index] = &DynamicDecimalOpt{
Tenant: opt.Tenant,
FilterIDs: opt.FilterIDs,
}
- if decOpts[index].Value, err = StringAsBig(opt.Value); err != nil {
+ if strings.HasPrefix(opt.Value, utils.DynamicDataPrefix) {
+ decOpts[index].dynVal, err = NewRSRParsers(opt.Value, CgrConfig().GeneralCfg().RSRSep)
+ if err != nil {
+ return nil, err
+ }
+ continue
+ }
+
+ if decOpts[index].value, err = utils.StringAsBig(opt.Value); err != nil {
return
}
}
return
}
-func DecimalBigToStringDynamicOpts(decOpts []*DynamicDecimalBigOpt) (strOpts []*DynamicStringOpt) {
+func DecimalToStringDynamicOpts(decOpts []*DynamicDecimalOpt) (strOpts []*DynamicStringOpt) {
strOpts = make([]*DynamicStringOpt, len(decOpts))
for index, opt := range decOpts {
strOpts[index] = &DynamicStringOpt{
Tenant: opt.Tenant,
FilterIDs: opt.FilterIDs,
- Value: opt.Value.String(),
+ Value: opt.value.String(),
}
}
return
@@ -415,7 +426,7 @@ func StringToDurationDynamicOpts(strOpts []*DynamicStringOpt) (durOpts []*Dynami
Tenant: opt.Tenant,
FilterIDs: opt.FilterIDs,
}
- if durOpts[index].Value, err = ParseDurationWithNanosecs(opt.Value); err != nil {
+ if durOpts[index].Value, err = utils.ParseDurationWithNanosecs(opt.Value); err != nil {
return
}
}
@@ -440,7 +451,7 @@ func IntToIntPointerDynamicOpts(intOpts []*DynamicIntOpt) (intPtOpts []*DynamicI
intPtOpts[index] = &DynamicIntPointerOpt{
Tenant: opt.Tenant,
FilterIDs: opt.FilterIDs,
- Value: IntPointer(opt.Value),
+ Value: utils.IntPointer(opt.Value),
}
}
return
@@ -462,13 +473,13 @@ func StringToDurationPointerDynamicOpts(strOpts []*DynamicStringOpt) (durPtOpts
durPtOpts = make([]*DynamicDurationPointerOpt, len(strOpts))
for index, opt := range strOpts {
var durOpt time.Duration
- if durOpt, err = ParseDurationWithNanosecs(opt.Value); err != nil {
+ if durOpt, err = utils.ParseDurationWithNanosecs(opt.Value); err != nil {
return
}
durPtOpts[index] = &DynamicDurationPointerOpt{
Tenant: opt.Tenant,
FilterIDs: opt.FilterIDs,
- Value: DurationPointer(durOpt),
+ Value: utils.DurationPointer(durOpt),
}
}
return
@@ -485,3 +496,23 @@ func DurationPointerToStringDynamicOpts(durPtOpts []*DynamicDurationPointerOpt)
}
return
}
+
+func (dynDec *DynamicDecimalOpt) Value(dP utils.DataProvider) (*decimal.Big, error) {
+ if dynDec.value == nil {
+ out, err := dynDec.dynVal.ParseDataProvider(dP)
+ if err != nil {
+ return nil, err
+ }
+ return utils.StringAsBig(out)
+ }
+ return dynDec.value, nil
+}
+
+func NewDynamicDecimalOpt(filterIDs []string, tenant string, value *decimal.Big, dynValue RSRParsers) *DynamicDecimalOpt {
+ return &DynamicDecimalOpt{
+ FilterIDs: filterIDs,
+ Tenant: tenant,
+ value: value,
+ dynVal: dynValue,
+ }
+}
diff --git a/utils/libdynamics_test.go b/config/libdynamics_test.go
similarity index 88%
rename from utils/libdynamics_test.go
rename to config/libdynamics_test.go
index 0d7ef5bf9..259aa629a 100644
--- a/utils/libdynamics_test.go
+++ b/config/libdynamics_test.go
@@ -16,13 +16,14 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see
*/
-package utils
+package config
import (
"reflect"
"testing"
"time"
+ "github.com/cgrates/cgrates/utils"
"github.com/ericlagergren/decimal"
)
@@ -147,17 +148,11 @@ func TestCloneDynamicDurationOpt(t *testing.T) {
}
func TestCloneDynamicDecimalBigOpt(t *testing.T) {
- in := []*DynamicDecimalBigOpt{
- {
- Value: decimal.WithContext(DecimalContext).SetUint64(10),
- FilterIDs: []string{"fltr1"},
- },
- {
- Value: decimal.WithContext(DecimalContext).SetUint64(2),
- FilterIDs: []string{"fltr2"},
- },
+ in := []*DynamicDecimalOpt{
+ NewDynamicDecimalOpt([]string{"fltr1"}, "", decimal.WithContext(utils.DecimalContext).SetUint64(10), nil),
+ NewDynamicDecimalOpt([]string{"fltr2"}, "", decimal.WithContext(utils.DecimalContext).SetUint64(2), nil),
}
- clone := CloneDynamicDecimalBigOpt(in)
+ clone := CloneDynamicDecimalOpt(in)
if !reflect.DeepEqual(in, clone) {
t.Error("Expected objects to match")
}
@@ -521,60 +516,36 @@ func TestDynamicDurationOptEquals(t *testing.T) {
}
func TestDynamicDecimalBigOptEquals(t *testing.T) {
- v1 := []*DynamicDecimalBigOpt{
- {
- Tenant: "cgrates.org",
- Value: decimal.WithContext(DecimalContext).SetUint64(10),
- FilterIDs: []string{"fltr1"},
- },
- {
- Tenant: "cgrates.org",
- Value: decimal.WithContext(DecimalContext).SetUint64(2),
- FilterIDs: []string{"fltr2"},
- },
+ v1 := []*DynamicDecimalOpt{
+ NewDynamicDecimalOpt([]string{"fltr1"}, "cgrates.org", decimal.WithContext(utils.DecimalContext).SetUint64(10), nil),
+ NewDynamicDecimalOpt([]string{"fltr2"}, "cgrates.org", decimal.WithContext(utils.DecimalContext).SetUint64(2), nil),
}
- v2 := []*DynamicDecimalBigOpt{
- {
- Tenant: "cgrates.org",
- Value: decimal.WithContext(DecimalContext).SetUint64(10),
- FilterIDs: []string{"fltr1"},
- },
- {
- Tenant: "cgrates.org",
- Value: decimal.WithContext(DecimalContext).SetUint64(2),
- FilterIDs: []string{"fltr2"},
- },
+ v2 := []*DynamicDecimalOpt{
+ NewDynamicDecimalOpt([]string{"fltr1"}, "cgrates.org", decimal.WithContext(utils.DecimalContext).SetUint64(10), nil),
+ NewDynamicDecimalOpt([]string{"fltr2"}, "cgrates.org", decimal.WithContext(utils.DecimalContext).SetUint64(2), nil),
}
- if !DynamicDecimalBigOptEqual(v1, v2) {
+ if !DynamicDecimalOptEqual(v1, v2) {
t.Error("Expected both slices to be the same")
}
- v1[0].Value = decimal.WithContext(DecimalContext).SetUint64(16)
- if DynamicDecimalBigOptEqual(v1, v2) {
- t.Error("Expected slices to differ")
- }
-
//Test if different tenants
v1[0].Tenant = "cgrates.net"
- if DynamicDecimalBigOptEqual(v1, v2) {
+ if DynamicDecimalOptEqual(v1, v2) {
t.Error("Expected slices to differ")
}
v1[0].Tenant = "cgrates.org"
//Test if different filters
v1[0].FilterIDs = append(v1[0].FilterIDs, "new_fltr")
- if DynamicDecimalBigOptEqual(v1, v2) {
+ if DynamicDecimalOptEqual(v1, v2) {
t.Error("Expected slices to differ")
}
//Test if different lengths
- v1 = append(v1, &DynamicDecimalBigOpt{
- Value: decimal.WithContext(DecimalContext).SetUint64(10),
- FilterIDs: []string{"fltr1"},
- })
- if DynamicDecimalBigOptEqual(v1, v2) {
+ v1 = append(v1, NewDynamicDecimalOpt([]string{"fltr1"}, "", decimal.WithContext(utils.DecimalContext).SetUint64(10), nil))
+ if DynamicDecimalOptEqual(v1, v2) {
t.Error("Expected slices to differ")
}
}
@@ -647,12 +618,8 @@ func TestStringToDecimalBigDynamicOpts(t *testing.T) {
},
}
- exp := []*DynamicDecimalBigOpt{
- {
- FilterIDs: []string{"fld1", "fld2"},
- Tenant: "cgrates.org",
- Value: decimal.WithContext(DecimalContext).SetUint64(200),
- },
+ exp := []*DynamicDecimalOpt{
+ NewDynamicDecimalOpt([]string{"fld1", "fld2"}, "cgrates.org", decimal.WithContext(utils.DecimalContext).SetUint64(200), nil),
}
rcv, err := StringToDecimalBigDynamicOpts(dsOpt)
@@ -676,7 +643,7 @@ func TestDynamicIntPointerOptEqual(t *testing.T) {
{
FilterIDs: []string{"fld1", "fld2"},
Tenant: "cgrates.org",
- Value: IntPointer(200),
+ Value: utils.IntPointer(200),
},
}
@@ -684,7 +651,7 @@ func TestDynamicIntPointerOptEqual(t *testing.T) {
{
FilterIDs: []string{"fld1", "fld2"},
Tenant: "cgrates.org",
- Value: IntPointer(200),
+ Value: utils.IntPointer(200),
},
}
@@ -700,11 +667,11 @@ func TestDynamicIntPointerOptEqual(t *testing.T) {
v1[0].Tenant = "cgrates.org"
//Test if different values
- v1[0].Value = IntPointer(500)
+ v1[0].Value = utils.IntPointer(500)
if DynamicIntPointerOptEqual(v1, v2) {
t.Error("Expected slices to differ")
}
- v1[0].Value = IntPointer(200)
+ v1[0].Value = utils.IntPointer(200)
//Test if different filters
v1[0].FilterIDs = append(v1[0].FilterIDs, "new_fltr")
@@ -714,7 +681,7 @@ func TestDynamicIntPointerOptEqual(t *testing.T) {
//Test if different lengths
v1 = append(v1, &DynamicIntPointerOpt{
- Value: IntPointer(2),
+ Value: utils.IntPointer(2),
FilterIDs: []string{"fltr1"},
})
if DynamicIntPointerOptEqual(v1, v2) {
@@ -727,7 +694,7 @@ func TestDynamicDurationPointerOptEqual(t *testing.T) {
{
FilterIDs: []string{"fld3"},
Tenant: "cgrates.org",
- Value: DurationPointer(3 * time.Second),
+ Value: utils.DurationPointer(3 * time.Second),
},
}
@@ -735,7 +702,7 @@ func TestDynamicDurationPointerOptEqual(t *testing.T) {
{
FilterIDs: []string{"fld3"},
Tenant: "cgrates.org",
- Value: DurationPointer(3 * time.Second),
+ Value: utils.DurationPointer(3 * time.Second),
},
}
@@ -750,11 +717,11 @@ func TestDynamicDurationPointerOptEqual(t *testing.T) {
v1[0].Tenant = "cgrates.org"
//Test if different values
- v1[0].Value = DurationPointer(4 * time.Second)
+ v1[0].Value = utils.DurationPointer(4 * time.Second)
if DynamicDurationPointerOptEqual(v1, v2) {
t.Error("Expected slices to differ")
}
- v1[0].Value = DurationPointer(3 * time.Second)
+ v1[0].Value = utils.DurationPointer(3 * time.Second)
//Test if different filters
v1[0].FilterIDs = append(v1[0].FilterIDs, "new_fltr")
@@ -764,7 +731,7 @@ func TestDynamicDurationPointerOptEqual(t *testing.T) {
//Test if different lengths
v1 = append(v1, &DynamicDurationPointerOpt{
- Value: DurationPointer(2),
+ Value: utils.DurationPointer(2),
FilterIDs: []string{"fltr1"},
})
if DynamicDurationPointerOptEqual(v1, v2) {
@@ -773,12 +740,8 @@ func TestDynamicDurationPointerOptEqual(t *testing.T) {
}
func TestDecimalBigToStringDynamicOpts(t *testing.T) {
- dbOpt := []*DynamicDecimalBigOpt{
- {
- FilterIDs: []string{"test_filter", "test_filter2"},
- Tenant: "cgrates.org",
- Value: decimal.WithContext(DecimalContext).SetUint64(300),
- },
+ dbOpt := []*DynamicDecimalOpt{
+ NewDynamicDecimalOpt([]string{"test_filter", "test_filter2"}, "cgrates.org", decimal.WithContext(utils.DecimalContext).SetUint64(300), nil),
}
exp := []*DynamicStringOpt{
@@ -789,7 +752,7 @@ func TestDecimalBigToStringDynamicOpts(t *testing.T) {
},
}
- rcv := DecimalBigToStringDynamicOpts(dbOpt)
+ rcv := DecimalToStringDynamicOpts(dbOpt)
if !reflect.DeepEqual(rcv, exp) {
t.Errorf("Expected %v \n but received \n %v", exp, rcv)
}
@@ -864,7 +827,7 @@ func TestIntToIntPointerDynamicOpts(t *testing.T) {
{
FilterIDs: []string{"test_filter", "test_filter2"},
Tenant: "cgrates.org",
- Value: IntPointer(50),
+ Value: utils.IntPointer(50),
},
}
@@ -887,7 +850,7 @@ func TestIntPointerToIntDynamicOpts(t *testing.T) {
{
FilterIDs: []string{"test_filter", "test_filter2"},
Tenant: "cgrates.org",
- Value: IntPointer(50),
+ Value: utils.IntPointer(50),
},
}
@@ -910,7 +873,7 @@ func TestStringToDurationPointerDynamicOpts(t *testing.T) {
{
FilterIDs: []string{"test_filter", "test_filter2"},
Tenant: "cgrates.org",
- Value: DurationPointer(50 * time.Second),
+ Value: utils.DurationPointer(50 * time.Second),
},
}
@@ -942,7 +905,7 @@ func TestDurationPointerToStringDynamicOpts(t *testing.T) {
{
FilterIDs: []string{"test_filter", "test_filter2"},
Tenant: "cgrates.org",
- Value: DurationPointer(50 * time.Second),
+ Value: utils.DurationPointer(50 * time.Second),
},
}
@@ -957,7 +920,7 @@ func TestCloneDynamicIntPointerOpt(t *testing.T) {
{
FilterIDs: []string{"fld1", "fld2"},
Tenant: "cgrates.org",
- Value: IntPointer(200),
+ Value: utils.IntPointer(200),
},
}
@@ -965,7 +928,7 @@ func TestCloneDynamicIntPointerOpt(t *testing.T) {
{
FilterIDs: []string{"fld1", "fld2"},
Tenant: "cgrates.org",
- Value: IntPointer(200),
+ Value: utils.IntPointer(200),
},
}
@@ -980,7 +943,7 @@ func TestCloneDynamicDurationPointerOpt(t *testing.T) {
{
FilterIDs: []string{"test_filter", "test_filter2"},
Tenant: "cgrates.org",
- Value: DurationPointer(50 * time.Second),
+ Value: utils.DurationPointer(50 * time.Second),
},
}
@@ -988,7 +951,7 @@ func TestCloneDynamicDurationPointerOpt(t *testing.T) {
{
FilterIDs: []string{"test_filter", "test_filter2"},
Tenant: "cgrates.org",
- Value: DurationPointer(50 * time.Second),
+ Value: utils.DurationPointer(50 * time.Second),
},
}
diff --git a/config/multifiles_it_test.go b/config/multifiles_it_test.go
index 654f9ef18..cc187e0c7 100644
--- a/config/multifiles_it_test.go
+++ b/config/multifiles_it_test.go
@@ -74,7 +74,7 @@ func TestMfEnvReaderITRead(t *testing.T) {
RSRSep: ";",
MaxParallelConns: 100,
Opts: &GeneralOpts{
- ExporterIDs: []*utils.DynamicStringSliceOpt{},
+ ExporterIDs: []*DynamicStringSliceOpt{},
},
}
if !reflect.DeepEqual(expected, *mfCgrCfg.generalCfg) {
diff --git a/config/ratescfg.go b/config/ratescfg.go
index 6651c21ee..78dc1cc89 100644
--- a/config/ratescfg.go
+++ b/config/ratescfg.go
@@ -39,11 +39,11 @@ const (
)
type RatesOpts struct {
- ProfileIDs []*utils.DynamicStringSliceOpt
- StartTime []*utils.DynamicStringOpt
- Usage []*utils.DynamicDecimalBigOpt
- IntervalStart []*utils.DynamicDecimalBigOpt
- ProfileIgnoreFilters []*utils.DynamicBoolOpt
+ ProfileIDs []*DynamicStringSliceOpt
+ StartTime []*DynamicStringOpt
+ Usage []*DynamicDecimalOpt
+ IntervalStart []*DynamicDecimalOpt
+ ProfileIgnoreFilters []*DynamicBoolOpt
}
// RateSCfg the rates config section
@@ -87,15 +87,15 @@ func (rateOpts *RatesOpts) loadFromJSONCfg(jsnCfg *RatesOptsJson) (err error) {
rateOpts.StartTime = append(rateOpts.StartTime, jsnCfg.StartTime...)
}
if jsnCfg.Usage != nil {
- var usage []*utils.DynamicDecimalBigOpt
- if usage, err = utils.StringToDecimalBigDynamicOpts(jsnCfg.Usage); err != nil {
+ var usage []*DynamicDecimalOpt
+ if usage, err = StringToDecimalBigDynamicOpts(jsnCfg.Usage); err != nil {
return
}
rateOpts.Usage = append(rateOpts.Usage, usage...)
}
if jsnCfg.IntervalStart != nil {
- var intervalStart []*utils.DynamicDecimalBigOpt
- if intervalStart, err = utils.StringToDecimalBigDynamicOpts(jsnCfg.IntervalStart); err != nil {
+ var intervalStart []*DynamicDecimalOpt
+ if intervalStart, err = StringToDecimalBigDynamicOpts(jsnCfg.IntervalStart); err != nil {
return
}
rateOpts.IntervalStart = append(rateOpts.IntervalStart, intervalStart...)
@@ -220,25 +220,25 @@ func (RateSCfg) SName() string { return RateSJSON }
func (rCfg RateSCfg) CloneSection() Section { return rCfg.Clone() }
func (rateOpts *RatesOpts) Clone() *RatesOpts {
- var ratePrfIDs []*utils.DynamicStringSliceOpt
+ var ratePrfIDs []*DynamicStringSliceOpt
if rateOpts.ProfileIDs != nil {
- ratePrfIDs = utils.CloneDynamicStringSliceOpt(rateOpts.ProfileIDs)
+ ratePrfIDs = CloneDynamicStringSliceOpt(rateOpts.ProfileIDs)
}
- var startTime []*utils.DynamicStringOpt
+ var startTime []*DynamicStringOpt
if rateOpts.StartTime != nil {
- startTime = utils.CloneDynamicStringOpt(rateOpts.StartTime)
+ startTime = CloneDynamicStringOpt(rateOpts.StartTime)
}
- var usage []*utils.DynamicDecimalBigOpt
+ var usage []*DynamicDecimalOpt
if rateOpts.Usage != nil {
- usage = utils.CloneDynamicDecimalBigOpt(rateOpts.Usage)
+ usage = CloneDynamicDecimalOpt(rateOpts.Usage)
}
- var intervalStart []*utils.DynamicDecimalBigOpt
+ var intervalStart []*DynamicDecimalOpt
if rateOpts.IntervalStart != nil {
- intervalStart = utils.CloneDynamicDecimalBigOpt(rateOpts.IntervalStart)
+ intervalStart = CloneDynamicDecimalOpt(rateOpts.IntervalStart)
}
- var profileIgnoreFilters []*utils.DynamicBoolOpt
+ var profileIgnoreFilters []*DynamicBoolOpt
if rateOpts.ProfileIgnoreFilters != nil {
- profileIgnoreFilters = utils.CloneDynamicBoolOpt(rateOpts.ProfileIgnoreFilters)
+ profileIgnoreFilters = CloneDynamicBoolOpt(rateOpts.ProfileIgnoreFilters)
}
return &RatesOpts{
ProfileIDs: ratePrfIDs,
@@ -294,11 +294,11 @@ func (rCfg RateSCfg) Clone() (cln *RateSCfg) {
}
type RatesOptsJson struct {
- ProfileIDs []*utils.DynamicStringSliceOpt `json:"*profileIDs"`
- StartTime []*utils.DynamicStringOpt `json:"*startTime"`
- Usage []*utils.DynamicStringOpt `json:"*usage"`
- IntervalStart []*utils.DynamicStringOpt `json:"*intervalStart"`
- ProfileIgnoreFilters []*utils.DynamicBoolOpt `json:"*profileIgnoreFilters"`
+ ProfileIDs []*DynamicStringSliceOpt `json:"*profileIDs"`
+ StartTime []*DynamicStringOpt `json:"*startTime"`
+ Usage []*DynamicStringOpt `json:"*usage"`
+ IntervalStart []*DynamicStringOpt `json:"*intervalStart"`
+ ProfileIgnoreFilters []*DynamicBoolOpt `json:"*profileIgnoreFilters"`
}
type RateSJsonCfg struct {
@@ -325,19 +325,19 @@ func diffRatesOptsJsonCfg(d *RatesOptsJson, v1, v2 *RatesOpts) *RatesOptsJson {
if d == nil {
d = new(RatesOptsJson)
}
- if !utils.DynamicStringSliceOptEqual(v1.ProfileIDs, v2.ProfileIDs) {
+ if !DynamicStringSliceOptEqual(v1.ProfileIDs, v2.ProfileIDs) {
d.ProfileIDs = v2.ProfileIDs
}
- if !utils.DynamicStringOptEqual(v1.StartTime, v2.StartTime) {
+ if !DynamicStringOptEqual(v1.StartTime, v2.StartTime) {
d.StartTime = v2.StartTime
}
- if !utils.DynamicDecimalBigOptEqual(v1.Usage, v2.Usage) {
- d.Usage = utils.DecimalBigToStringDynamicOpts(v2.Usage)
+ if !DynamicDecimalOptEqual(v1.Usage, v2.Usage) {
+ d.Usage = DecimalToStringDynamicOpts(v2.Usage)
}
- if !utils.DynamicDecimalBigOptEqual(v1.IntervalStart, v2.IntervalStart) {
- d.IntervalStart = utils.DecimalBigToStringDynamicOpts(v2.IntervalStart)
+ if !DynamicDecimalOptEqual(v1.IntervalStart, v2.IntervalStart) {
+ d.IntervalStart = DecimalToStringDynamicOpts(v2.IntervalStart)
}
- if !utils.DynamicBoolOptEqual(v1.ProfileIgnoreFilters, v2.ProfileIgnoreFilters) {
+ if !DynamicBoolOptEqual(v1.ProfileIgnoreFilters, v2.ProfileIgnoreFilters) {
d.ProfileIgnoreFilters = v2.ProfileIgnoreFilters
}
return d
diff --git a/config/ratescfg_test.go b/config/ratescfg_test.go
index 0503bf00d..4444c008d 100644
--- a/config/ratescfg_test.go
+++ b/config/ratescfg_test.go
@@ -63,11 +63,11 @@ func TestRateSConfigloadFromJsonCfg(t *testing.T) {
RateNestedFields: true,
Verbosity: 20,
Opts: &RatesOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- StartTime: []*utils.DynamicStringOpt{},
- Usage: []*utils.DynamicDecimalBigOpt{},
- IntervalStart: []*utils.DynamicDecimalBigOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ StartTime: []*DynamicStringOpt{},
+ Usage: []*DynamicDecimalOpt{},
+ IntervalStart: []*DynamicDecimalOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
},
}
jsonCfg := NewDefaultCGRConfig()
@@ -102,11 +102,11 @@ func TestRatesCfgAsMapInterface(t *testing.T) {
utils.RateNestedFieldsCfg: false,
utils.Verbosity: 1000,
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaStartTime: []*utils.DynamicStringOpt{},
- utils.MetaUsage: []*utils.DynamicDecimalBigOpt{},
- utils.MetaIntervalStartCfg: []*utils.DynamicDecimalBigOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ utils.MetaProfileIDs: []*DynamicStringSliceOpt{},
+ utils.MetaStartTime: []*DynamicStringOpt{},
+ utils.MetaUsage: []*DynamicDecimalOpt{},
+ utils.MetaIntervalStartCfg: []*DynamicDecimalOpt{},
+ utils.MetaProfileIgnoreFilters: []*DynamicBoolOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -154,11 +154,11 @@ func TestRatesCfgAsMapInterface1(t *testing.T) {
utils.RateNestedFieldsCfg: true,
utils.Verbosity: 1000,
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaStartTime: []*utils.DynamicStringOpt{},
- utils.MetaUsage: []*utils.DynamicDecimalBigOpt{},
- utils.MetaIntervalStartCfg: []*utils.DynamicDecimalBigOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ utils.MetaProfileIDs: []*DynamicStringSliceOpt{},
+ utils.MetaStartTime: []*DynamicStringOpt{},
+ utils.MetaUsage: []*DynamicDecimalOpt{},
+ utils.MetaIntervalStartCfg: []*DynamicDecimalOpt{},
+ utils.MetaProfileIgnoreFilters: []*DynamicBoolOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -232,31 +232,25 @@ func TestDiffRateSJsonCfg(t *testing.T) {
RateNestedFields: false,
Verbosity: 2,
Opts: &RatesOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.org",
Values: []string{"RP1"},
},
},
- StartTime: []*utils.DynamicStringOpt{
+ StartTime: []*DynamicStringOpt{
{
Tenant: "cgrates.org",
Value: "",
},
},
- Usage: []*utils.DynamicDecimalBigOpt{
- {
- Tenant: "cgrates.org",
- Value: decimal.WithContext(utils.DecimalContext).SetUint64(2),
- },
+ Usage: []*DynamicDecimalOpt{
+ NewDynamicDecimalOpt(nil, "cgrates.org", decimal.WithContext(utils.DecimalContext).SetUint64(2), nil),
},
- IntervalStart: []*utils.DynamicDecimalBigOpt{
- {
- Tenant: "cgrates.org",
- Value: decimal.WithContext(utils.DecimalContext).SetUint64(2),
- },
+ IntervalStart: []*DynamicDecimalOpt{
+ NewDynamicDecimalOpt(nil, "cgrates.org", decimal.WithContext(utils.DecimalContext).SetUint64(2), nil),
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
@@ -279,33 +273,27 @@ func TestDiffRateSJsonCfg(t *testing.T) {
RateNestedFields: true,
Verbosity: 3,
Opts: &RatesOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
- Tenant: "cgrates.net",
+ Tenant: "cgrates.org",
Values: []string{"RP2"},
},
},
- StartTime: []*utils.DynamicStringOpt{
+ StartTime: []*DynamicStringOpt{
{
- Tenant: "cgrates.net",
+ Tenant: "cgrates.org",
Value: utils.MetaNow,
},
},
- Usage: []*utils.DynamicDecimalBigOpt{
- {
- Tenant: "cgrates.net",
- Value: decimal.WithContext(utils.DecimalContext).SetUint64(3),
- },
+ Usage: []*DynamicDecimalOpt{
+ NewDynamicDecimalOpt(nil, "cgrates.org", decimal.WithContext(utils.DecimalContext).SetUint64(3), nil),
},
- IntervalStart: []*utils.DynamicDecimalBigOpt{
- {
- Tenant: "cgrates.net",
- Value: decimal.WithContext(utils.DecimalContext).SetUint64(3),
- },
+ IntervalStart: []*DynamicDecimalOpt{
+ NewDynamicDecimalOpt(nil, "cgrates.org", decimal.WithContext(utils.DecimalContext).SetUint64(3), nil),
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
- Tenant: "cgrates.net",
+ Tenant: "cgrates.org",
Value: true,
},
},
@@ -326,33 +314,33 @@ func TestDiffRateSJsonCfg(t *testing.T) {
Rate_nested_fields: utils.BoolPointer(true),
Verbosity: utils.IntPointer(3),
Opts: &RatesOptsJson{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
- Tenant: "cgrates.net",
+ Tenant: "cgrates.org",
Values: []string{"RP2"},
},
},
- StartTime: []*utils.DynamicStringOpt{
+ StartTime: []*DynamicStringOpt{
{
- Tenant: "cgrates.net",
+ Tenant: "cgrates.org",
Value: utils.MetaNow,
},
},
- Usage: []*utils.DynamicStringOpt{
+ Usage: []*DynamicStringOpt{
{
- Tenant: "cgrates.net",
+ Tenant: "cgrates.org",
Value: "3",
},
},
- IntervalStart: []*utils.DynamicStringOpt{
+ IntervalStart: []*DynamicStringOpt{
{
- Tenant: "cgrates.net",
+ Tenant: "cgrates.org",
Value: "3",
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
- Tenant: "cgrates.net",
+ Tenant: "cgrates.org",
Value: true,
},
},
@@ -389,7 +377,7 @@ func TestRateSCloneSection(t *testing.T) {
RateNestedFields: false,
Verbosity: 2,
Opts: &RatesOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Values: []string{"RP1"},
},
@@ -411,7 +399,7 @@ func TestRateSCloneSection(t *testing.T) {
RateNestedFields: false,
Verbosity: 2,
Opts: &RatesOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Values: []string{"RP1"},
},
@@ -427,27 +415,23 @@ func TestRateSCloneSection(t *testing.T) {
func TestRatesOptsLoadFromJSON(t *testing.T) {
rateOpts := &RatesOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Values: []string{},
},
},
- StartTime: []*utils.DynamicStringOpt{
+ StartTime: []*DynamicStringOpt{
{
Value: utils.MetaNow,
},
},
- Usage: []*utils.DynamicDecimalBigOpt{
- {
- Value: nil,
- },
+ Usage: []*DynamicDecimalOpt{
+ {},
},
- IntervalStart: []*utils.DynamicDecimalBigOpt{
- {
- Value: nil,
- },
+ IntervalStart: []*DynamicDecimalOpt{
+ {},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Value: false,
},
@@ -460,13 +444,13 @@ func TestRatesOptsLoadFromJSON(t *testing.T) {
}
jsnCfg := &RatesOptsJson{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.org",
Values: []string{"RP2"},
},
},
- Usage: []*utils.DynamicStringOpt{
+ Usage: []*DynamicStringOpt{
{
Tenant: "cgrates.org",
Value: "error",
@@ -479,7 +463,7 @@ func TestRatesOptsLoadFromJSON(t *testing.T) {
}
jsnCfg = &RatesOptsJson{
- IntervalStart: []*utils.DynamicStringOpt{
+ IntervalStart: []*DynamicStringOpt{
{
Tenant: "cgrates.org",
Value: "error",
diff --git a/config/resourcescfg.go b/config/resourcescfg.go
index 0dcaff086..d1a3e84b1 100644
--- a/config/resourcescfg.go
+++ b/config/resourcescfg.go
@@ -33,9 +33,9 @@ const (
)
type ResourcesOpts struct {
- UsageID []*utils.DynamicStringOpt
- UsageTTL []*utils.DynamicDurationOpt
- Units []*utils.DynamicFloat64Opt
+ UsageID []*DynamicStringOpt
+ UsageTTL []*DynamicDurationOpt
+ Units []*DynamicFloat64Opt
}
// ResourceSConfig is resorces section config
@@ -70,8 +70,8 @@ func (rsOpts *ResourcesOpts) loadFromJSONCfg(jsnCfg *ResourcesOptsJson) (err err
rsOpts.UsageID = append(rsOpts.UsageID, jsnCfg.UsageID...)
}
if jsnCfg.UsageTTL != nil {
- var usageTTL []*utils.DynamicDurationOpt
- if usageTTL, err = utils.StringToDurationDynamicOpts(jsnCfg.UsageTTL); err != nil {
+ var usageTTL []*DynamicDurationOpt
+ if usageTTL, err = StringToDurationDynamicOpts(jsnCfg.UsageTTL); err != nil {
return
}
rsOpts.UsageTTL = append(rsOpts.UsageTTL, usageTTL...)
@@ -166,17 +166,17 @@ func (ResourceSConfig) SName() string { return ResourceSJSON }
func (rlcfg ResourceSConfig) CloneSection() Section { return rlcfg.Clone() }
func (rsOpts *ResourcesOpts) Clone() (cln *ResourcesOpts) {
- var usageID []*utils.DynamicStringOpt
+ var usageID []*DynamicStringOpt
if rsOpts.UsageID != nil {
- usageID = utils.CloneDynamicStringOpt(rsOpts.UsageID)
+ usageID = CloneDynamicStringOpt(rsOpts.UsageID)
}
- var usageTTL []*utils.DynamicDurationOpt
+ var usageTTL []*DynamicDurationOpt
if rsOpts.UsageTTL != nil {
- usageTTL = utils.CloneDynamicDurationOpt(rsOpts.UsageTTL)
+ usageTTL = CloneDynamicDurationOpt(rsOpts.UsageTTL)
}
- var units []*utils.DynamicFloat64Opt
+ var units []*DynamicFloat64Opt
if rsOpts.Units != nil {
- units = utils.CloneDynamicFloat64Opt(rsOpts.Units)
+ units = CloneDynamicFloat64Opt(rsOpts.Units)
}
cln = &ResourcesOpts{
UsageID: usageID,
@@ -218,9 +218,9 @@ func (rlcfg ResourceSConfig) Clone() (cln *ResourceSConfig) {
}
type ResourcesOptsJson struct {
- UsageID []*utils.DynamicStringOpt `json:"*usageID"`
- UsageTTL []*utils.DynamicStringOpt `json:"*usageTTL"`
- Units []*utils.DynamicFloat64Opt `json:"*units"`
+ UsageID []*DynamicStringOpt `json:"*usageID"`
+ UsageTTL []*DynamicStringOpt `json:"*usageTTL"`
+ Units []*DynamicFloat64Opt `json:"*units"`
}
// ResourceLimiter service config section
@@ -242,13 +242,13 @@ func diffResourcesOptsJsonCfg(d *ResourcesOptsJson, v1, v2 *ResourcesOpts) *Reso
if d == nil {
d = new(ResourcesOptsJson)
}
- if !utils.DynamicStringOptEqual(v1.UsageID, v2.UsageID) {
+ if !DynamicStringOptEqual(v1.UsageID, v2.UsageID) {
d.UsageID = v2.UsageID
}
- if !utils.DynamicDurationOptEqual(v1.UsageTTL, v2.UsageTTL) {
- d.UsageTTL = utils.DurationToStringDynamicOpts(v2.UsageTTL)
+ if !DynamicDurationOptEqual(v1.UsageTTL, v2.UsageTTL) {
+ d.UsageTTL = DurationToStringDynamicOpts(v2.UsageTTL)
}
- if !utils.DynamicFloat64OptEqual(v1.Units, v2.Units) {
+ if !DynamicFloat64OptEqual(v1.Units, v2.Units) {
d.Units = v2.Units
}
return d
diff --git a/config/resourcescfg_test.go b/config/resourcescfg_test.go
index 0f5c8b494..ec2493dd2 100644
--- a/config/resourcescfg_test.go
+++ b/config/resourcescfg_test.go
@@ -50,9 +50,9 @@ func TestResourceSConfigloadFromJsonCfgCase1(t *testing.T) {
NotExistsIndexedFields: &[]string{"*req.index1"},
NestedFields: true,
Opts: &ResourcesOpts{
- UsageID: []*utils.DynamicStringOpt{},
- UsageTTL: []*utils.DynamicDurationOpt{},
- Units: []*utils.DynamicFloat64Opt{},
+ UsageID: []*DynamicStringOpt{},
+ UsageTTL: []*DynamicDurationOpt{},
+ Units: []*DynamicFloat64Opt{},
},
}
cfg := NewDefaultCGRConfig()
@@ -69,17 +69,17 @@ func TestResourceSConfigloadFromJsonCfgCase1(t *testing.T) {
func TestResourceSLoadFromJSONOpts(t *testing.T) {
resOpts := &ResourcesOpts{
- UsageID: []*utils.DynamicStringOpt{
+ UsageID: []*DynamicStringOpt{
{
Value: utils.EmptyString,
},
},
- UsageTTL: []*utils.DynamicDurationOpt{
+ UsageTTL: []*DynamicDurationOpt{
{
Value: 72 * time.Hour,
},
},
- Units: []*utils.DynamicFloat64Opt{
+ Units: []*DynamicFloat64Opt{
{
Value: 1,
},
@@ -87,19 +87,19 @@ func TestResourceSLoadFromJSONOpts(t *testing.T) {
}
resOptsJson := &ResourcesOptsJson{
- UsageID: []*utils.DynamicStringOpt{
+ UsageID: []*DynamicStringOpt{
{
Tenant: "cgrates.org",
Value: "usg2",
},
},
- UsageTTL: []*utils.DynamicStringOpt{
+ UsageTTL: []*DynamicStringOpt{
{
Tenant: "cgrates.org",
Value: "error",
},
},
- Units: []*utils.DynamicFloat64Opt{
+ Units: []*DynamicFloat64Opt{
{
Tenant: "cgrates.org",
Value: 2.5,
@@ -142,9 +142,9 @@ func TestResourceSConfigAsMapInterface(t *testing.T) {
utils.NotExistsIndexedFieldsCfg: []string{},
utils.NestedFieldsCfg: false,
utils.OptsCfg: map[string]any{
- utils.MetaUsageIDCfg: []*utils.DynamicStringOpt{},
- utils.MetaUsageTTLCfg: []*utils.DynamicDurationOpt{},
- utils.MetaUnitsCfg: []*utils.DynamicFloat64Opt{},
+ utils.MetaUsageIDCfg: []*DynamicStringOpt{},
+ utils.MetaUsageTTLCfg: []*DynamicDurationOpt{},
+ utils.MetaUnitsCfg: []*DynamicFloat64Opt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -181,9 +181,9 @@ func TestResourceSConfigAsMapInterface1(t *testing.T) {
utils.NotExistsIndexedFieldsCfg: []string{"*req.prefix_indexed_fields1"},
utils.NestedFieldsCfg: true,
utils.OptsCfg: map[string]any{
- utils.MetaUsageIDCfg: []*utils.DynamicStringOpt{},
- utils.MetaUsageTTLCfg: []*utils.DynamicDurationOpt{},
- utils.MetaUnitsCfg: []*utils.DynamicFloat64Opt{},
+ utils.MetaUsageIDCfg: []*DynamicStringOpt{},
+ utils.MetaUsageTTLCfg: []*DynamicDurationOpt{},
+ utils.MetaUnitsCfg: []*DynamicFloat64Opt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -236,17 +236,17 @@ func TestDiffResourceSJsonCfg(t *testing.T) {
SuffixIndexedFields: &[]string{"*req.index3"},
NestedFields: false,
Opts: &ResourcesOpts{
- UsageID: []*utils.DynamicStringOpt{
+ UsageID: []*DynamicStringOpt{
{
Value: "usg1",
},
},
- UsageTTL: []*utils.DynamicDurationOpt{
+ UsageTTL: []*DynamicDurationOpt{
{
Value: time.Second,
},
},
- Units: []*utils.DynamicFloat64Opt{
+ Units: []*DynamicFloat64Opt{
{
Value: 1,
},
@@ -264,17 +264,17 @@ func TestDiffResourceSJsonCfg(t *testing.T) {
SuffixIndexedFields: &[]string{"*req.index33"},
NestedFields: true,
Opts: &ResourcesOpts{
- UsageID: []*utils.DynamicStringOpt{
+ UsageID: []*DynamicStringOpt{
{
Value: "usg2",
},
},
- UsageTTL: []*utils.DynamicDurationOpt{
+ UsageTTL: []*DynamicDurationOpt{
{
Value: time.Minute,
},
},
- Units: []*utils.DynamicFloat64Opt{
+ Units: []*DynamicFloat64Opt{
{
Value: 2,
},
@@ -292,17 +292,17 @@ func TestDiffResourceSJsonCfg(t *testing.T) {
Suffix_indexed_fields: &[]string{"*req.index33"},
Nested_fields: utils.BoolPointer(true),
Opts: &ResourcesOptsJson{
- UsageID: []*utils.DynamicStringOpt{
+ UsageID: []*DynamicStringOpt{
{
Value: "usg2",
},
},
- UsageTTL: []*utils.DynamicStringOpt{
+ UsageTTL: []*DynamicStringOpt{
{
Value: "1m0s",
},
},
- Units: []*utils.DynamicFloat64Opt{
+ Units: []*DynamicFloat64Opt{
{
Value: 2,
},
@@ -336,17 +336,17 @@ func TestResourcesCloneSection(t *testing.T) {
SuffixIndexedFields: &[]string{"*req.index3"},
NestedFields: false,
Opts: &ResourcesOpts{
- UsageID: []*utils.DynamicStringOpt{
+ UsageID: []*DynamicStringOpt{
{
Value: "usg1",
},
},
- UsageTTL: []*utils.DynamicDurationOpt{
+ UsageTTL: []*DynamicDurationOpt{
{
Value: time.Second,
},
},
- Units: []*utils.DynamicFloat64Opt{
+ Units: []*DynamicFloat64Opt{
{
Value: 1,
},
@@ -364,17 +364,17 @@ func TestResourcesCloneSection(t *testing.T) {
SuffixIndexedFields: &[]string{"*req.index3"},
NestedFields: false,
Opts: &ResourcesOpts{
- UsageID: []*utils.DynamicStringOpt{
+ UsageID: []*DynamicStringOpt{
{
Value: "usg1",
},
},
- UsageTTL: []*utils.DynamicDurationOpt{
+ UsageTTL: []*DynamicDurationOpt{
{
Value: time.Second,
},
},
- Units: []*utils.DynamicFloat64Opt{
+ Units: []*DynamicFloat64Opt{
{
Value: 1,
},
diff --git a/config/routescfg.go b/config/routescfg.go
index 5affc4016..d3b22a9a3 100644
--- a/config/routescfg.go
+++ b/config/routescfg.go
@@ -39,14 +39,14 @@ const (
)
type RoutesOpts struct {
- Context []*utils.DynamicStringOpt
- IgnoreErrors []*utils.DynamicBoolOpt
- MaxCost []*utils.DynamicInterfaceOpt
- Limit []*utils.DynamicIntPointerOpt
- Offset []*utils.DynamicIntPointerOpt
- MaxItems []*utils.DynamicIntPointerOpt
- ProfileCount []*utils.DynamicIntPointerOpt
- Usage []*utils.DynamicDecimalBigOpt
+ Context []*DynamicStringOpt
+ IgnoreErrors []*DynamicBoolOpt
+ MaxCost []*DynamicInterfaceOpt
+ Limit []*DynamicIntPointerOpt
+ Offset []*DynamicIntPointerOpt
+ MaxItems []*DynamicIntPointerOpt
+ ProfileCount []*DynamicIntPointerOpt
+ Usage []*DynamicDecimalOpt
}
// RouteSCfg is the configuration of route service
@@ -91,20 +91,20 @@ func (rtsOpts *RoutesOpts) loadFromJSONCfg(jsnCfg *RoutesOptsJson) (err error) {
rtsOpts.MaxCost = append(rtsOpts.MaxCost, jsnCfg.MaxCost...)
}
if jsnCfg.Limit != nil {
- rtsOpts.Limit = append(rtsOpts.Limit, utils.IntToIntPointerDynamicOpts(jsnCfg.Limit)...)
+ rtsOpts.Limit = append(rtsOpts.Limit, IntToIntPointerDynamicOpts(jsnCfg.Limit)...)
}
if jsnCfg.Offset != nil {
- rtsOpts.Offset = append(rtsOpts.Offset, utils.IntToIntPointerDynamicOpts(jsnCfg.Offset)...)
+ rtsOpts.Offset = append(rtsOpts.Offset, IntToIntPointerDynamicOpts(jsnCfg.Offset)...)
}
if jsnCfg.MaxItems != nil {
- rtsOpts.MaxItems = append(rtsOpts.MaxItems, utils.IntToIntPointerDynamicOpts(jsnCfg.MaxItems)...)
+ rtsOpts.MaxItems = append(rtsOpts.MaxItems, IntToIntPointerDynamicOpts(jsnCfg.MaxItems)...)
}
if jsnCfg.ProfileCount != nil {
- rtsOpts.ProfileCount = append(rtsOpts.ProfileCount, utils.IntToIntPointerDynamicOpts(jsnCfg.ProfileCount)...)
+ rtsOpts.ProfileCount = append(rtsOpts.ProfileCount, IntToIntPointerDynamicOpts(jsnCfg.ProfileCount)...)
}
if jsnCfg.Usage != nil {
- var usage []*utils.DynamicDecimalBigOpt
- if usage, err = utils.StringToDecimalBigDynamicOpts(jsnCfg.Usage); err != nil {
+ var usage []*DynamicDecimalOpt
+ if usage, err = StringToDecimalBigDynamicOpts(jsnCfg.Usage); err != nil {
return
}
rtsOpts.Usage = append(rtsOpts.Usage, usage...)
@@ -164,37 +164,37 @@ func (rts *RouteSCfg) loadFromJSONCfg(jsnCfg *RouteSJsonCfg) (err error) {
return
}
func (rts *RoutesOpts) Clone() (cln *RoutesOpts) {
- var context []*utils.DynamicStringOpt
+ var context []*DynamicStringOpt
if rts.Context != nil {
- context = utils.CloneDynamicStringOpt(rts.Context)
+ context = CloneDynamicStringOpt(rts.Context)
}
- var ignoreErrors []*utils.DynamicBoolOpt
+ var ignoreErrors []*DynamicBoolOpt
if rts.IgnoreErrors != nil {
- ignoreErrors = utils.CloneDynamicBoolOpt(rts.IgnoreErrors)
+ ignoreErrors = CloneDynamicBoolOpt(rts.IgnoreErrors)
}
- var maxCost []*utils.DynamicInterfaceOpt
+ var maxCost []*DynamicInterfaceOpt
if rts.MaxCost != nil {
- maxCost = utils.CloneDynamicInterfaceOpt(rts.MaxCost)
+ maxCost = CloneDynamicInterfaceOpt(rts.MaxCost)
}
- var profileCount []*utils.DynamicIntPointerOpt
+ var profileCount []*DynamicIntPointerOpt
if rts.ProfileCount != nil {
- profileCount = utils.CloneDynamicIntPointerOpt(rts.ProfileCount)
+ profileCount = CloneDynamicIntPointerOpt(rts.ProfileCount)
}
- var limit []*utils.DynamicIntPointerOpt
+ var limit []*DynamicIntPointerOpt
if rts.Limit != nil {
- limit = utils.CloneDynamicIntPointerOpt(rts.Limit)
+ limit = CloneDynamicIntPointerOpt(rts.Limit)
}
- var offset []*utils.DynamicIntPointerOpt
+ var offset []*DynamicIntPointerOpt
if rts.Offset != nil {
- offset = utils.CloneDynamicIntPointerOpt(rts.Offset)
+ offset = CloneDynamicIntPointerOpt(rts.Offset)
}
- var maxItems []*utils.DynamicIntPointerOpt
+ var maxItems []*DynamicIntPointerOpt
if rts.MaxItems != nil {
- maxItems = utils.CloneDynamicIntPointerOpt(rts.MaxItems)
+ maxItems = CloneDynamicIntPointerOpt(rts.MaxItems)
}
- var usage []*utils.DynamicDecimalBigOpt
+ var usage []*DynamicDecimalOpt
if rts.Usage != nil {
- usage = utils.CloneDynamicDecimalBigOpt(rts.Usage)
+ usage = CloneDynamicDecimalOpt(rts.Usage)
}
cln = &RoutesOpts{
Context: context,
@@ -308,14 +308,14 @@ func (rts RouteSCfg) Clone() (cln *RouteSCfg) {
}
type RoutesOptsJson struct {
- Context []*utils.DynamicStringOpt `json:"*context"`
- IgnoreErrors []*utils.DynamicBoolOpt `json:"*ignoreErrors"`
- MaxCost []*utils.DynamicInterfaceOpt `json:"*maxCost"`
- Limit []*utils.DynamicIntOpt `json:"*limit"`
- Offset []*utils.DynamicIntOpt `json:"*offset"`
- MaxItems []*utils.DynamicIntOpt `json:"*maxItems"`
- ProfileCount []*utils.DynamicIntOpt `json:"*profileCount"`
- Usage []*utils.DynamicStringOpt `json:"*usage"`
+ Context []*DynamicStringOpt `json:"*context"`
+ IgnoreErrors []*DynamicBoolOpt `json:"*ignoreErrors"`
+ MaxCost []*DynamicInterfaceOpt `json:"*maxCost"`
+ Limit []*DynamicIntOpt `json:"*limit"`
+ Offset []*DynamicIntOpt `json:"*offset"`
+ MaxItems []*DynamicIntOpt `json:"*maxItems"`
+ ProfileCount []*DynamicIntOpt `json:"*profileCount"`
+ Usage []*DynamicStringOpt `json:"*usage"`
}
// Route service config section
@@ -341,29 +341,29 @@ func diffRoutesOptsJsonCfg(d *RoutesOptsJson, v1, v2 *RoutesOpts) *RoutesOptsJso
if d == nil {
d = new(RoutesOptsJson)
}
- if !utils.DynamicStringOptEqual(v1.Context, v2.Context) {
+ if !DynamicStringOptEqual(v1.Context, v2.Context) {
d.Context = v2.Context
}
- if !utils.DynamicIntPointerOptEqual(v1.Limit, v2.Limit) {
- d.Limit = utils.IntPointerToIntDynamicOpts(v2.Limit)
+ if !DynamicIntPointerOptEqual(v1.Limit, v2.Limit) {
+ d.Limit = IntPointerToIntDynamicOpts(v2.Limit)
}
- if !utils.DynamicIntPointerOptEqual(v1.Offset, v2.Offset) {
- d.Offset = utils.IntPointerToIntDynamicOpts(v2.Offset)
+ if !DynamicIntPointerOptEqual(v1.Offset, v2.Offset) {
+ d.Offset = IntPointerToIntDynamicOpts(v2.Offset)
}
- if !utils.DynamicIntPointerOptEqual(v1.MaxItems, v2.MaxItems) {
- d.MaxItems = utils.IntPointerToIntDynamicOpts(v2.MaxItems)
+ if !DynamicIntPointerOptEqual(v1.MaxItems, v2.MaxItems) {
+ d.MaxItems = IntPointerToIntDynamicOpts(v2.MaxItems)
}
- if !utils.DynamicInterfaceOptEqual(v1.MaxCost, v2.MaxCost) {
+ if !DynamicInterfaceOptEqual(v1.MaxCost, v2.MaxCost) {
d.MaxCost = v2.MaxCost
}
- if !utils.DynamicBoolOptEqual(v1.IgnoreErrors, v2.IgnoreErrors) {
+ if !DynamicBoolOptEqual(v1.IgnoreErrors, v2.IgnoreErrors) {
d.IgnoreErrors = v2.IgnoreErrors
}
- if !utils.DynamicIntPointerOptEqual(v1.ProfileCount, v2.ProfileCount) {
- d.ProfileCount = utils.IntPointerToIntDynamicOpts(v2.ProfileCount)
+ if !DynamicIntPointerOptEqual(v1.ProfileCount, v2.ProfileCount) {
+ d.ProfileCount = IntPointerToIntDynamicOpts(v2.ProfileCount)
}
- if !utils.DynamicDecimalBigOptEqual(v1.Usage, v2.Usage) {
- d.Usage = utils.DecimalBigToStringDynamicOpts(v2.Usage)
+ if !DynamicDecimalOptEqual(v1.Usage, v2.Usage) {
+ d.Usage = DecimalToStringDynamicOpts(v2.Usage)
}
return d
}
diff --git a/config/routescfg_test.go b/config/routescfg_test.go
index 66de771e2..f56b7e5d5 100644
--- a/config/routescfg_test.go
+++ b/config/routescfg_test.go
@@ -59,14 +59,14 @@ func TestRouteSCfgloadFromJsonCfg(t *testing.T) {
DefaultRatio: 10,
NestedFields: true,
Opts: &RoutesOpts{
- Context: []*utils.DynamicStringOpt{},
- ProfileCount: []*utils.DynamicIntPointerOpt{},
- IgnoreErrors: []*utils.DynamicBoolOpt{},
- MaxCost: []*utils.DynamicInterfaceOpt{},
- Limit: []*utils.DynamicIntPointerOpt{},
- Offset: []*utils.DynamicIntPointerOpt{},
- MaxItems: []*utils.DynamicIntPointerOpt{},
- Usage: []*utils.DynamicDecimalBigOpt{},
+ Context: []*DynamicStringOpt{},
+ ProfileCount: []*DynamicIntPointerOpt{},
+ IgnoreErrors: []*DynamicBoolOpt{},
+ MaxCost: []*DynamicInterfaceOpt{},
+ Limit: []*DynamicIntPointerOpt{},
+ Offset: []*DynamicIntPointerOpt{},
+ MaxItems: []*DynamicIntPointerOpt{},
+ Usage: []*DynamicDecimalOpt{},
},
}
jsonCfg := NewDefaultCGRConfig()
@@ -76,7 +76,7 @@ func TestRouteSCfgloadFromJsonCfg(t *testing.T) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(jsonCfg.routeSCfg))
}
- cfgJSON.Opts.Usage = []*utils.DynamicStringOpt{
+ cfgJSON.Opts.Usage = []*DynamicStringOpt{
{
Tenant: "cgrates.org",
Value: "error",
@@ -119,14 +119,14 @@ func TestRouteSCfgAsMapInterface(t *testing.T) {
utils.AccountSConnsCfg: []string{},
utils.DefaultRatioCfg: 1,
utils.OptsCfg: map[string]any{
- utils.OptsContext: []*utils.DynamicStringOpt{},
- utils.MetaLimitCfg: []*utils.DynamicIntPointerOpt{},
- utils.MetaOffsetCfg: []*utils.DynamicIntPointerOpt{},
- utils.MetaMaxItemsCfg: []*utils.DynamicIntPointerOpt{},
- utils.MetaProfileCountCfg: []*utils.DynamicIntPointerOpt{},
- utils.MetaIgnoreErrorsCfg: []*utils.DynamicBoolOpt{},
- utils.MetaMaxCostCfg: []*utils.DynamicInterfaceOpt{},
- utils.MetaUsage: []*utils.DynamicDecimalBigOpt{},
+ utils.OptsContext: []*DynamicStringOpt{},
+ utils.MetaLimitCfg: []*DynamicIntPointerOpt{},
+ utils.MetaOffsetCfg: []*DynamicIntPointerOpt{},
+ utils.MetaMaxItemsCfg: []*DynamicIntPointerOpt{},
+ utils.MetaProfileCountCfg: []*DynamicIntPointerOpt{},
+ utils.MetaIgnoreErrorsCfg: []*DynamicBoolOpt{},
+ utils.MetaMaxCostCfg: []*DynamicInterfaceOpt{},
+ utils.MetaUsage: []*DynamicDecimalOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -171,14 +171,14 @@ func TestRouteSCfgAsMapInterface1(t *testing.T) {
utils.AccountSConnsCfg: []string{utils.MetaInternal, "conn1"},
utils.DefaultRatioCfg: 2,
utils.OptsCfg: map[string]any{
- utils.OptsContext: []*utils.DynamicStringOpt{},
- utils.MetaLimitCfg: []*utils.DynamicIntPointerOpt{},
- utils.MetaOffsetCfg: []*utils.DynamicIntPointerOpt{},
- utils.MetaMaxItemsCfg: []*utils.DynamicIntPointerOpt{},
- utils.MetaProfileCountCfg: []*utils.DynamicIntPointerOpt{},
- utils.MetaIgnoreErrorsCfg: []*utils.DynamicBoolOpt{},
- utils.MetaMaxCostCfg: []*utils.DynamicInterfaceOpt{},
- utils.MetaUsage: []*utils.DynamicDecimalBigOpt{},
+ utils.OptsContext: []*DynamicStringOpt{},
+ utils.MetaLimitCfg: []*DynamicIntPointerOpt{},
+ utils.MetaOffsetCfg: []*DynamicIntPointerOpt{},
+ utils.MetaMaxItemsCfg: []*DynamicIntPointerOpt{},
+ utils.MetaProfileCountCfg: []*DynamicIntPointerOpt{},
+ utils.MetaIgnoreErrorsCfg: []*DynamicBoolOpt{},
+ utils.MetaMaxCostCfg: []*DynamicInterfaceOpt{},
+ utils.MetaUsage: []*DynamicDecimalOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -245,43 +245,40 @@ func TestDiffRouteSJsonCfg(t *testing.T) {
AccountSConns: []string{"*localhost"},
DefaultRatio: 2,
Opts: &RoutesOpts{
- Context: []*utils.DynamicStringOpt{
+ Context: []*DynamicStringOpt{
{
Value: utils.MetaAny,
},
},
- IgnoreErrors: []*utils.DynamicBoolOpt{
+ IgnoreErrors: []*DynamicBoolOpt{
{
Value: true,
},
},
- MaxCost: []*utils.DynamicInterfaceOpt{
+ MaxCost: []*DynamicInterfaceOpt{
{
Value: 5,
},
},
- Limit: []*utils.DynamicIntPointerOpt{
+ Limit: []*DynamicIntPointerOpt{
{
Value: utils.IntPointer(2),
},
},
- Offset: []*utils.DynamicIntPointerOpt{
+ Offset: []*DynamicIntPointerOpt{
{
Value: utils.IntPointer(2),
},
},
- ProfileCount: []*utils.DynamicIntPointerOpt{
+ ProfileCount: []*DynamicIntPointerOpt{
{
Value: utils.IntPointer(1),
},
},
- Usage: []*utils.DynamicDecimalBigOpt{
- {
- Tenant: "cgrates.net",
- Value: decimal.WithContext(utils.DecimalContext).SetUint64(3),
- },
+ Usage: []*DynamicDecimalOpt{
+ NewDynamicDecimalOpt(nil, "cgrates.org", decimal.WithContext(utils.DecimalContext).SetUint64(3), nil),
},
- MaxItems: []*utils.DynamicIntPointerOpt{
+ MaxItems: []*DynamicIntPointerOpt{
{
FilterIDs: []string{"id1"},
Tenant: "cgrates.net",
@@ -305,43 +302,40 @@ func TestDiffRouteSJsonCfg(t *testing.T) {
AccountSConns: []string{"*birpc"},
DefaultRatio: 3,
Opts: &RoutesOpts{
- Context: []*utils.DynamicStringOpt{
+ Context: []*DynamicStringOpt{
{
Value: utils.MetaSessionS,
},
},
- IgnoreErrors: []*utils.DynamicBoolOpt{
+ IgnoreErrors: []*DynamicBoolOpt{
{
Value: false,
},
},
- MaxCost: []*utils.DynamicInterfaceOpt{
+ MaxCost: []*DynamicInterfaceOpt{
{
Value: 6,
},
},
- Limit: []*utils.DynamicIntPointerOpt{
+ Limit: []*DynamicIntPointerOpt{
{
Value: utils.IntPointer(3),
},
},
- Offset: []*utils.DynamicIntPointerOpt{
+ Offset: []*DynamicIntPointerOpt{
{
Value: utils.IntPointer(3),
},
},
- ProfileCount: []*utils.DynamicIntPointerOpt{
+ ProfileCount: []*DynamicIntPointerOpt{
{
Value: utils.IntPointer(2),
},
},
- Usage: []*utils.DynamicDecimalBigOpt{
- {
- Tenant: "cgrates.org",
- Value: decimal.WithContext(utils.DecimalContext).SetUint64(2),
- },
+ Usage: []*DynamicDecimalOpt{
+ NewDynamicDecimalOpt(nil, "cgrates.org", decimal.WithContext(utils.DecimalContext).SetUint64(2), nil),
},
- MaxItems: []*utils.DynamicIntPointerOpt{
+ MaxItems: []*DynamicIntPointerOpt{
{
FilterIDs: []string{"id2"},
Tenant: "cgrates.org",
@@ -365,43 +359,43 @@ func TestDiffRouteSJsonCfg(t *testing.T) {
Accounts_conns: &[]string{"*birpc"},
Default_ratio: utils.IntPointer(3),
Opts: &RoutesOptsJson{
- Context: []*utils.DynamicStringOpt{
+ Context: []*DynamicStringOpt{
{
Value: utils.MetaSessionS,
},
},
- IgnoreErrors: []*utils.DynamicBoolOpt{
+ IgnoreErrors: []*DynamicBoolOpt{
{
Value: false,
},
},
- MaxCost: []*utils.DynamicInterfaceOpt{
+ MaxCost: []*DynamicInterfaceOpt{
{
Value: 6,
},
},
- Limit: []*utils.DynamicIntOpt{
+ Limit: []*DynamicIntOpt{
{
Value: 3,
},
},
- Offset: []*utils.DynamicIntOpt{
+ Offset: []*DynamicIntOpt{
{
Value: 3,
},
},
- ProfileCount: []*utils.DynamicIntOpt{
+ ProfileCount: []*DynamicIntOpt{
{
Value: 2,
},
},
- Usage: []*utils.DynamicStringOpt{
+ Usage: []*DynamicStringOpt{
{
Tenant: "cgrates.org",
Value: "2",
},
},
- MaxItems: []*utils.DynamicIntOpt{
+ MaxItems: []*DynamicIntOpt{
{
FilterIDs: []string{"id2"},
Tenant: "cgrates.org",
@@ -440,32 +434,32 @@ func TestRouteSCloneSection(t *testing.T) {
DefaultRatio: 2,
Opts: &RoutesOpts{
- Context: []*utils.DynamicStringOpt{
+ Context: []*DynamicStringOpt{
{
Value: utils.MetaAny,
},
},
- IgnoreErrors: []*utils.DynamicBoolOpt{
+ IgnoreErrors: []*DynamicBoolOpt{
{
Value: true,
},
},
- MaxCost: []*utils.DynamicInterfaceOpt{
+ MaxCost: []*DynamicInterfaceOpt{
{
Value: 5,
},
},
- Limit: []*utils.DynamicIntPointerOpt{
+ Limit: []*DynamicIntPointerOpt{
{
Value: utils.IntPointer(1),
},
},
- Offset: []*utils.DynamicIntPointerOpt{
+ Offset: []*DynamicIntPointerOpt{
{
Value: utils.IntPointer(1),
},
},
- ProfileCount: []*utils.DynamicIntPointerOpt{
+ ProfileCount: []*DynamicIntPointerOpt{
{
Value: utils.IntPointer(1),
},
@@ -485,32 +479,32 @@ func TestRouteSCloneSection(t *testing.T) {
StatSConns: []string{"*localhost"},
DefaultRatio: 2,
Opts: &RoutesOpts{
- Context: []*utils.DynamicStringOpt{
+ Context: []*DynamicStringOpt{
{
Value: utils.MetaAny,
},
},
- IgnoreErrors: []*utils.DynamicBoolOpt{
+ IgnoreErrors: []*DynamicBoolOpt{
{
Value: true,
},
},
- MaxCost: []*utils.DynamicInterfaceOpt{
+ MaxCost: []*DynamicInterfaceOpt{
{
Value: 5,
},
},
- Limit: []*utils.DynamicIntPointerOpt{
+ Limit: []*DynamicIntPointerOpt{
{
Value: utils.IntPointer(1),
},
},
- Offset: []*utils.DynamicIntPointerOpt{
+ Offset: []*DynamicIntPointerOpt{
{
Value: utils.IntPointer(1),
},
},
- ProfileCount: []*utils.DynamicIntPointerOpt{
+ ProfileCount: []*DynamicIntPointerOpt{
{
Value: utils.IntPointer(1),
},
diff --git a/config/sessionscfg.go b/config/sessionscfg.go
index 65af001ed..d55bc2bdf 100644
--- a/config/sessionscfg.go
+++ b/config/sessionscfg.go
@@ -60,37 +60,37 @@ const (
)
type SessionsOpts struct {
- Accounts []*utils.DynamicBoolOpt
- Attributes []*utils.DynamicBoolOpt
- CDRs []*utils.DynamicBoolOpt
- Chargers []*utils.DynamicBoolOpt
- Resources []*utils.DynamicBoolOpt
- Routes []*utils.DynamicBoolOpt
- Stats []*utils.DynamicBoolOpt
- Thresholds []*utils.DynamicBoolOpt
- Initiate []*utils.DynamicBoolOpt
- Update []*utils.DynamicBoolOpt
- Terminate []*utils.DynamicBoolOpt
- Message []*utils.DynamicBoolOpt
- AttributesDerivedReply []*utils.DynamicBoolOpt
- BlockerError []*utils.DynamicBoolOpt
- CDRsDerivedReply []*utils.DynamicBoolOpt
- ResourcesAuthorize []*utils.DynamicBoolOpt
- ResourcesAllocate []*utils.DynamicBoolOpt
- ResourcesRelease []*utils.DynamicBoolOpt
- ResourcesDerivedReply []*utils.DynamicBoolOpt
- RoutesDerivedReply []*utils.DynamicBoolOpt
- StatsDerivedReply []*utils.DynamicBoolOpt
- ThresholdsDerivedReply []*utils.DynamicBoolOpt
- MaxUsage []*utils.DynamicBoolOpt
- ForceDuration []*utils.DynamicBoolOpt
- TTL []*utils.DynamicDurationOpt
- Chargeable []*utils.DynamicBoolOpt
- TTLLastUsage []*utils.DynamicDurationPointerOpt
- TTLLastUsed []*utils.DynamicDurationPointerOpt
- DebitInterval []*utils.DynamicDurationOpt
- TTLMaxDelay []*utils.DynamicDurationOpt
- TTLUsage []*utils.DynamicDurationPointerOpt
+ Accounts []*DynamicBoolOpt
+ Attributes []*DynamicBoolOpt
+ CDRs []*DynamicBoolOpt
+ Chargers []*DynamicBoolOpt
+ Resources []*DynamicBoolOpt
+ Routes []*DynamicBoolOpt
+ Stats []*DynamicBoolOpt
+ Thresholds []*DynamicBoolOpt
+ Initiate []*DynamicBoolOpt
+ Update []*DynamicBoolOpt
+ Terminate []*DynamicBoolOpt
+ Message []*DynamicBoolOpt
+ AttributesDerivedReply []*DynamicBoolOpt
+ BlockerError []*DynamicBoolOpt
+ CDRsDerivedReply []*DynamicBoolOpt
+ ResourcesAuthorize []*DynamicBoolOpt
+ ResourcesAllocate []*DynamicBoolOpt
+ ResourcesRelease []*DynamicBoolOpt
+ ResourcesDerivedReply []*DynamicBoolOpt
+ RoutesDerivedReply []*DynamicBoolOpt
+ StatsDerivedReply []*DynamicBoolOpt
+ ThresholdsDerivedReply []*DynamicBoolOpt
+ MaxUsage []*DynamicBoolOpt
+ ForceDuration []*DynamicBoolOpt
+ TTL []*DynamicDurationOpt
+ Chargeable []*DynamicBoolOpt
+ TTLLastUsage []*DynamicDurationPointerOpt
+ TTLLastUsed []*DynamicDurationPointerOpt
+ DebitInterval []*DynamicDurationOpt
+ TTLMaxDelay []*DynamicDurationOpt
+ TTLUsage []*DynamicDurationPointerOpt
}
// SessionSCfg is the config section for SessionS
@@ -207,8 +207,8 @@ func (sesOpts *SessionsOpts) loadFromJSONCfg(jsnCfg *SessionsOptsJson) (err erro
sesOpts.ForceDuration = append(sesOpts.ForceDuration, jsnCfg.ForceDuration...)
}
if jsnCfg.TTL != nil {
- var ttl []*utils.DynamicDurationOpt
- if ttl, err = utils.StringToDurationDynamicOpts(jsnCfg.TTL); err != nil {
+ var ttl []*DynamicDurationOpt
+ if ttl, err = StringToDurationDynamicOpts(jsnCfg.TTL); err != nil {
return
}
sesOpts.TTL = append(sesOpts.TTL, ttl...)
@@ -217,36 +217,36 @@ func (sesOpts *SessionsOpts) loadFromJSONCfg(jsnCfg *SessionsOptsJson) (err erro
sesOpts.Chargeable = append(sesOpts.Chargeable, jsnCfg.Chargeable...)
}
if jsnCfg.TTLLastUsage != nil {
- var lastUsage []*utils.DynamicDurationPointerOpt
- if lastUsage, err = utils.StringToDurationPointerDynamicOpts(jsnCfg.TTLLastUsage); err != nil {
+ var lastUsage []*DynamicDurationPointerOpt
+ if lastUsage, err = StringToDurationPointerDynamicOpts(jsnCfg.TTLLastUsage); err != nil {
return
}
sesOpts.TTLLastUsage = append(sesOpts.TTLLastUsage, lastUsage...)
}
if jsnCfg.TTLLastUsed != nil {
- var lastUsed []*utils.DynamicDurationPointerOpt
- if lastUsed, err = utils.StringToDurationPointerDynamicOpts(jsnCfg.TTLLastUsed); err != nil {
+ var lastUsed []*DynamicDurationPointerOpt
+ if lastUsed, err = StringToDurationPointerDynamicOpts(jsnCfg.TTLLastUsed); err != nil {
return
}
sesOpts.TTLLastUsed = append(sesOpts.TTLLastUsed, lastUsed...)
}
if jsnCfg.DebitInterval != nil {
- var debitInterval []*utils.DynamicDurationOpt
- if debitInterval, err = utils.StringToDurationDynamicOpts(jsnCfg.DebitInterval); err != nil {
+ var debitInterval []*DynamicDurationOpt
+ if debitInterval, err = StringToDurationDynamicOpts(jsnCfg.DebitInterval); err != nil {
return
}
sesOpts.DebitInterval = append(sesOpts.DebitInterval, debitInterval...)
}
if jsnCfg.TTLMaxDelay != nil {
- var maxDelay []*utils.DynamicDurationOpt
- if maxDelay, err = utils.StringToDurationDynamicOpts(jsnCfg.TTLMaxDelay); err != nil {
+ var maxDelay []*DynamicDurationOpt
+ if maxDelay, err = StringToDurationDynamicOpts(jsnCfg.TTLMaxDelay); err != nil {
return
}
sesOpts.TTLMaxDelay = append(sesOpts.TTLMaxDelay, maxDelay...)
}
if jsnCfg.TTLUsage != nil {
- var usage []*utils.DynamicDurationPointerOpt
- if usage, err = utils.StringToDurationPointerDynamicOpts(jsnCfg.TTLUsage); err != nil {
+ var usage []*DynamicDurationPointerOpt
+ if usage, err = StringToDurationPointerDynamicOpts(jsnCfg.TTLUsage); err != nil {
return
}
sesOpts.TTLUsage = append(sesOpts.TTLUsage, usage...)
@@ -460,129 +460,129 @@ func (SessionSCfg) SName() string { return SessionSJSON }
func (scfg SessionSCfg) CloneSection() Section { return scfg.Clone() }
func (sesOpts *SessionsOpts) Clone() (cln *SessionsOpts) {
- var acntS []*utils.DynamicBoolOpt
+ var acntS []*DynamicBoolOpt
if sesOpts.Accounts != nil {
- acntS = utils.CloneDynamicBoolOpt(sesOpts.Accounts)
+ acntS = CloneDynamicBoolOpt(sesOpts.Accounts)
}
- var attrS []*utils.DynamicBoolOpt
+ var attrS []*DynamicBoolOpt
if sesOpts.Attributes != nil {
- attrS = utils.CloneDynamicBoolOpt(sesOpts.Attributes)
+ attrS = CloneDynamicBoolOpt(sesOpts.Attributes)
}
- var cdrS []*utils.DynamicBoolOpt
+ var cdrS []*DynamicBoolOpt
if sesOpts.CDRs != nil {
- cdrS = utils.CloneDynamicBoolOpt(sesOpts.CDRs)
+ cdrS = CloneDynamicBoolOpt(sesOpts.CDRs)
}
- var chrgS []*utils.DynamicBoolOpt
+ var chrgS []*DynamicBoolOpt
if sesOpts.Chargers != nil {
- chrgS = utils.CloneDynamicBoolOpt(sesOpts.Chargers)
+ chrgS = CloneDynamicBoolOpt(sesOpts.Chargers)
}
- var reS []*utils.DynamicBoolOpt
+ var reS []*DynamicBoolOpt
if sesOpts.Resources != nil {
- reS = utils.CloneDynamicBoolOpt(sesOpts.Resources)
+ reS = CloneDynamicBoolOpt(sesOpts.Resources)
}
- var rouS []*utils.DynamicBoolOpt
+ var rouS []*DynamicBoolOpt
if sesOpts.Routes != nil {
- rouS = utils.CloneDynamicBoolOpt(sesOpts.Routes)
+ rouS = CloneDynamicBoolOpt(sesOpts.Routes)
}
- var stS []*utils.DynamicBoolOpt
+ var stS []*DynamicBoolOpt
if sesOpts.Stats != nil {
- stS = utils.CloneDynamicBoolOpt(sesOpts.Stats)
+ stS = CloneDynamicBoolOpt(sesOpts.Stats)
}
- var thdS []*utils.DynamicBoolOpt
+ var thdS []*DynamicBoolOpt
if sesOpts.Thresholds != nil {
- thdS = utils.CloneDynamicBoolOpt(sesOpts.Thresholds)
+ thdS = CloneDynamicBoolOpt(sesOpts.Thresholds)
}
- var initS []*utils.DynamicBoolOpt
+ var initS []*DynamicBoolOpt
if sesOpts.Initiate != nil {
- initS = utils.CloneDynamicBoolOpt(sesOpts.Initiate)
+ initS = CloneDynamicBoolOpt(sesOpts.Initiate)
}
- var updS []*utils.DynamicBoolOpt
+ var updS []*DynamicBoolOpt
if sesOpts.Update != nil {
- updS = utils.CloneDynamicBoolOpt(sesOpts.Update)
+ updS = CloneDynamicBoolOpt(sesOpts.Update)
}
- var termS []*utils.DynamicBoolOpt
+ var termS []*DynamicBoolOpt
if sesOpts.Terminate != nil {
- termS = utils.CloneDynamicBoolOpt(sesOpts.Terminate)
+ termS = CloneDynamicBoolOpt(sesOpts.Terminate)
}
- var msg []*utils.DynamicBoolOpt
+ var msg []*DynamicBoolOpt
if sesOpts.Message != nil {
- msg = utils.CloneDynamicBoolOpt(sesOpts.Message)
+ msg = CloneDynamicBoolOpt(sesOpts.Message)
}
- var attrDerivedReply []*utils.DynamicBoolOpt
+ var attrDerivedReply []*DynamicBoolOpt
if sesOpts.AttributesDerivedReply != nil {
- attrDerivedReply = utils.CloneDynamicBoolOpt(sesOpts.AttributesDerivedReply)
+ attrDerivedReply = CloneDynamicBoolOpt(sesOpts.AttributesDerivedReply)
}
- var blockerErr []*utils.DynamicBoolOpt
+ var blockerErr []*DynamicBoolOpt
if sesOpts.BlockerError != nil {
- blockerErr = utils.CloneDynamicBoolOpt(sesOpts.BlockerError)
+ blockerErr = CloneDynamicBoolOpt(sesOpts.BlockerError)
}
- var cdrsDerivedReply []*utils.DynamicBoolOpt
+ var cdrsDerivedReply []*DynamicBoolOpt
if sesOpts.CDRsDerivedReply != nil {
- cdrsDerivedReply = utils.CloneDynamicBoolOpt(sesOpts.CDRsDerivedReply)
+ cdrsDerivedReply = CloneDynamicBoolOpt(sesOpts.CDRsDerivedReply)
}
- var resAuthorize []*utils.DynamicBoolOpt
+ var resAuthorize []*DynamicBoolOpt
if sesOpts.ResourcesAuthorize != nil {
- resAuthorize = utils.CloneDynamicBoolOpt(sesOpts.ResourcesAuthorize)
+ resAuthorize = CloneDynamicBoolOpt(sesOpts.ResourcesAuthorize)
}
- var resAllocate []*utils.DynamicBoolOpt
+ var resAllocate []*DynamicBoolOpt
if sesOpts.ResourcesAllocate != nil {
- resAllocate = utils.CloneDynamicBoolOpt(sesOpts.ResourcesAllocate)
+ resAllocate = CloneDynamicBoolOpt(sesOpts.ResourcesAllocate)
}
- var resRelease []*utils.DynamicBoolOpt
+ var resRelease []*DynamicBoolOpt
if sesOpts.ResourcesRelease != nil {
- resRelease = utils.CloneDynamicBoolOpt(sesOpts.ResourcesRelease)
+ resRelease = CloneDynamicBoolOpt(sesOpts.ResourcesRelease)
}
- var resDerivedReply []*utils.DynamicBoolOpt
+ var resDerivedReply []*DynamicBoolOpt
if sesOpts.ResourcesDerivedReply != nil {
- resDerivedReply = utils.CloneDynamicBoolOpt(sesOpts.ResourcesDerivedReply)
+ resDerivedReply = CloneDynamicBoolOpt(sesOpts.ResourcesDerivedReply)
}
- var rouDerivedReply []*utils.DynamicBoolOpt
+ var rouDerivedReply []*DynamicBoolOpt
if sesOpts.RoutesDerivedReply != nil {
- rouDerivedReply = utils.CloneDynamicBoolOpt(sesOpts.RoutesDerivedReply)
+ rouDerivedReply = CloneDynamicBoolOpt(sesOpts.RoutesDerivedReply)
}
- var stsDerivedReply []*utils.DynamicBoolOpt
+ var stsDerivedReply []*DynamicBoolOpt
if sesOpts.StatsDerivedReply != nil {
- stsDerivedReply = utils.CloneDynamicBoolOpt(sesOpts.StatsDerivedReply)
+ stsDerivedReply = CloneDynamicBoolOpt(sesOpts.StatsDerivedReply)
}
- var thdsDerivedReply []*utils.DynamicBoolOpt
+ var thdsDerivedReply []*DynamicBoolOpt
if sesOpts.ThresholdsDerivedReply != nil {
- thdsDerivedReply = utils.CloneDynamicBoolOpt(sesOpts.ThresholdsDerivedReply)
+ thdsDerivedReply = CloneDynamicBoolOpt(sesOpts.ThresholdsDerivedReply)
}
- var maxUsage []*utils.DynamicBoolOpt
+ var maxUsage []*DynamicBoolOpt
if sesOpts.MaxUsage != nil {
- maxUsage = utils.CloneDynamicBoolOpt(sesOpts.MaxUsage)
+ maxUsage = CloneDynamicBoolOpt(sesOpts.MaxUsage)
}
- var forceDuration []*utils.DynamicBoolOpt
+ var forceDuration []*DynamicBoolOpt
if sesOpts.ForceDuration != nil {
- forceDuration = utils.CloneDynamicBoolOpt(sesOpts.ForceDuration)
+ forceDuration = CloneDynamicBoolOpt(sesOpts.ForceDuration)
}
- var ttl []*utils.DynamicDurationOpt
+ var ttl []*DynamicDurationOpt
if sesOpts.TTL != nil {
- ttl = utils.CloneDynamicDurationOpt(sesOpts.TTL)
+ ttl = CloneDynamicDurationOpt(sesOpts.TTL)
}
- var chargeable []*utils.DynamicBoolOpt
+ var chargeable []*DynamicBoolOpt
if sesOpts.Chargeable != nil {
- chargeable = utils.CloneDynamicBoolOpt(sesOpts.Chargeable)
+ chargeable = CloneDynamicBoolOpt(sesOpts.Chargeable)
}
- var debitIvl []*utils.DynamicDurationOpt
+ var debitIvl []*DynamicDurationOpt
if sesOpts.DebitInterval != nil {
- debitIvl = utils.CloneDynamicDurationOpt(sesOpts.DebitInterval)
+ debitIvl = CloneDynamicDurationOpt(sesOpts.DebitInterval)
}
- var lastUsg []*utils.DynamicDurationPointerOpt
+ var lastUsg []*DynamicDurationPointerOpt
if sesOpts.TTLLastUsage != nil {
- lastUsg = utils.CloneDynamicDurationPointerOpt(sesOpts.TTLLastUsage)
+ lastUsg = CloneDynamicDurationPointerOpt(sesOpts.TTLLastUsage)
}
- var lastUsed []*utils.DynamicDurationPointerOpt
+ var lastUsed []*DynamicDurationPointerOpt
if sesOpts.TTLLastUsed != nil {
- lastUsed = utils.CloneDynamicDurationPointerOpt(sesOpts.TTLLastUsed)
+ lastUsed = CloneDynamicDurationPointerOpt(sesOpts.TTLLastUsed)
}
- var maxDelay []*utils.DynamicDurationOpt
+ var maxDelay []*DynamicDurationOpt
if sesOpts.TTLMaxDelay != nil {
- maxDelay = utils.CloneDynamicDurationOpt(sesOpts.TTLMaxDelay)
+ maxDelay = CloneDynamicDurationOpt(sesOpts.TTLMaxDelay)
}
- var usg []*utils.DynamicDurationPointerOpt
+ var usg []*DynamicDurationPointerOpt
if sesOpts.TTLUsage != nil {
- usg = utils.CloneDynamicDurationPointerOpt(sesOpts.TTLUsage)
+ usg = CloneDynamicDurationPointerOpt(sesOpts.TTLUsage)
}
return &SessionsOpts{
Accounts: acntS,
@@ -771,37 +771,37 @@ func diffSTIRJsonCfg(d *STIRJsonCfg, v1, v2 *STIRcfg) *STIRJsonCfg {
}
type SessionsOptsJson struct {
- Accounts []*utils.DynamicBoolOpt `json:"*accounts"`
- Attributes []*utils.DynamicBoolOpt `json:"*attributes"`
- CDRs []*utils.DynamicBoolOpt `json:"*cdrs"`
- Chargers []*utils.DynamicBoolOpt `json:"*chargers"`
- Resources []*utils.DynamicBoolOpt `json:"*resources"`
- Routes []*utils.DynamicBoolOpt `json:"*routes"`
- Stats []*utils.DynamicBoolOpt `json:"*stats"`
- Thresholds []*utils.DynamicBoolOpt `json:"*thresholds"`
- Initiate []*utils.DynamicBoolOpt `json:"*initiate"`
- Update []*utils.DynamicBoolOpt `json:"*update"`
- Terminate []*utils.DynamicBoolOpt `json:"*terminate"`
- Message []*utils.DynamicBoolOpt `json:"*message"`
- AttributesDerivedReply []*utils.DynamicBoolOpt `json:"*attributesDerivedReply"`
- BlockerError []*utils.DynamicBoolOpt `json:"*blockerError"`
- CDRsDerivedReply []*utils.DynamicBoolOpt `json:"*cdrsDerivedReply"`
- ResourcesAuthorize []*utils.DynamicBoolOpt `json:"*resourcesAuthorize"`
- ResourcesAllocate []*utils.DynamicBoolOpt `json:"*resourcesAllocate"`
- ResourcesRelease []*utils.DynamicBoolOpt `json:"*resourcesRelease"`
- ResourcesDerivedReply []*utils.DynamicBoolOpt `json:"*resourcesDerivedReply"`
- RoutesDerivedReply []*utils.DynamicBoolOpt `json:"*routesDerivedReply"`
- StatsDerivedReply []*utils.DynamicBoolOpt `json:"*statsDerivedReply"`
- ThresholdsDerivedReply []*utils.DynamicBoolOpt `json:"*thresholdsDerivedReply"`
- MaxUsage []*utils.DynamicBoolOpt `json:"*maxUsage"`
- ForceDuration []*utils.DynamicBoolOpt `json:"*forceDuration"`
- TTL []*utils.DynamicStringOpt `json:"*ttl"`
- Chargeable []*utils.DynamicBoolOpt `json:"*chargeable"`
- DebitInterval []*utils.DynamicStringOpt `json:"*debitInterval"`
- TTLLastUsage []*utils.DynamicStringOpt `json:"*ttlLastUsage"`
- TTLLastUsed []*utils.DynamicStringOpt `json:"*ttlLastUsed"`
- TTLMaxDelay []*utils.DynamicStringOpt `json:"*ttlMaxDelay"`
- TTLUsage []*utils.DynamicStringOpt `json:"*ttlUsage"`
+ Accounts []*DynamicBoolOpt `json:"*accounts"`
+ Attributes []*DynamicBoolOpt `json:"*attributes"`
+ CDRs []*DynamicBoolOpt `json:"*cdrs"`
+ Chargers []*DynamicBoolOpt `json:"*chargers"`
+ Resources []*DynamicBoolOpt `json:"*resources"`
+ Routes []*DynamicBoolOpt `json:"*routes"`
+ Stats []*DynamicBoolOpt `json:"*stats"`
+ Thresholds []*DynamicBoolOpt `json:"*thresholds"`
+ Initiate []*DynamicBoolOpt `json:"*initiate"`
+ Update []*DynamicBoolOpt `json:"*update"`
+ Terminate []*DynamicBoolOpt `json:"*terminate"`
+ Message []*DynamicBoolOpt `json:"*message"`
+ AttributesDerivedReply []*DynamicBoolOpt `json:"*attributesDerivedReply"`
+ BlockerError []*DynamicBoolOpt `json:"*blockerError"`
+ CDRsDerivedReply []*DynamicBoolOpt `json:"*cdrsDerivedReply"`
+ ResourcesAuthorize []*DynamicBoolOpt `json:"*resourcesAuthorize"`
+ ResourcesAllocate []*DynamicBoolOpt `json:"*resourcesAllocate"`
+ ResourcesRelease []*DynamicBoolOpt `json:"*resourcesRelease"`
+ ResourcesDerivedReply []*DynamicBoolOpt `json:"*resourcesDerivedReply"`
+ RoutesDerivedReply []*DynamicBoolOpt `json:"*routesDerivedReply"`
+ StatsDerivedReply []*DynamicBoolOpt `json:"*statsDerivedReply"`
+ ThresholdsDerivedReply []*DynamicBoolOpt `json:"*thresholdsDerivedReply"`
+ MaxUsage []*DynamicBoolOpt `json:"*maxUsage"`
+ ForceDuration []*DynamicBoolOpt `json:"*forceDuration"`
+ TTL []*DynamicStringOpt `json:"*ttl"`
+ Chargeable []*DynamicBoolOpt `json:"*chargeable"`
+ DebitInterval []*DynamicStringOpt `json:"*debitInterval"`
+ TTLLastUsage []*DynamicStringOpt `json:"*ttlLastUsage"`
+ TTLLastUsed []*DynamicStringOpt `json:"*ttlLastUsed"`
+ TTLMaxDelay []*DynamicStringOpt `json:"*ttlMaxDelay"`
+ TTLUsage []*DynamicStringOpt `json:"*ttlUsage"`
}
// SessionSJsonCfg config section
@@ -836,98 +836,98 @@ func diffSessionsOptsJsonCfg(d *SessionsOptsJson, v1, v2 *SessionsOpts) *Session
if d == nil {
d = new(SessionsOptsJson)
}
- if !utils.DynamicBoolOptEqual(v1.Accounts, v2.Accounts) {
+ if !DynamicBoolOptEqual(v1.Accounts, v2.Accounts) {
d.Accounts = v2.Accounts
}
- if !utils.DynamicBoolOptEqual(v1.Attributes, v2.Attributes) {
+ if !DynamicBoolOptEqual(v1.Attributes, v2.Attributes) {
d.Attributes = v2.Attributes
}
- if !utils.DynamicBoolOptEqual(v1.CDRs, v2.CDRs) {
+ if !DynamicBoolOptEqual(v1.CDRs, v2.CDRs) {
d.CDRs = v2.CDRs
}
- if !utils.DynamicBoolOptEqual(v1.Chargers, v2.Chargers) {
+ if !DynamicBoolOptEqual(v1.Chargers, v2.Chargers) {
d.Chargers = v2.Chargers
}
- if !utils.DynamicBoolOptEqual(v1.Resources, v2.Resources) {
+ if !DynamicBoolOptEqual(v1.Resources, v2.Resources) {
d.Resources = v2.Resources
}
- if !utils.DynamicBoolOptEqual(v1.Routes, v2.Routes) {
+ if !DynamicBoolOptEqual(v1.Routes, v2.Routes) {
d.Routes = v2.Routes
}
- if !utils.DynamicBoolOptEqual(v1.Stats, v2.Stats) {
+ if !DynamicBoolOptEqual(v1.Stats, v2.Stats) {
d.Stats = v2.Stats
}
- if !utils.DynamicBoolOptEqual(v1.Thresholds, v2.Thresholds) {
+ if !DynamicBoolOptEqual(v1.Thresholds, v2.Thresholds) {
d.Thresholds = v2.Thresholds
}
- if !utils.DynamicBoolOptEqual(v1.Initiate, v2.Initiate) {
+ if !DynamicBoolOptEqual(v1.Initiate, v2.Initiate) {
d.Initiate = v2.Initiate
}
- if !utils.DynamicBoolOptEqual(v1.Update, v2.Update) {
+ if !DynamicBoolOptEqual(v1.Update, v2.Update) {
d.Update = v2.Update
}
- if !utils.DynamicBoolOptEqual(v1.Terminate, v2.Terminate) {
+ if !DynamicBoolOptEqual(v1.Terminate, v2.Terminate) {
d.Terminate = v2.Terminate
}
- if !utils.DynamicBoolOptEqual(v1.Message, v2.Message) {
+ if !DynamicBoolOptEqual(v1.Message, v2.Message) {
d.Message = v2.Message
}
- if !utils.DynamicBoolOptEqual(v1.AttributesDerivedReply, v2.AttributesDerivedReply) {
+ if !DynamicBoolOptEqual(v1.AttributesDerivedReply, v2.AttributesDerivedReply) {
d.AttributesDerivedReply = v2.AttributesDerivedReply
}
- if !utils.DynamicBoolOptEqual(v1.BlockerError, v2.BlockerError) {
+ if !DynamicBoolOptEqual(v1.BlockerError, v2.BlockerError) {
d.BlockerError = v2.BlockerError
}
- if !utils.DynamicBoolOptEqual(v1.CDRsDerivedReply, v2.CDRsDerivedReply) {
+ if !DynamicBoolOptEqual(v1.CDRsDerivedReply, v2.CDRsDerivedReply) {
d.CDRsDerivedReply = v2.CDRsDerivedReply
}
- if !utils.DynamicBoolOptEqual(v1.ResourcesAuthorize, v2.ResourcesAuthorize) {
+ if !DynamicBoolOptEqual(v1.ResourcesAuthorize, v2.ResourcesAuthorize) {
d.ResourcesAuthorize = v2.ResourcesAuthorize
}
- if !utils.DynamicBoolOptEqual(v1.ResourcesAllocate, v2.ResourcesAllocate) {
+ if !DynamicBoolOptEqual(v1.ResourcesAllocate, v2.ResourcesAllocate) {
d.ResourcesAllocate = v2.ResourcesAllocate
}
- if !utils.DynamicBoolOptEqual(v1.ResourcesRelease, v2.ResourcesRelease) {
+ if !DynamicBoolOptEqual(v1.ResourcesRelease, v2.ResourcesRelease) {
d.ResourcesRelease = v2.ResourcesRelease
}
- if !utils.DynamicBoolOptEqual(v1.ResourcesDerivedReply, v2.ResourcesDerivedReply) {
+ if !DynamicBoolOptEqual(v1.ResourcesDerivedReply, v2.ResourcesDerivedReply) {
d.ResourcesDerivedReply = v2.ResourcesDerivedReply
}
- if !utils.DynamicBoolOptEqual(v1.RoutesDerivedReply, v2.RoutesDerivedReply) {
+ if !DynamicBoolOptEqual(v1.RoutesDerivedReply, v2.RoutesDerivedReply) {
d.RoutesDerivedReply = v2.RoutesDerivedReply
}
- if !utils.DynamicBoolOptEqual(v1.StatsDerivedReply, v2.StatsDerivedReply) {
+ if !DynamicBoolOptEqual(v1.StatsDerivedReply, v2.StatsDerivedReply) {
d.StatsDerivedReply = v2.StatsDerivedReply
}
- if !utils.DynamicBoolOptEqual(v1.ThresholdsDerivedReply, v2.ThresholdsDerivedReply) {
+ if !DynamicBoolOptEqual(v1.ThresholdsDerivedReply, v2.ThresholdsDerivedReply) {
d.ThresholdsDerivedReply = v2.ThresholdsDerivedReply
}
- if !utils.DynamicBoolOptEqual(v1.MaxUsage, v2.MaxUsage) {
+ if !DynamicBoolOptEqual(v1.MaxUsage, v2.MaxUsage) {
d.MaxUsage = v2.MaxUsage
}
- if !utils.DynamicBoolOptEqual(v1.ForceDuration, v2.ForceDuration) {
+ if !DynamicBoolOptEqual(v1.ForceDuration, v2.ForceDuration) {
d.ForceDuration = v2.ForceDuration
}
- if !utils.DynamicDurationOptEqual(v1.TTL, v2.TTL) {
- d.TTL = utils.DurationToStringDynamicOpts(v2.TTL)
+ if !DynamicDurationOptEqual(v1.TTL, v2.TTL) {
+ d.TTL = DurationToStringDynamicOpts(v2.TTL)
}
- if !utils.DynamicBoolOptEqual(v1.Chargeable, v2.Chargeable) {
+ if !DynamicBoolOptEqual(v1.Chargeable, v2.Chargeable) {
d.Chargeable = v2.Chargeable
}
- if !utils.DynamicDurationPointerOptEqual(v1.TTLLastUsage, v2.TTLLastUsage) {
- d.TTLLastUsage = utils.DurationPointerToStringDynamicOpts(v2.TTLLastUsage)
+ if !DynamicDurationPointerOptEqual(v1.TTLLastUsage, v2.TTLLastUsage) {
+ d.TTLLastUsage = DurationPointerToStringDynamicOpts(v2.TTLLastUsage)
}
- if !utils.DynamicDurationPointerOptEqual(v1.TTLLastUsed, v2.TTLLastUsed) {
- d.TTLLastUsed = utils.DurationPointerToStringDynamicOpts(v2.TTLLastUsed)
+ if !DynamicDurationPointerOptEqual(v1.TTLLastUsed, v2.TTLLastUsed) {
+ d.TTLLastUsed = DurationPointerToStringDynamicOpts(v2.TTLLastUsed)
}
- if !utils.DynamicDurationOptEqual(v1.DebitInterval, v2.DebitInterval) {
- d.DebitInterval = utils.DurationToStringDynamicOpts(v2.DebitInterval)
+ if !DynamicDurationOptEqual(v1.DebitInterval, v2.DebitInterval) {
+ d.DebitInterval = DurationToStringDynamicOpts(v2.DebitInterval)
}
- if !utils.DynamicDurationOptEqual(v1.TTLMaxDelay, v2.TTLMaxDelay) {
- d.TTLMaxDelay = utils.DurationToStringDynamicOpts(v2.TTLMaxDelay)
+ if !DynamicDurationOptEqual(v1.TTLMaxDelay, v2.TTLMaxDelay) {
+ d.TTLMaxDelay = DurationToStringDynamicOpts(v2.TTLMaxDelay)
}
- if !utils.DynamicDurationPointerOptEqual(v1.TTLUsage, v2.TTLUsage) {
- d.TTLUsage = utils.DurationPointerToStringDynamicOpts(v2.TTLUsage)
+ if !DynamicDurationPointerOptEqual(v1.TTLUsage, v2.TTLUsage) {
+ d.TTLUsage = DurationPointerToStringDynamicOpts(v2.TTLUsage)
}
return d
}
diff --git a/config/sessionscfg_test.go b/config/sessionscfg_test.go
index adc3c9097..e31abc808 100644
--- a/config/sessionscfg_test.go
+++ b/config/sessionscfg_test.go
@@ -92,7 +92,7 @@ func TestSessionSCfgloadFromJsonCfgCase1(t *testing.T) {
Privatekey_path: utils.StringPointer("randomPath"),
},
Opts: &SessionsOptsJson{
- DebitInterval: []*utils.DynamicStringOpt{
+ DebitInterval: []*DynamicStringOpt{
{
Value: (2 * time.Second).String(),
},
@@ -134,41 +134,41 @@ func TestSessionSCfgloadFromJsonCfgCase1(t *testing.T) {
utils.MetaSMS: 1,
},
Opts: &SessionsOpts{
- Accounts: []*utils.DynamicBoolOpt{},
- Attributes: []*utils.DynamicBoolOpt{},
- CDRs: []*utils.DynamicBoolOpt{},
- Chargers: []*utils.DynamicBoolOpt{},
- Resources: []*utils.DynamicBoolOpt{},
- Routes: []*utils.DynamicBoolOpt{},
- Stats: []*utils.DynamicBoolOpt{},
- Thresholds: []*utils.DynamicBoolOpt{},
- Initiate: []*utils.DynamicBoolOpt{},
- Update: []*utils.DynamicBoolOpt{},
- Terminate: []*utils.DynamicBoolOpt{},
- Message: []*utils.DynamicBoolOpt{},
- AttributesDerivedReply: []*utils.DynamicBoolOpt{},
- BlockerError: []*utils.DynamicBoolOpt{},
- CDRsDerivedReply: []*utils.DynamicBoolOpt{},
- ResourcesAuthorize: []*utils.DynamicBoolOpt{},
- ResourcesAllocate: []*utils.DynamicBoolOpt{},
- ResourcesRelease: []*utils.DynamicBoolOpt{},
- ResourcesDerivedReply: []*utils.DynamicBoolOpt{},
- RoutesDerivedReply: []*utils.DynamicBoolOpt{},
- StatsDerivedReply: []*utils.DynamicBoolOpt{},
- ThresholdsDerivedReply: []*utils.DynamicBoolOpt{},
- MaxUsage: []*utils.DynamicBoolOpt{},
- ForceDuration: []*utils.DynamicBoolOpt{},
- TTL: []*utils.DynamicDurationOpt{},
- Chargeable: []*utils.DynamicBoolOpt{},
- DebitInterval: []*utils.DynamicDurationOpt{
+ Accounts: []*DynamicBoolOpt{},
+ Attributes: []*DynamicBoolOpt{},
+ CDRs: []*DynamicBoolOpt{},
+ Chargers: []*DynamicBoolOpt{},
+ Resources: []*DynamicBoolOpt{},
+ Routes: []*DynamicBoolOpt{},
+ Stats: []*DynamicBoolOpt{},
+ Thresholds: []*DynamicBoolOpt{},
+ Initiate: []*DynamicBoolOpt{},
+ Update: []*DynamicBoolOpt{},
+ Terminate: []*DynamicBoolOpt{},
+ Message: []*DynamicBoolOpt{},
+ AttributesDerivedReply: []*DynamicBoolOpt{},
+ BlockerError: []*DynamicBoolOpt{},
+ CDRsDerivedReply: []*DynamicBoolOpt{},
+ ResourcesAuthorize: []*DynamicBoolOpt{},
+ ResourcesAllocate: []*DynamicBoolOpt{},
+ ResourcesRelease: []*DynamicBoolOpt{},
+ ResourcesDerivedReply: []*DynamicBoolOpt{},
+ RoutesDerivedReply: []*DynamicBoolOpt{},
+ StatsDerivedReply: []*DynamicBoolOpt{},
+ ThresholdsDerivedReply: []*DynamicBoolOpt{},
+ MaxUsage: []*DynamicBoolOpt{},
+ ForceDuration: []*DynamicBoolOpt{},
+ TTL: []*DynamicDurationOpt{},
+ Chargeable: []*DynamicBoolOpt{},
+ DebitInterval: []*DynamicDurationOpt{
{
Value: 2 * time.Second,
},
},
- TTLLastUsage: []*utils.DynamicDurationPointerOpt{},
- TTLLastUsed: []*utils.DynamicDurationPointerOpt{},
- TTLMaxDelay: []*utils.DynamicDurationOpt{},
- TTLUsage: []*utils.DynamicDurationPointerOpt{},
+ TTLLastUsage: []*DynamicDurationPointerOpt{},
+ TTLLastUsed: []*DynamicDurationPointerOpt{},
+ TTLMaxDelay: []*DynamicDurationOpt{},
+ TTLUsage: []*DynamicDurationPointerOpt{},
},
}
jsonCfg := NewDefaultCGRConfig()
@@ -194,7 +194,7 @@ func TestSessionSCfgloadFromJsonCfgCase1(t *testing.T) {
func TestSessionSCfgloadFromJsonCfgCase13(t *testing.T) {
cfgJSON := &SessionSJsonCfg{
Opts: &SessionsOptsJson{
- TTL: []*utils.DynamicStringOpt{
+ TTL: []*DynamicStringOpt{
{
Tenant: "cgrates.org",
Value: "1c",
@@ -210,7 +210,7 @@ func TestSessionSCfgloadFromJsonCfgCase13(t *testing.T) {
cfgJSON.Opts.TTL = nil
/////
- cfgJSON.Opts.DebitInterval = []*utils.DynamicStringOpt{
+ cfgJSON.Opts.DebitInterval = []*DynamicStringOpt{
{
Tenant: "cgrates.org",
Value: "1c",
@@ -222,7 +222,7 @@ func TestSessionSCfgloadFromJsonCfgCase13(t *testing.T) {
cfgJSON.Opts.DebitInterval = nil
/////
- cfgJSON.Opts.TTLLastUsage = []*utils.DynamicStringOpt{
+ cfgJSON.Opts.TTLLastUsage = []*DynamicStringOpt{
{
Tenant: "cgrates.org",
Value: "1c",
@@ -234,7 +234,7 @@ func TestSessionSCfgloadFromJsonCfgCase13(t *testing.T) {
cfgJSON.Opts.TTLLastUsage = nil
/////
- cfgJSON.Opts.TTLLastUsed = []*utils.DynamicStringOpt{
+ cfgJSON.Opts.TTLLastUsed = []*DynamicStringOpt{
{
Tenant: "cgrates.org",
Value: "1c",
@@ -246,7 +246,7 @@ func TestSessionSCfgloadFromJsonCfgCase13(t *testing.T) {
cfgJSON.Opts.TTLLastUsed = nil
/////
- cfgJSON.Opts.TTLUsage = []*utils.DynamicStringOpt{
+ cfgJSON.Opts.TTLUsage = []*DynamicStringOpt{
{
Tenant: "cgrates.org",
Value: "1c",
@@ -258,7 +258,7 @@ func TestSessionSCfgloadFromJsonCfgCase13(t *testing.T) {
cfgJSON.Opts.TTLUsage = nil
/////
- cfgJSON.Opts.TTLMaxDelay = []*utils.DynamicStringOpt{
+ cfgJSON.Opts.TTLMaxDelay = []*DynamicStringOpt{
{
Tenant: "cgrates.org",
Value: "1c",
@@ -306,22 +306,22 @@ func TestSessionSCfgloadFromJsonCfgCase8(t *testing.T) {
func TestSessionSCfgloadFromJsonCfgCase10(t *testing.T) {
cfgJSON := &SessionSJsonCfg{
Opts: &SessionsOptsJson{
- TTLLastUsage: []*utils.DynamicStringOpt{
+ TTLLastUsage: []*DynamicStringOpt{
{
Value: "1",
},
},
- TTLLastUsed: []*utils.DynamicStringOpt{
+ TTLLastUsed: []*DynamicStringOpt{
{
Value: "10",
},
},
- TTLMaxDelay: []*utils.DynamicStringOpt{
+ TTLMaxDelay: []*DynamicStringOpt{
{
Value: "100",
},
},
- TTLUsage: []*utils.DynamicStringOpt{
+ TTLUsage: []*DynamicStringOpt{
{
Value: "1",
},
@@ -363,49 +363,49 @@ func TestSessionSCfgloadFromJsonCfgCase10(t *testing.T) {
utils.MetaSMS: 1,
},
Opts: &SessionsOpts{
- Accounts: []*utils.DynamicBoolOpt{},
- Attributes: []*utils.DynamicBoolOpt{},
- CDRs: []*utils.DynamicBoolOpt{},
- Chargers: []*utils.DynamicBoolOpt{},
- Resources: []*utils.DynamicBoolOpt{},
- Routes: []*utils.DynamicBoolOpt{},
- Stats: []*utils.DynamicBoolOpt{},
- Thresholds: []*utils.DynamicBoolOpt{},
- Initiate: []*utils.DynamicBoolOpt{},
- Update: []*utils.DynamicBoolOpt{},
- Terminate: []*utils.DynamicBoolOpt{},
- Message: []*utils.DynamicBoolOpt{},
- AttributesDerivedReply: []*utils.DynamicBoolOpt{},
- BlockerError: []*utils.DynamicBoolOpt{},
- CDRsDerivedReply: []*utils.DynamicBoolOpt{},
- ResourcesAuthorize: []*utils.DynamicBoolOpt{},
- ResourcesAllocate: []*utils.DynamicBoolOpt{},
- ResourcesRelease: []*utils.DynamicBoolOpt{},
- ResourcesDerivedReply: []*utils.DynamicBoolOpt{},
- RoutesDerivedReply: []*utils.DynamicBoolOpt{},
- StatsDerivedReply: []*utils.DynamicBoolOpt{},
- ThresholdsDerivedReply: []*utils.DynamicBoolOpt{},
- MaxUsage: []*utils.DynamicBoolOpt{},
- ForceDuration: []*utils.DynamicBoolOpt{},
- TTL: []*utils.DynamicDurationOpt{},
- Chargeable: []*utils.DynamicBoolOpt{},
- DebitInterval: []*utils.DynamicDurationOpt{},
- TTLLastUsage: []*utils.DynamicDurationPointerOpt{
+ Accounts: []*DynamicBoolOpt{},
+ Attributes: []*DynamicBoolOpt{},
+ CDRs: []*DynamicBoolOpt{},
+ Chargers: []*DynamicBoolOpt{},
+ Resources: []*DynamicBoolOpt{},
+ Routes: []*DynamicBoolOpt{},
+ Stats: []*DynamicBoolOpt{},
+ Thresholds: []*DynamicBoolOpt{},
+ Initiate: []*DynamicBoolOpt{},
+ Update: []*DynamicBoolOpt{},
+ Terminate: []*DynamicBoolOpt{},
+ Message: []*DynamicBoolOpt{},
+ AttributesDerivedReply: []*DynamicBoolOpt{},
+ BlockerError: []*DynamicBoolOpt{},
+ CDRsDerivedReply: []*DynamicBoolOpt{},
+ ResourcesAuthorize: []*DynamicBoolOpt{},
+ ResourcesAllocate: []*DynamicBoolOpt{},
+ ResourcesRelease: []*DynamicBoolOpt{},
+ ResourcesDerivedReply: []*DynamicBoolOpt{},
+ RoutesDerivedReply: []*DynamicBoolOpt{},
+ StatsDerivedReply: []*DynamicBoolOpt{},
+ ThresholdsDerivedReply: []*DynamicBoolOpt{},
+ MaxUsage: []*DynamicBoolOpt{},
+ ForceDuration: []*DynamicBoolOpt{},
+ TTL: []*DynamicDurationOpt{},
+ Chargeable: []*DynamicBoolOpt{},
+ DebitInterval: []*DynamicDurationOpt{},
+ TTLLastUsage: []*DynamicDurationPointerOpt{
{
Value: utils.DurationPointer(1),
},
},
- TTLLastUsed: []*utils.DynamicDurationPointerOpt{
+ TTLLastUsed: []*DynamicDurationPointerOpt{
{
Value: utils.DurationPointer(10),
},
},
- TTLMaxDelay: []*utils.DynamicDurationOpt{
+ TTLMaxDelay: []*DynamicDurationOpt{
{
Value: 100,
},
},
- TTLUsage: []*utils.DynamicDurationPointerOpt{
+ TTLUsage: []*DynamicDurationPointerOpt{
{
Value: utils.DurationPointer(1),
},
@@ -517,37 +517,37 @@ func TestSessionSCfgAsMapInterfaceCase1(t *testing.T) {
utils.MetaSMS: "1",
},
utils.OptsCfg: map[string]any{
- utils.MetaAccounts: []*utils.DynamicBoolOpt{},
- utils.MetaAttributes: []*utils.DynamicBoolOpt{},
- utils.MetaCDRs: []*utils.DynamicBoolOpt{},
- utils.MetaChargers: []*utils.DynamicBoolOpt{},
- utils.MetaResources: []*utils.DynamicBoolOpt{},
- utils.MetaRoutes: []*utils.DynamicBoolOpt{},
- utils.MetaStats: []*utils.DynamicBoolOpt{},
- utils.MetaThresholds: []*utils.DynamicBoolOpt{},
- utils.MetaInitiate: []*utils.DynamicBoolOpt{},
- utils.MetaUpdate: []*utils.DynamicBoolOpt{},
- utils.MetaTerminate: []*utils.DynamicBoolOpt{},
- utils.MetaMessage: []*utils.DynamicBoolOpt{},
- utils.MetaAttributesDerivedReplyCfg: []*utils.DynamicBoolOpt{},
- utils.MetaBlockerErrorCfg: []*utils.DynamicBoolOpt{},
- utils.MetaCDRsDerivedReplyCfg: []*utils.DynamicBoolOpt{},
- utils.MetaResourcesAuthorizeCfg: []*utils.DynamicBoolOpt{},
- utils.MetaResourcesAllocateCfg: []*utils.DynamicBoolOpt{},
- utils.MetaResourcesReleaseCfg: []*utils.DynamicBoolOpt{},
- utils.MetaResourcesDerivedReplyCfg: []*utils.DynamicBoolOpt{},
- utils.MetaRoutesDerivedReplyCfg: []*utils.DynamicBoolOpt{},
- utils.MetaStatsDerivedReplyCfg: []*utils.DynamicBoolOpt{},
- utils.MetaThresholdsDerivedReplyCfg: []*utils.DynamicBoolOpt{},
- utils.MetaMaxUsageCfg: []*utils.DynamicBoolOpt{},
- utils.MetaForceDurationCfg: []*utils.DynamicBoolOpt{},
- utils.MetaTTLCfg: []*utils.DynamicDurationOpt{},
- utils.MetaChargeableCfg: []*utils.DynamicBoolOpt{},
- utils.MetaDebitIntervalCfg: []*utils.DynamicDurationOpt{},
- utils.MetaTTLLastUsageCfg: []*utils.DynamicDurationPointerOpt{},
- utils.MetaTTLLastUsedCfg: []*utils.DynamicDurationPointerOpt{},
- utils.MetaTTLMaxDelayCfg: []*utils.DynamicDurationOpt{},
- utils.MetaTTLUsageCfg: []*utils.DynamicDurationPointerOpt{},
+ utils.MetaAccounts: []*DynamicBoolOpt{},
+ utils.MetaAttributes: []*DynamicBoolOpt{},
+ utils.MetaCDRs: []*DynamicBoolOpt{},
+ utils.MetaChargers: []*DynamicBoolOpt{},
+ utils.MetaResources: []*DynamicBoolOpt{},
+ utils.MetaRoutes: []*DynamicBoolOpt{},
+ utils.MetaStats: []*DynamicBoolOpt{},
+ utils.MetaThresholds: []*DynamicBoolOpt{},
+ utils.MetaInitiate: []*DynamicBoolOpt{},
+ utils.MetaUpdate: []*DynamicBoolOpt{},
+ utils.MetaTerminate: []*DynamicBoolOpt{},
+ utils.MetaMessage: []*DynamicBoolOpt{},
+ utils.MetaAttributesDerivedReplyCfg: []*DynamicBoolOpt{},
+ utils.MetaBlockerErrorCfg: []*DynamicBoolOpt{},
+ utils.MetaCDRsDerivedReplyCfg: []*DynamicBoolOpt{},
+ utils.MetaResourcesAuthorizeCfg: []*DynamicBoolOpt{},
+ utils.MetaResourcesAllocateCfg: []*DynamicBoolOpt{},
+ utils.MetaResourcesReleaseCfg: []*DynamicBoolOpt{},
+ utils.MetaResourcesDerivedReplyCfg: []*DynamicBoolOpt{},
+ utils.MetaRoutesDerivedReplyCfg: []*DynamicBoolOpt{},
+ utils.MetaStatsDerivedReplyCfg: []*DynamicBoolOpt{},
+ utils.MetaThresholdsDerivedReplyCfg: []*DynamicBoolOpt{},
+ utils.MetaMaxUsageCfg: []*DynamicBoolOpt{},
+ utils.MetaForceDurationCfg: []*DynamicBoolOpt{},
+ utils.MetaTTLCfg: []*DynamicDurationOpt{},
+ utils.MetaChargeableCfg: []*DynamicBoolOpt{},
+ utils.MetaDebitIntervalCfg: []*DynamicDurationOpt{},
+ utils.MetaTTLLastUsageCfg: []*DynamicDurationPointerOpt{},
+ utils.MetaTTLLastUsedCfg: []*DynamicDurationPointerOpt{},
+ utils.MetaTTLMaxDelayCfg: []*DynamicDurationOpt{},
+ utils.MetaTTLUsageCfg: []*DynamicDurationPointerOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -634,45 +634,45 @@ func TestSessionSCfgAsMapInterfaceCase2(t *testing.T) {
utils.MetaSMS: "1",
},
utils.OptsCfg: map[string]any{
- utils.MetaAccounts: []*utils.DynamicBoolOpt{},
- utils.MetaAttributes: []*utils.DynamicBoolOpt{},
- utils.MetaCDRs: []*utils.DynamicBoolOpt{},
- utils.MetaChargers: []*utils.DynamicBoolOpt{},
- utils.MetaResources: []*utils.DynamicBoolOpt{},
- utils.MetaRoutes: []*utils.DynamicBoolOpt{},
- utils.MetaStats: []*utils.DynamicBoolOpt{},
- utils.MetaThresholds: []*utils.DynamicBoolOpt{},
- utils.MetaInitiate: []*utils.DynamicBoolOpt{},
- utils.MetaUpdate: []*utils.DynamicBoolOpt{},
- utils.MetaTerminate: []*utils.DynamicBoolOpt{},
- utils.MetaMessage: []*utils.DynamicBoolOpt{},
- utils.MetaAttributesDerivedReplyCfg: []*utils.DynamicBoolOpt{},
- utils.MetaBlockerErrorCfg: []*utils.DynamicBoolOpt{},
- utils.MetaCDRsDerivedReplyCfg: []*utils.DynamicBoolOpt{},
- utils.MetaResourcesAuthorizeCfg: []*utils.DynamicBoolOpt{},
- utils.MetaResourcesAllocateCfg: []*utils.DynamicBoolOpt{},
- utils.MetaResourcesReleaseCfg: []*utils.DynamicBoolOpt{},
- utils.MetaResourcesDerivedReplyCfg: []*utils.DynamicBoolOpt{},
- utils.MetaRoutesDerivedReplyCfg: []*utils.DynamicBoolOpt{},
- utils.MetaStatsDerivedReplyCfg: []*utils.DynamicBoolOpt{},
- utils.MetaThresholdsDerivedReplyCfg: []*utils.DynamicBoolOpt{},
- utils.MetaMaxUsageCfg: []*utils.DynamicBoolOpt{},
- utils.MetaForceDurationCfg: []*utils.DynamicBoolOpt{},
- utils.MetaTTLCfg: []*utils.DynamicDurationOpt{
+ utils.MetaAccounts: []*DynamicBoolOpt{},
+ utils.MetaAttributes: []*DynamicBoolOpt{},
+ utils.MetaCDRs: []*DynamicBoolOpt{},
+ utils.MetaChargers: []*DynamicBoolOpt{},
+ utils.MetaResources: []*DynamicBoolOpt{},
+ utils.MetaRoutes: []*DynamicBoolOpt{},
+ utils.MetaStats: []*DynamicBoolOpt{},
+ utils.MetaThresholds: []*DynamicBoolOpt{},
+ utils.MetaInitiate: []*DynamicBoolOpt{},
+ utils.MetaUpdate: []*DynamicBoolOpt{},
+ utils.MetaTerminate: []*DynamicBoolOpt{},
+ utils.MetaMessage: []*DynamicBoolOpt{},
+ utils.MetaAttributesDerivedReplyCfg: []*DynamicBoolOpt{},
+ utils.MetaBlockerErrorCfg: []*DynamicBoolOpt{},
+ utils.MetaCDRsDerivedReplyCfg: []*DynamicBoolOpt{},
+ utils.MetaResourcesAuthorizeCfg: []*DynamicBoolOpt{},
+ utils.MetaResourcesAllocateCfg: []*DynamicBoolOpt{},
+ utils.MetaResourcesReleaseCfg: []*DynamicBoolOpt{},
+ utils.MetaResourcesDerivedReplyCfg: []*DynamicBoolOpt{},
+ utils.MetaRoutesDerivedReplyCfg: []*DynamicBoolOpt{},
+ utils.MetaStatsDerivedReplyCfg: []*DynamicBoolOpt{},
+ utils.MetaThresholdsDerivedReplyCfg: []*DynamicBoolOpt{},
+ utils.MetaMaxUsageCfg: []*DynamicBoolOpt{},
+ utils.MetaForceDurationCfg: []*DynamicBoolOpt{},
+ utils.MetaTTLCfg: []*DynamicDurationOpt{
{
Value: time.Second,
},
},
- utils.MetaChargeableCfg: []*utils.DynamicBoolOpt{},
- utils.MetaDebitIntervalCfg: []*utils.DynamicDurationOpt{
+ utils.MetaChargeableCfg: []*DynamicBoolOpt{},
+ utils.MetaDebitIntervalCfg: []*DynamicDurationOpt{
{
Value: 8 * time.Second,
},
},
- utils.MetaTTLLastUsageCfg: []*utils.DynamicDurationPointerOpt{},
- utils.MetaTTLLastUsedCfg: []*utils.DynamicDurationPointerOpt{},
- utils.MetaTTLMaxDelayCfg: []*utils.DynamicDurationOpt{},
- utils.MetaTTLUsageCfg: []*utils.DynamicDurationPointerOpt{},
+ utils.MetaTTLLastUsageCfg: []*DynamicDurationPointerOpt{},
+ utils.MetaTTLLastUsedCfg: []*DynamicDurationPointerOpt{},
+ utils.MetaTTLMaxDelayCfg: []*DynamicDurationOpt{},
+ utils.MetaTTLUsageCfg: []*DynamicDurationPointerOpt{},
},
}
cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr)
@@ -1494,32 +1494,32 @@ func TestSessionSCfgClone(t *testing.T) {
utils.MetaSMS: 1,
},
Opts: &SessionsOpts{
- DebitInterval: []*utils.DynamicDurationOpt{
+ DebitInterval: []*DynamicDurationOpt{
{
Value: 2,
},
},
- TTL: []*utils.DynamicDurationOpt{
+ TTL: []*DynamicDurationOpt{
{
Value: 0,
},
},
- TTLMaxDelay: []*utils.DynamicDurationOpt{
+ TTLMaxDelay: []*DynamicDurationOpt{
{
Value: time.Second,
},
},
- TTLLastUsed: []*utils.DynamicDurationPointerOpt{
+ TTLLastUsed: []*DynamicDurationPointerOpt{
{
Value: utils.DurationPointer(time.Second),
},
},
- TTLLastUsage: []*utils.DynamicDurationPointerOpt{
+ TTLLastUsage: []*DynamicDurationPointerOpt{
{
Value: utils.DurationPointer(time.Second),
},
},
- TTLUsage: []*utils.DynamicDurationPointerOpt{
+ TTLUsage: []*DynamicDurationPointerOpt{
{
Value: utils.DurationPointer(time.Second),
},
@@ -1641,32 +1641,32 @@ func TestDiffSessionSJsonCfg(t *testing.T) {
PrivateKeyPath: "/private/key/path",
},
Opts: &SessionsOpts{
- DebitInterval: []*utils.DynamicDurationOpt{
+ DebitInterval: []*DynamicDurationOpt{
{
Value: time.Second,
},
},
- TTL: []*utils.DynamicDurationOpt{
+ TTL: []*DynamicDurationOpt{
{
Value: time.Second,
},
},
- TTLMaxDelay: []*utils.DynamicDurationOpt{
+ TTLMaxDelay: []*DynamicDurationOpt{
{
Value: time.Second,
},
},
- TTLLastUsage: []*utils.DynamicDurationPointerOpt{
+ TTLLastUsage: []*DynamicDurationPointerOpt{
{
Value: utils.DurationPointer(time.Second),
},
},
- TTLLastUsed: []*utils.DynamicDurationPointerOpt{
+ TTLLastUsed: []*DynamicDurationPointerOpt{
{
Value: utils.DurationPointer(time.Second),
},
},
- TTLUsage: []*utils.DynamicDurationPointerOpt{
+ TTLUsage: []*DynamicDurationPointerOpt{
{
Value: utils.DurationPointer(time.Second),
},
@@ -1711,32 +1711,32 @@ func TestDiffSessionSJsonCfg(t *testing.T) {
PrivateKeyPath: "/private/key/path/2",
},
Opts: &SessionsOpts{
- DebitInterval: []*utils.DynamicDurationOpt{
+ DebitInterval: []*DynamicDurationOpt{
{
Value: 2 * time.Second,
},
},
- TTL: []*utils.DynamicDurationOpt{
+ TTL: []*DynamicDurationOpt{
{
Value: 2 * time.Second,
},
},
- TTLMaxDelay: []*utils.DynamicDurationOpt{
+ TTLMaxDelay: []*DynamicDurationOpt{
{
Value: 2 * time.Second,
},
},
- TTLLastUsage: []*utils.DynamicDurationPointerOpt{
+ TTLLastUsage: []*DynamicDurationPointerOpt{
{
Value: utils.DurationPointer(2 * time.Second),
},
},
- TTLLastUsed: []*utils.DynamicDurationPointerOpt{
+ TTLLastUsed: []*DynamicDurationPointerOpt{
{
Value: utils.DurationPointer(2 * time.Second),
},
},
- TTLUsage: []*utils.DynamicDurationPointerOpt{
+ TTLUsage: []*DynamicDurationPointerOpt{
{
Value: utils.DurationPointer(2 * time.Second),
},
@@ -1777,32 +1777,32 @@ func TestDiffSessionSJsonCfg(t *testing.T) {
Privatekey_path: utils.StringPointer("/private/key/path/2"),
},
Opts: &SessionsOptsJson{
- DebitInterval: []*utils.DynamicStringOpt{
+ DebitInterval: []*DynamicStringOpt{
{
Value: (2 * time.Second).String(),
},
},
- TTL: []*utils.DynamicStringOpt{
+ TTL: []*DynamicStringOpt{
{
Value: (2 * time.Second).String(),
},
},
- TTLMaxDelay: []*utils.DynamicStringOpt{
+ TTLMaxDelay: []*DynamicStringOpt{
{
Value: (2 * time.Second).String(),
},
},
- TTLLastUsage: []*utils.DynamicStringOpt{
+ TTLLastUsage: []*DynamicStringOpt{
{
Value: (2 * time.Second).String(),
},
},
- TTLLastUsed: []*utils.DynamicStringOpt{
+ TTLLastUsed: []*DynamicStringOpt{
{
Value: (2 * time.Second).String(),
},
},
- TTLUsage: []*utils.DynamicStringOpt{
+ TTLUsage: []*DynamicStringOpt{
{
Value: (2 * time.Second).String(),
},
@@ -1820,10 +1820,10 @@ func TestDiffSessionSJsonCfg(t *testing.T) {
v2.Opts.TTLLastUsage = nil
v2.Opts.TTLUsage = nil
- expected.Opts.TTLMaxDelay = []*utils.DynamicStringOpt{}
- expected.Opts.TTLLastUsed = []*utils.DynamicStringOpt{}
- expected.Opts.TTLLastUsage = []*utils.DynamicStringOpt{}
- expected.Opts.TTLUsage = []*utils.DynamicStringOpt{}
+ expected.Opts.TTLMaxDelay = []*DynamicStringOpt{}
+ expected.Opts.TTLLastUsed = []*DynamicStringOpt{}
+ expected.Opts.TTLLastUsage = []*DynamicStringOpt{}
+ expected.Opts.TTLUsage = []*DynamicStringOpt{}
rcv = diffSessionSJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
@@ -1865,27 +1865,27 @@ func TestSessionSCloneSection(t *testing.T) {
PrivateKeyPath: "/private/key/path",
},
Opts: &SessionsOpts{
- DebitInterval: []*utils.DynamicDurationOpt{
+ DebitInterval: []*DynamicDurationOpt{
{
Value: time.Second,
},
},
- TTL: []*utils.DynamicDurationOpt{
+ TTL: []*DynamicDurationOpt{
{
Value: time.Second,
},
},
- TTLMaxDelay: []*utils.DynamicDurationOpt{
+ TTLMaxDelay: []*DynamicDurationOpt{
{
Value: time.Second,
},
},
- TTLLastUsage: []*utils.DynamicDurationPointerOpt{
+ TTLLastUsage: []*DynamicDurationPointerOpt{
{
Value: utils.DurationPointer(time.Second),
},
},
- TTLLastUsed: []*utils.DynamicDurationPointerOpt{
+ TTLLastUsed: []*DynamicDurationPointerOpt{
{
Value: utils.DurationPointer(time.Second),
},
@@ -1926,27 +1926,27 @@ func TestSessionSCloneSection(t *testing.T) {
PrivateKeyPath: "/private/key/path",
},
Opts: &SessionsOpts{
- DebitInterval: []*utils.DynamicDurationOpt{
+ DebitInterval: []*DynamicDurationOpt{
{
Value: time.Second,
},
},
- TTL: []*utils.DynamicDurationOpt{
+ TTL: []*DynamicDurationOpt{
{
Value: time.Second,
},
},
- TTLMaxDelay: []*utils.DynamicDurationOpt{
+ TTLMaxDelay: []*DynamicDurationOpt{
{
Value: time.Second,
},
},
- TTLLastUsage: []*utils.DynamicDurationPointerOpt{
+ TTLLastUsage: []*DynamicDurationPointerOpt{
{
Value: utils.DurationPointer(time.Second),
},
},
- TTLLastUsed: []*utils.DynamicDurationPointerOpt{
+ TTLLastUsed: []*DynamicDurationPointerOpt{
{
Value: utils.DurationPointer(time.Second),
},
@@ -1964,187 +1964,187 @@ func TestDiffSessionsOptsJsonCfg(t *testing.T) {
var d *SessionsOptsJson
v1 := &SessionsOpts{
- Accounts: []*utils.DynamicBoolOpt{
+ Accounts: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- Attributes: []*utils.DynamicBoolOpt{
+ Attributes: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- CDRs: []*utils.DynamicBoolOpt{
+ CDRs: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- Chargers: []*utils.DynamicBoolOpt{
+ Chargers: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- Resources: []*utils.DynamicBoolOpt{
+ Resources: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- Routes: []*utils.DynamicBoolOpt{
+ Routes: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- Stats: []*utils.DynamicBoolOpt{
+ Stats: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- Thresholds: []*utils.DynamicBoolOpt{
+ Thresholds: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- Initiate: []*utils.DynamicBoolOpt{
+ Initiate: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- Update: []*utils.DynamicBoolOpt{
+ Update: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- Terminate: []*utils.DynamicBoolOpt{
+ Terminate: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- Message: []*utils.DynamicBoolOpt{
+ Message: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- AttributesDerivedReply: []*utils.DynamicBoolOpt{
+ AttributesDerivedReply: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- BlockerError: []*utils.DynamicBoolOpt{
+ BlockerError: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- CDRsDerivedReply: []*utils.DynamicBoolOpt{
+ CDRsDerivedReply: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- ResourcesAuthorize: []*utils.DynamicBoolOpt{
+ ResourcesAuthorize: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- ResourcesAllocate: []*utils.DynamicBoolOpt{
+ ResourcesAllocate: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- ResourcesRelease: []*utils.DynamicBoolOpt{
+ ResourcesRelease: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- ResourcesDerivedReply: []*utils.DynamicBoolOpt{
+ ResourcesDerivedReply: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- RoutesDerivedReply: []*utils.DynamicBoolOpt{
+ RoutesDerivedReply: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- StatsDerivedReply: []*utils.DynamicBoolOpt{
+ StatsDerivedReply: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- ThresholdsDerivedReply: []*utils.DynamicBoolOpt{
+ ThresholdsDerivedReply: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- MaxUsage: []*utils.DynamicBoolOpt{
+ MaxUsage: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- ForceDuration: []*utils.DynamicBoolOpt{
+ ForceDuration: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- TTL: []*utils.DynamicDurationOpt{
+ TTL: []*DynamicDurationOpt{
{
Tenant: "cgrates.org",
Value: 3 * time.Second,
},
},
- Chargeable: []*utils.DynamicBoolOpt{
+ Chargeable: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- TTLLastUsage: []*utils.DynamicDurationPointerOpt{
+ TTLLastUsage: []*DynamicDurationPointerOpt{
{
Tenant: "cgrates.org",
Value: utils.DurationPointer(5 * time.Second),
},
},
- TTLLastUsed: []*utils.DynamicDurationPointerOpt{
+ TTLLastUsed: []*DynamicDurationPointerOpt{
{
Tenant: "cgrates.org",
Value: utils.DurationPointer(5 * time.Second),
},
},
- DebitInterval: []*utils.DynamicDurationOpt{
+ DebitInterval: []*DynamicDurationOpt{
{
Tenant: "cgrates.org",
Value: 3 * time.Second,
},
},
- TTLMaxDelay: []*utils.DynamicDurationOpt{
+ TTLMaxDelay: []*DynamicDurationOpt{
{
Tenant: "cgrates.org",
Value: 3 * time.Second,
},
},
- TTLUsage: []*utils.DynamicDurationPointerOpt{
+ TTLUsage: []*DynamicDurationPointerOpt{
{
Tenant: "cgrates.org",
Value: utils.DurationPointer(5 * time.Second),
@@ -2153,187 +2153,187 @@ func TestDiffSessionsOptsJsonCfg(t *testing.T) {
}
v2 := &SessionsOpts{
- Accounts: []*utils.DynamicBoolOpt{
+ Accounts: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Attributes: []*utils.DynamicBoolOpt{
+ Attributes: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- CDRs: []*utils.DynamicBoolOpt{
+ CDRs: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Chargers: []*utils.DynamicBoolOpt{
+ Chargers: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Resources: []*utils.DynamicBoolOpt{
+ Resources: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Routes: []*utils.DynamicBoolOpt{
+ Routes: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Stats: []*utils.DynamicBoolOpt{
+ Stats: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Thresholds: []*utils.DynamicBoolOpt{
+ Thresholds: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Initiate: []*utils.DynamicBoolOpt{
+ Initiate: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Update: []*utils.DynamicBoolOpt{
+ Update: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Terminate: []*utils.DynamicBoolOpt{
+ Terminate: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Message: []*utils.DynamicBoolOpt{
+ Message: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- AttributesDerivedReply: []*utils.DynamicBoolOpt{
+ AttributesDerivedReply: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- BlockerError: []*utils.DynamicBoolOpt{
+ BlockerError: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- CDRsDerivedReply: []*utils.DynamicBoolOpt{
+ CDRsDerivedReply: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- ResourcesAuthorize: []*utils.DynamicBoolOpt{
+ ResourcesAuthorize: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- ResourcesAllocate: []*utils.DynamicBoolOpt{
+ ResourcesAllocate: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- ResourcesRelease: []*utils.DynamicBoolOpt{
+ ResourcesRelease: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- ResourcesDerivedReply: []*utils.DynamicBoolOpt{
+ ResourcesDerivedReply: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- RoutesDerivedReply: []*utils.DynamicBoolOpt{
+ RoutesDerivedReply: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- StatsDerivedReply: []*utils.DynamicBoolOpt{
+ StatsDerivedReply: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- ThresholdsDerivedReply: []*utils.DynamicBoolOpt{
+ ThresholdsDerivedReply: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- MaxUsage: []*utils.DynamicBoolOpt{
+ MaxUsage: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- ForceDuration: []*utils.DynamicBoolOpt{
+ ForceDuration: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- TTL: []*utils.DynamicDurationOpt{
+ TTL: []*DynamicDurationOpt{
{
Tenant: "cgrates.net",
Value: 4 * time.Second,
},
},
- Chargeable: []*utils.DynamicBoolOpt{
+ Chargeable: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- TTLLastUsage: []*utils.DynamicDurationPointerOpt{
+ TTLLastUsage: []*DynamicDurationPointerOpt{
{
Tenant: "cgrates.net",
Value: utils.DurationPointer(6 * time.Second),
},
},
- TTLLastUsed: []*utils.DynamicDurationPointerOpt{
+ TTLLastUsed: []*DynamicDurationPointerOpt{
{
Tenant: "cgrates.net",
Value: utils.DurationPointer(6 * time.Second),
},
},
- DebitInterval: []*utils.DynamicDurationOpt{
+ DebitInterval: []*DynamicDurationOpt{
{
Tenant: "cgrates.net",
Value: 4 * time.Second,
},
},
- TTLMaxDelay: []*utils.DynamicDurationOpt{
+ TTLMaxDelay: []*DynamicDurationOpt{
{
Tenant: "cgrates.net",
Value: 4 * time.Second,
},
},
- TTLUsage: []*utils.DynamicDurationPointerOpt{
+ TTLUsage: []*DynamicDurationPointerOpt{
{
Tenant: "cgrates.net",
Value: utils.DurationPointer(4 * time.Second),
@@ -2342,187 +2342,187 @@ func TestDiffSessionsOptsJsonCfg(t *testing.T) {
}
expected := &SessionsOptsJson{
- Accounts: []*utils.DynamicBoolOpt{
+ Accounts: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Attributes: []*utils.DynamicBoolOpt{
+ Attributes: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- CDRs: []*utils.DynamicBoolOpt{
+ CDRs: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Chargers: []*utils.DynamicBoolOpt{
+ Chargers: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Resources: []*utils.DynamicBoolOpt{
+ Resources: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Routes: []*utils.DynamicBoolOpt{
+ Routes: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Stats: []*utils.DynamicBoolOpt{
+ Stats: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Thresholds: []*utils.DynamicBoolOpt{
+ Thresholds: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Initiate: []*utils.DynamicBoolOpt{
+ Initiate: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Update: []*utils.DynamicBoolOpt{
+ Update: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Terminate: []*utils.DynamicBoolOpt{
+ Terminate: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- Message: []*utils.DynamicBoolOpt{
+ Message: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- AttributesDerivedReply: []*utils.DynamicBoolOpt{
+ AttributesDerivedReply: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- BlockerError: []*utils.DynamicBoolOpt{
+ BlockerError: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- CDRsDerivedReply: []*utils.DynamicBoolOpt{
+ CDRsDerivedReply: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- ResourcesAuthorize: []*utils.DynamicBoolOpt{
+ ResourcesAuthorize: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- ResourcesAllocate: []*utils.DynamicBoolOpt{
+ ResourcesAllocate: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- ResourcesRelease: []*utils.DynamicBoolOpt{
+ ResourcesRelease: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- ResourcesDerivedReply: []*utils.DynamicBoolOpt{
+ ResourcesDerivedReply: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- RoutesDerivedReply: []*utils.DynamicBoolOpt{
+ RoutesDerivedReply: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- StatsDerivedReply: []*utils.DynamicBoolOpt{
+ StatsDerivedReply: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- ThresholdsDerivedReply: []*utils.DynamicBoolOpt{
+ ThresholdsDerivedReply: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- MaxUsage: []*utils.DynamicBoolOpt{
+ MaxUsage: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- ForceDuration: []*utils.DynamicBoolOpt{
+ ForceDuration: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- TTL: []*utils.DynamicStringOpt{
+ TTL: []*DynamicStringOpt{
{
Tenant: "cgrates.net",
Value: "4s",
},
},
- Chargeable: []*utils.DynamicBoolOpt{
+ Chargeable: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- TTLLastUsage: []*utils.DynamicStringOpt{
+ TTLLastUsage: []*DynamicStringOpt{
{
Tenant: "cgrates.net",
Value: "6s",
},
},
- TTLLastUsed: []*utils.DynamicStringOpt{
+ TTLLastUsed: []*DynamicStringOpt{
{
Tenant: "cgrates.net",
Value: "6s",
},
},
- DebitInterval: []*utils.DynamicStringOpt{
+ DebitInterval: []*DynamicStringOpt{
{
Tenant: "cgrates.net",
Value: "4s",
},
},
- TTLMaxDelay: []*utils.DynamicStringOpt{
+ TTLMaxDelay: []*DynamicStringOpt{
{
Tenant: "cgrates.net",
Value: "4s",
},
},
- TTLUsage: []*utils.DynamicStringOpt{
+ TTLUsage: []*DynamicStringOpt{
{
Tenant: "cgrates.net",
Value: "4s",
diff --git a/config/statscfg.go b/config/statscfg.go
index 51fab685f..646706712 100644
--- a/config/statscfg.go
+++ b/config/statscfg.go
@@ -31,10 +31,10 @@ var StatsProfileIDsDftOpt = []string{}
const StatsProfileIgnoreFilters = false
type StatsOpts struct {
- ProfileIDs []*utils.DynamicStringSliceOpt
- ProfileIgnoreFilters []*utils.DynamicBoolOpt
- RoundingDecimals []*utils.DynamicIntOpt
- PrometheusStatIDs []*utils.DynamicStringSliceOpt
+ ProfileIDs []*DynamicStringSliceOpt
+ ProfileIgnoreFilters []*DynamicBoolOpt
+ RoundingDecimals []*DynamicIntOpt
+ PrometheusStatIDs []*DynamicStringSliceOpt
}
// StatSCfg the stats config section
@@ -181,21 +181,21 @@ func (StatSCfg) SName() string { return StatSJSON }
func (st StatSCfg) CloneSection() Section { return st.Clone() }
func (sqOpts *StatsOpts) Clone() *StatsOpts {
- var sqIDs []*utils.DynamicStringSliceOpt
+ var sqIDs []*DynamicStringSliceOpt
if sqOpts.ProfileIDs != nil {
- sqIDs = utils.CloneDynamicStringSliceOpt(sqOpts.ProfileIDs)
+ sqIDs = CloneDynamicStringSliceOpt(sqOpts.ProfileIDs)
}
- var profileIgnoreFilters []*utils.DynamicBoolOpt
+ var profileIgnoreFilters []*DynamicBoolOpt
if sqOpts.ProfileIgnoreFilters != nil {
- profileIgnoreFilters = utils.CloneDynamicBoolOpt(sqOpts.ProfileIgnoreFilters)
+ profileIgnoreFilters = CloneDynamicBoolOpt(sqOpts.ProfileIgnoreFilters)
}
- var rounding []*utils.DynamicIntOpt
+ var rounding []*DynamicIntOpt
if sqOpts.RoundingDecimals != nil {
- rounding = utils.CloneDynamicIntOpt(sqOpts.RoundingDecimals)
+ rounding = CloneDynamicIntOpt(sqOpts.RoundingDecimals)
}
- var promMtrcs []*utils.DynamicStringSliceOpt
+ var promMtrcs []*DynamicStringSliceOpt
if sqOpts.PrometheusStatIDs != nil {
- promMtrcs = utils.CloneDynamicStringSliceOpt(sqOpts.PrometheusStatIDs)
+ promMtrcs = CloneDynamicStringSliceOpt(sqOpts.PrometheusStatIDs)
}
return &StatsOpts{
ProfileIDs: sqIDs,
@@ -243,10 +243,10 @@ func (st StatSCfg) Clone() (cln *StatSCfg) {
}
type StatsOptsJson struct {
- ProfileIDs []*utils.DynamicStringSliceOpt `json:"*profileIDs"`
- ProfileIgnoreFilters []*utils.DynamicBoolOpt `json:"*profileIgnoreFilters"`
- RoundingDecimals []*utils.DynamicIntOpt `json:"*roundingDecimals"`
- PrometheusStatIDs []*utils.DynamicStringSliceOpt `json:"*prometheusStatIDs"`
+ ProfileIDs []*DynamicStringSliceOpt `json:"*profileIDs"`
+ ProfileIgnoreFilters []*DynamicBoolOpt `json:"*profileIgnoreFilters"`
+ RoundingDecimals []*DynamicIntOpt `json:"*roundingDecimals"`
+ PrometheusStatIDs []*DynamicStringSliceOpt `json:"*prometheusStatIDs"`
}
// Stat service config section
@@ -271,16 +271,16 @@ func diffStatsOptsJsonCfg(d *StatsOptsJson, v1, v2 *StatsOpts) *StatsOptsJson {
if d == nil {
d = new(StatsOptsJson)
}
- if !utils.DynamicStringSliceOptEqual(v1.ProfileIDs, v2.ProfileIDs) {
+ if !DynamicStringSliceOptEqual(v1.ProfileIDs, v2.ProfileIDs) {
d.ProfileIDs = v2.ProfileIDs
}
- if !utils.DynamicBoolOptEqual(v1.ProfileIgnoreFilters, v2.ProfileIgnoreFilters) {
+ if !DynamicBoolOptEqual(v1.ProfileIgnoreFilters, v2.ProfileIgnoreFilters) {
d.ProfileIgnoreFilters = v2.ProfileIgnoreFilters
}
- if !utils.DynamicIntOptEqual(v1.RoundingDecimals, v2.RoundingDecimals) {
+ if !DynamicIntOptEqual(v1.RoundingDecimals, v2.RoundingDecimals) {
d.RoundingDecimals = v2.RoundingDecimals
}
- if !utils.DynamicStringSliceOptEqual(v1.PrometheusStatIDs, v2.PrometheusStatIDs) {
+ if !DynamicStringSliceOptEqual(v1.PrometheusStatIDs, v2.PrometheusStatIDs) {
d.PrometheusStatIDs = v2.PrometheusStatIDs
}
return d
diff --git a/config/statscfg_test.go b/config/statscfg_test.go
index e07a0093a..73028a5ce 100644
--- a/config/statscfg_test.go
+++ b/config/statscfg_test.go
@@ -52,10 +52,10 @@ func TestStatSCfgloadFromJsonCfgCase1(t *testing.T) {
NotExistsIndexedFields: &[]string{"*req.index1", "*req.index2"},
NestedFields: true,
Opts: &StatsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
- RoundingDecimals: []*utils.DynamicIntOpt{},
- PrometheusStatIDs: []*utils.DynamicStringSliceOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
+ RoundingDecimals: []*DynamicIntOpt{},
+ PrometheusStatIDs: []*DynamicStringSliceOpt{},
},
EEsConns: []string{},
}
@@ -73,12 +73,12 @@ func TestStatSCfgloadFromJsonCfgCase1(t *testing.T) {
func TestStatSCfgloadFromJsonCfgOptsNil(t *testing.T) {
statsOpt := &StatsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Values: []string{},
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Value: false,
},
@@ -86,12 +86,12 @@ func TestStatSCfgloadFromJsonCfgOptsNil(t *testing.T) {
}
exp := &StatsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Values: []string{},
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Value: false,
},
@@ -131,10 +131,10 @@ func TestStatSCfgAsMapInterface(t *testing.T) {
utils.NotExistsIndexedFieldsCfg: []string{},
utils.NestedFieldsCfg: false,
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
- utils.OptsRoundingDecimals: []*utils.DynamicIntOpt{},
- utils.OptsPrometheusStatIDs: []*utils.DynamicStringSliceOpt{},
+ utils.MetaProfileIDs: []*DynamicStringSliceOpt{},
+ utils.MetaProfileIgnoreFilters: []*DynamicBoolOpt{},
+ utils.OptsRoundingDecimals: []*DynamicIntOpt{},
+ utils.OptsPrometheusStatIDs: []*DynamicStringSliceOpt{},
},
utils.EEsConnsCfg: []string{},
utils.EEsExporterIDsCfg: []string(nil),
@@ -175,10 +175,10 @@ func TestStatSCfgAsMapInterface1(t *testing.T) {
utils.NotExistsIndexedFieldsCfg: []string{"*req.notexists_indexed_fields"},
utils.NestedFieldsCfg: true,
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
- utils.OptsRoundingDecimals: []*utils.DynamicIntOpt{},
- utils.OptsPrometheusStatIDs: []*utils.DynamicStringSliceOpt{},
+ utils.MetaProfileIDs: []*DynamicStringSliceOpt{},
+ utils.MetaProfileIgnoreFilters: []*DynamicBoolOpt{},
+ utils.OptsRoundingDecimals: []*DynamicIntOpt{},
+ utils.OptsPrometheusStatIDs: []*DynamicStringSliceOpt{},
},
utils.EEsConnsCfg: []string{},
utils.EEsExporterIDsCfg: []string(nil),
@@ -234,25 +234,25 @@ func TestDiffStatServJsonCfg(t *testing.T) {
SuffixIndexedFields: &[]string{"*req.index3"},
NestedFields: false,
Opts: &StatsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.org",
Values: []string{"statsid1"},
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
},
},
- RoundingDecimals: []*utils.DynamicIntOpt{
+ RoundingDecimals: []*DynamicIntOpt{
{
Tenant: "cgrates.org",
Value: 1,
},
},
- PrometheusStatIDs: []*utils.DynamicStringSliceOpt{
+ PrometheusStatIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.org",
Values: []string{"statsid1"},
@@ -272,25 +272,25 @@ func TestDiffStatServJsonCfg(t *testing.T) {
SuffixIndexedFields: &[]string{"*req.index33"},
NestedFields: true,
Opts: &StatsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.net",
Values: []string{"statsid2"},
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- RoundingDecimals: []*utils.DynamicIntOpt{
+ RoundingDecimals: []*DynamicIntOpt{
{
Tenant: "cgrates.net",
Value: 2,
},
},
- PrometheusStatIDs: []*utils.DynamicStringSliceOpt{
+ PrometheusStatIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.net",
Values: []string{"statsid2"},
@@ -310,25 +310,25 @@ func TestDiffStatServJsonCfg(t *testing.T) {
Suffix_indexed_fields: &[]string{"*req.index33"},
Nested_fields: utils.BoolPointer(true),
Opts: &StatsOptsJson{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.net",
Values: []string{"statsid2"},
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
},
},
- RoundingDecimals: []*utils.DynamicIntOpt{
+ RoundingDecimals: []*DynamicIntOpt{
{
Tenant: "cgrates.net",
Value: 2,
},
},
- PrometheusStatIDs: []*utils.DynamicStringSliceOpt{
+ PrometheusStatIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.net",
Values: []string{"statsid2"},
@@ -364,7 +364,7 @@ func TestStatSCloneSection(t *testing.T) {
SuffixIndexedFields: &[]string{"*req.index3"},
NestedFields: false,
Opts: &StatsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
},
}
@@ -379,7 +379,7 @@ func TestStatSCloneSection(t *testing.T) {
SuffixIndexedFields: &[]string{"*req.index3"},
NestedFields: false,
Opts: &StatsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
},
}
diff --git a/config/thresholdscfg.go b/config/thresholdscfg.go
index 55c1b404f..d3e1365a1 100644
--- a/config/thresholdscfg.go
+++ b/config/thresholdscfg.go
@@ -31,8 +31,8 @@ var ThresholdsProfileIDsDftOpt = []string{}
const ThresholdsProfileIgnoreFiltersDftOpt = false
type ThresholdsOpts struct {
- ProfileIDs []*utils.DynamicStringSliceOpt
- ProfileIgnoreFilters []*utils.DynamicBoolOpt
+ ProfileIDs []*DynamicStringSliceOpt
+ ProfileIgnoreFilters []*DynamicBoolOpt
}
// ThresholdSCfg the threshold config section
@@ -155,13 +155,13 @@ func (ThresholdSCfg) SName() string { return ThresholdSJSON }
func (t ThresholdSCfg) CloneSection() Section { return t.Clone() }
func (thdOpts *ThresholdsOpts) Clone() *ThresholdsOpts {
- var thIDs []*utils.DynamicStringSliceOpt
+ var thIDs []*DynamicStringSliceOpt
if thdOpts.ProfileIDs != nil {
- thIDs = utils.CloneDynamicStringSliceOpt(thdOpts.ProfileIDs)
+ thIDs = CloneDynamicStringSliceOpt(thdOpts.ProfileIDs)
}
- var profileIgnoreFilters []*utils.DynamicBoolOpt
+ var profileIgnoreFilters []*DynamicBoolOpt
if thdOpts.ProfileIgnoreFilters != nil {
- profileIgnoreFilters = utils.CloneDynamicBoolOpt(thdOpts.ProfileIgnoreFilters)
+ profileIgnoreFilters = CloneDynamicBoolOpt(thdOpts.ProfileIgnoreFilters)
}
return &ThresholdsOpts{
ProfileIDs: thIDs,
@@ -201,8 +201,8 @@ func (t ThresholdSCfg) Clone() (cln *ThresholdSCfg) {
}
type ThresholdsOptsJson struct {
- ProfileIDs []*utils.DynamicStringSliceOpt `json:"*profileIDs"`
- ProfileIgnoreFilters []*utils.DynamicBoolOpt `json:"*profileIgnoreFilters"`
+ ProfileIDs []*DynamicStringSliceOpt `json:"*profileIDs"`
+ ProfileIgnoreFilters []*DynamicBoolOpt `json:"*profileIgnoreFilters"`
}
// Threshold service config section
@@ -224,10 +224,10 @@ func diffThresholdsOptsJsonCfg(d *ThresholdsOptsJson, v1, v2 *ThresholdsOpts) *T
if d == nil {
d = new(ThresholdsOptsJson)
}
- if !utils.DynamicStringSliceOptEqual(v1.ProfileIDs, v2.ProfileIDs) {
+ if !DynamicStringSliceOptEqual(v1.ProfileIDs, v2.ProfileIDs) {
d.ProfileIDs = v2.ProfileIDs
}
- if !utils.DynamicBoolOptEqual(v1.ProfileIgnoreFilters, v2.ProfileIgnoreFilters) {
+ if !DynamicBoolOptEqual(v1.ProfileIgnoreFilters, v2.ProfileIgnoreFilters) {
d.ProfileIgnoreFilters = v2.ProfileIgnoreFilters
}
return d
diff --git a/config/thresholdscfg_test.go b/config/thresholdscfg_test.go
index 537c50881..04d565b42 100644
--- a/config/thresholdscfg_test.go
+++ b/config/thresholdscfg_test.go
@@ -51,8 +51,8 @@ func TestThresholdSCfgloadFromJsonCfgCase1(t *testing.T) {
NestedFields: true,
ActionSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaActions)},
Opts: &ThresholdsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
+ ProfileIgnoreFilters: []*DynamicBoolOpt{},
},
}
jsonCfg := NewDefaultCGRConfig()
@@ -70,13 +70,13 @@ func TestThresholdSCfgloadFromJsonCfgCase1(t *testing.T) {
func TestThresholdSLoadFromJsonOpts(t *testing.T) {
thrsOpt := &ThresholdsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.org",
Values: []string{"thsd_p1"},
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: true,
@@ -84,13 +84,13 @@ func TestThresholdSLoadFromJsonOpts(t *testing.T) {
},
}
exp := &ThresholdsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.org",
Values: []string{"thsd_p1"},
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: true,
@@ -129,8 +129,8 @@ func TestThresholdSCfgAsMapInterfaceCase1(t *testing.T) {
utils.NestedFieldsCfg: false,
utils.ActionSConnsCfg: []string{},
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ utils.MetaProfileIDs: []*DynamicStringSliceOpt{},
+ utils.MetaProfileIgnoreFilters: []*DynamicBoolOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -167,8 +167,8 @@ func TestThresholdSCfgAsMapInterfaceCase2(t *testing.T) {
utils.NestedFieldsCfg: true,
utils.ActionSConnsCfg: []string{utils.MetaInternal},
utils.OptsCfg: map[string]any{
- utils.MetaProfileIDs: []*utils.DynamicStringSliceOpt{},
- utils.MetaProfileIgnoreFilters: []*utils.DynamicBoolOpt{},
+ utils.MetaProfileIDs: []*DynamicStringSliceOpt{},
+ utils.MetaProfileIgnoreFilters: []*DynamicBoolOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -216,13 +216,13 @@ func TestDiffThresholdSJsonCfg(t *testing.T) {
ActionSConns: []string{},
NestedFields: false,
Opts: &ThresholdsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.org",
Values: []string{"thsr_p1"},
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: false,
@@ -241,13 +241,13 @@ func TestDiffThresholdSJsonCfg(t *testing.T) {
ActionSConns: []string{"*internal"},
NestedFields: true,
Opts: &ThresholdsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.net",
Values: []string{"thsr_p2"},
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
@@ -266,13 +266,13 @@ func TestDiffThresholdSJsonCfg(t *testing.T) {
Actions_conns: &[]string{"*internal"},
Nested_fields: utils.BoolPointer(true),
Opts: &ThresholdsOptsJson{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*DynamicStringSliceOpt{
{
Tenant: "cgrates.net",
Values: []string{"thsr_p2"},
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*DynamicBoolOpt{
{
Tenant: "cgrates.net",
Value: true,
@@ -307,7 +307,7 @@ func TestThresholdSCloneSection(t *testing.T) {
ActionSConns: []string{},
NestedFields: false,
Opts: &ThresholdsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
},
}
@@ -321,7 +321,7 @@ func TestThresholdSCloneSection(t *testing.T) {
ActionSConns: []string{},
NestedFields: false,
Opts: &ThresholdsOpts{
- ProfileIDs: []*utils.DynamicStringSliceOpt{},
+ ProfileIDs: []*DynamicStringSliceOpt{},
},
}
diff --git a/engine/coverage.out b/engine/coverage.out
deleted file mode 100644
index 5f02b1119..000000000
--- a/engine/coverage.out
+++ /dev/null
@@ -1 +0,0 @@
-mode: set
diff --git a/engine/libdynopts.go b/engine/libdynopts.go
index 3981211a7..52f4c9ebb 100644
--- a/engine/libdynopts.go
+++ b/engine/libdynopts.go
@@ -24,13 +24,14 @@ import (
"time"
"github.com/cgrates/birpc/context"
+ "github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
"github.com/ericlagergren/decimal"
)
// GetFloat64Opts checks the specified option names in order among the keys in APIOpts returning the first value it finds as float64, otherwise it
// returns the config option if at least one filter passes or the default value if none of them do
-func GetFloat64Opts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *FilterS, dynOpts []*utils.DynamicFloat64Opt,
+func GetFloat64Opts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *FilterS, dynOpts []*config.DynamicFloat64Opt,
dftOpt float64, optNames ...string) (cfgOpt float64, err error) {
for _, optName := range optNames {
if opt, has := ev.APIOpts[optName]; has {
@@ -53,7 +54,7 @@ func GetFloat64Opts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *Fi
// GetDurationOpts checks the specified option names in order among the keys in APIOpts returning the first value it finds as time.Duration, otherwise it
// returns the config option if at least one filter passes or the default value if none of them do
-func GetDurationOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *FilterS, dynOpts []*utils.DynamicDurationOpt,
+func GetDurationOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *FilterS, dynOpts []*config.DynamicDurationOpt,
dftOpt time.Duration, optNames ...string) (cfgOpt time.Duration, err error) {
for _, optName := range optNames {
if opt, has := ev.APIOpts[optName]; has {
@@ -76,7 +77,7 @@ func GetDurationOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *F
// GetStringOpts checks the specified option names in order among the keys in APIOpts returning the first value it finds as string, otherwise it
// returns the config option if at least one filter passes or the default value if none of them do
-func GetStringOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *FilterS, dynOpts []*utils.DynamicStringOpt,
+func GetStringOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *FilterS, dynOpts []*config.DynamicStringOpt,
dftOpt string, optNames ...string) (cfgOpt string, err error) {
for _, optName := range optNames {
if opt, has := ev.APIOpts[optName]; has {
@@ -99,7 +100,7 @@ func GetStringOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *Fil
// GetTimeOpts checks the specified option names in order among the keys in APIOpts returning the first value it finds as time.Time, otherwise it
// returns the config option if at least one filter passes or the default value if none of them do
-func GetTimeOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *FilterS, dynOpts []*utils.DynamicStringOpt,
+func GetTimeOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *FilterS, dynOpts []*config.DynamicStringOpt,
tmz string, dftOpt string, optNames ...string) (_ time.Time, err error) {
for _, optName := range optNames {
if opt, has := ev.APIOpts[optName]; has {
@@ -123,7 +124,7 @@ func GetTimeOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *Filte
// GetStringSliceOpts checks the specified option names in order among the keys in APIOpts returning the first value it finds as []string, otherwise it
// returns the config option if at least one filter passes or the default value if none of them do
-func GetStringSliceOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *FilterS, dynOpts []*utils.DynamicStringSliceOpt,
+func GetStringSliceOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *FilterS, dynOpts []*config.DynamicStringSliceOpt,
dftOpt []string, optNames ...string) (cfgOpt []string, err error) {
for _, optName := range optNames {
if opt, has := ev.APIOpts[optName]; has {
@@ -146,7 +147,7 @@ func GetStringSliceOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS
// GetIntOpts checks the specified option names in order among the keys in APIOpts returning the first value it finds as int, otherwise it
// returns the config option if at least one filter passes or the default value if none of them do
-func GetIntOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *FilterS, dynOpts []*utils.DynamicIntOpt,
+func GetIntOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *FilterS, dynOpts []*config.DynamicIntOpt,
dftOpt int, optNames ...string) (cfgOpt int, err error) {
for _, optName := range optNames {
if opt, has := ev.APIOpts[optName]; has {
@@ -173,7 +174,7 @@ 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, dP utils.DataProvider, fS *FilterS, dynOpts []*utils.DynamicBoolOpt,
+func GetBoolOpts(ctx *context.Context, tnt string, dP utils.DataProvider, fS *FilterS, dynOpts []*config.DynamicBoolOpt,
dftOpt bool, optNames ...string) (cfgOpt bool, err error) {
values, err := dP.FieldAsInterface([]string{utils.MetaOpts})
if err != nil {
@@ -203,7 +204,7 @@ func GetBoolOpts(ctx *context.Context, tnt string, dP utils.DataProvider, fS *Fi
// GetDecimalBigOpts checks the specified option names in order among the keys in APIOpts returning the first value it finds as *decimal.Big, otherwise it
// returns the config option if at least one filter passes or the default value if none of them do
-func GetDecimalBigOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *FilterS, dynOpts []*utils.DynamicDecimalBigOpt,
+func GetDecimalBigOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *FilterS, dynOpts []*config.DynamicDecimalOpt,
dftOpt *decimal.Big, optNames ...string) (cfgOpt *decimal.Big, err error) {
for _, optName := range optNames {
if opt, has := ev.APIOpts[optName]; has {
@@ -218,7 +219,7 @@ func GetDecimalBigOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS
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
return nil, err
} else if pass {
- return opt.Value, nil
+ return opt.Value(evDP)
}
}
return dftOpt, nil // return the default value if there are no options and none of the filters pass
@@ -226,7 +227,7 @@ func GetDecimalBigOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS
// GetInterfaceOpts checks the specified option names in order among the keys in APIOpts returning the first value it finds as any, otherwise it
// returns the config option if at least one filter passes or the default value if none of them do
-func GetInterfaceOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *FilterS, dynOpts []*utils.DynamicInterfaceOpt,
+func GetInterfaceOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *FilterS, dynOpts []*config.DynamicInterfaceOpt,
dftOpt any, optNames ...string) (cfgOpt any, err error) {
for _, optName := range optNames {
if opt, has := ev.APIOpts[optName]; has {
@@ -249,7 +250,7 @@ func GetInterfaceOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *
// GetIntPointerOpts checks the specified option names in order among the keys in APIOpts returning the first value it finds as *int, otherwise it
// returns the config option if at least one filter passes or NOT_FOUND if none of them do
-func GetIntPointerOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *FilterS, dynOpts []*utils.DynamicIntPointerOpt,
+func GetIntPointerOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS *FilterS, dynOpts []*config.DynamicIntPointerOpt,
optNames ...string) (cfgOpt *int, err error) {
for _, optName := range optNames {
if opt, has := ev.APIOpts[optName]; has {
@@ -277,7 +278,7 @@ func GetIntPointerOpts(ctx *context.Context, tnt string, ev *utils.CGREvent, fS
// GetDurationPointerOptsFromMultipleMaps checks the specified option names in order among the keys in APIOpts, then in startOpts, returning the first value it finds as *time.Duration,
// otherwise it returns the config option if at least one filter passes or NOT_FOUND if none of them do
func GetDurationPointerOptsFromMultipleMaps(ctx *context.Context, tnt string, eventStart, apiOpts, startOpts map[string]any, fS *FilterS,
- dynOpts []*utils.DynamicDurationPointerOpt, optName string) (cfgOpt *time.Duration, err error) {
+ dynOpts []*config.DynamicDurationPointerOpt, optName string) (cfgOpt *time.Duration, err error) {
var value time.Duration
if opt, has := apiOpts[optName]; has {
if value, err = utils.IfaceAsDuration(opt); err != nil {
@@ -309,7 +310,7 @@ func GetDurationPointerOptsFromMultipleMaps(ctx *context.Context, tnt string, ev
// GetDurationOptsFromMultipleMaps checks the specified option names in order among the keys in APIOpts, then in startOpts, returning the first value it finds as time.Duration,
// otherwise it returns the config option if at least one filter passes or the default one if none of them do
-func GetDurationOptsFromMultipleMaps(ctx *context.Context, tnt string, eventStart, apiOpts, startOpts map[string]any, fS *FilterS, dynOpts []*utils.DynamicDurationOpt,
+func GetDurationOptsFromMultipleMaps(ctx *context.Context, tnt string, eventStart, apiOpts, startOpts map[string]any, fS *FilterS, dynOpts []*config.DynamicDurationOpt,
dftOpt time.Duration, optName string) (cfgOpt time.Duration, err error) {
var value time.Duration
if opt, has := apiOpts[optName]; has {
diff --git a/engine/libdynopts_test.go b/engine/libdynopts_test.go
index 668df799f..db8427d88 100644
--- a/engine/libdynopts_test.go
+++ b/engine/libdynopts_test.go
@@ -19,6 +19,7 @@ along with this program. If not, see
package engine
import (
+ "fmt"
"reflect"
"testing"
"time"
@@ -42,7 +43,7 @@ func TestLibFiltersGetFloat64OptsReturnConfigOpt(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicFloat64Opt{
+ dynOpts := []*config.DynamicFloat64Opt{
// tenant will not be recognized, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1001"},
@@ -84,7 +85,7 @@ func TestLibFiltersGetFloat64OptsFilterCheckErr(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicFloat64Opt{
+ dynOpts := []*config.DynamicFloat64Opt{
// function will return error after trying to parse the filter
{
FilterIDs: []string{"*string.invalid:filter"},
@@ -114,7 +115,7 @@ func TestLibFiltersGetFloat64OptsReturnDefaultOpt(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicFloat64Opt{
+ dynOpts := []*config.DynamicFloat64Opt{
// filter will not pass, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1002"},
@@ -146,7 +147,7 @@ func TestLibFiltersGetFloat64OptsReturnOptFromAPIOpts(t *testing.T) {
utils.OptsResourcesUnits: 6,
},
}
- dynOpts := []*utils.DynamicFloat64Opt{
+ dynOpts := []*config.DynamicFloat64Opt{
// will never get to this opt because it will return once it
// finds the one set in APIOpts
{
@@ -178,7 +179,7 @@ func TestLibFiltersGetStringOptsReturnConfigOpt(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicStringOpt{
+ dynOpts := []*config.DynamicStringOpt{
// tenant will not be recognized, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1001"},
@@ -220,7 +221,7 @@ func TestLibFiltersGetStringOptsFilterCheckErr(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicStringOpt{
+ dynOpts := []*config.DynamicStringOpt{
// function will return error after trying to parse the filter
{
FilterIDs: []string{"*string.invalid:filter"},
@@ -250,7 +251,7 @@ func TestLibFiltersGetStringOptsReturnDefaultOpt(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicStringOpt{
+ dynOpts := []*config.DynamicStringOpt{
// filter will not pass, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1002"},
@@ -282,7 +283,7 @@ func TestLibFiltersGetStringOptsReturnOptFromAPIOpts(t *testing.T) {
utils.OptsResourcesUsageID: "value4",
},
}
- dynOpts := []*utils.DynamicStringOpt{
+ dynOpts := []*config.DynamicStringOpt{
// will never get to this opt because it will return once it
// finds the one set in APIOpts
{
@@ -314,7 +315,7 @@ func TestLibFiltersGetDurationOptsReturnConfigOpt(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicDurationOpt{
+ dynOpts := []*config.DynamicDurationOpt{
// tenant will not be recognized, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1001"},
@@ -356,7 +357,7 @@ func TestLibFiltersGetDurationOptsFilterCheckErr(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicDurationOpt{
+ dynOpts := []*config.DynamicDurationOpt{
// function will return error after trying to parse the filter
{
FilterIDs: []string{"*string.invalid:filter"},
@@ -386,7 +387,7 @@ func TestLibFiltersGetDurationOptsReturnDefaultOpt(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicDurationOpt{
+ dynOpts := []*config.DynamicDurationOpt{
// filter will not pass, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1002"},
@@ -418,7 +419,7 @@ func TestLibFiltersGetDurationOptsReturnOptFromAPIOpts(t *testing.T) {
utils.OptsResourcesUsageTTL: time.Hour,
},
}
- dynOpts := []*utils.DynamicDurationOpt{
+ dynOpts := []*config.DynamicDurationOpt{
// will never get to this opt because it will return once it
// finds the one set in APIOpts
{
@@ -450,7 +451,7 @@ func TestLibFiltersGetIntOptsReturnConfigOpt(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicIntOpt{
+ dynOpts := []*config.DynamicIntOpt{
// tenant will not be recognized, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1001"},
@@ -492,7 +493,7 @@ func TestLibFiltersGetIntOptsFilterCheckErr(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicIntOpt{
+ dynOpts := []*config.DynamicIntOpt{
// function will return error after trying to parse the filter
{
FilterIDs: []string{"*string.invalid:filter"},
@@ -522,7 +523,7 @@ func TestLibFiltersGetIntOptsReturnDefaultOpt(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicIntOpt{
+ dynOpts := []*config.DynamicIntOpt{
// filter will not pass, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1002"},
@@ -554,7 +555,7 @@ func TestLibFiltersGetIntOptsReturnOptFromAPIOptsOK(t *testing.T) {
utils.OptsAttributesProcessRuns: 6,
},
}
- dynOpts := []*utils.DynamicIntOpt{
+ dynOpts := []*config.DynamicIntOpt{
// will never get to this opt because it will return once it
// finds the one set in APIOpts
{
@@ -588,7 +589,7 @@ func TestLibFiltersGetIntOptsReturnOptFromAPIOptsErr(t *testing.T) {
utils.OptsAttributesProcessRuns: true,
},
}
- dynOpts := []*utils.DynamicIntOpt{
+ dynOpts := []*config.DynamicIntOpt{
// will never get to this opt because it will return once it
// finds the one set in APIOpts
{
@@ -618,7 +619,7 @@ func TestLibFiltersGetTimeOptsReturnConfigOpt(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicStringOpt{
+ dynOpts := []*config.DynamicStringOpt{
// tenant will not be recognized, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1001"},
@@ -660,7 +661,7 @@ func TestLibFiltersGetTimeOptsFilterCheckErr(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicStringOpt{
+ dynOpts := []*config.DynamicStringOpt{
// function will return error after trying to parse the filter
{
FilterIDs: []string{"*string.invalid:filter"},
@@ -690,7 +691,7 @@ func TestLibFiltersGetTimeOptsReturnDefaultOpt(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicStringOpt{
+ dynOpts := []*config.DynamicStringOpt{
// filter will not pass, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1002"},
@@ -726,7 +727,7 @@ func TestLibFiltersGetTimeOptsReturnOptFromAPIOpts(t *testing.T) {
utils.OptsRatesStartTime: "*yearly",
},
}
- dynOpts := []*utils.DynamicStringOpt{
+ dynOpts := []*config.DynamicStringOpt{
// will never get to this opt because it will return once it
// finds the one set in APIOpts
{
@@ -764,7 +765,7 @@ func TestLibFiltersGetBoolOptsReturnConfigOpt(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicBoolOpt{
+ dynOpts := []*config.DynamicBoolOpt{
// tenant will not be recognized, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1001"},
@@ -806,7 +807,7 @@ func TestLibFiltersGetBoolOptsFilterCheckErr(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicBoolOpt{
+ dynOpts := []*config.DynamicBoolOpt{
// function will return error after trying to parse the filter
{
FilterIDs: []string{"*string.invalid:filter"},
@@ -836,7 +837,7 @@ func TestLibFiltersGetBoolOptsReturnDefaultOpt(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicBoolOpt{
+ dynOpts := []*config.DynamicBoolOpt{
// filter will not pass, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1002"},
@@ -868,7 +869,7 @@ func TestLibFiltersGetBoolOptsReturnOptFromAPIOpts(t *testing.T) {
utils.MetaProfileIgnoreFilters: true,
},
}
- dynOpts := []*utils.DynamicBoolOpt{
+ dynOpts := []*config.DynamicBoolOpt{
// will never get to this opt because it will return once it
// finds the one set in APIOpts
{
@@ -900,7 +901,7 @@ func TestLibFiltersGetInterfaceOptsReturnConfigOpt(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicInterfaceOpt{
+ dynOpts := []*config.DynamicInterfaceOpt{
// tenant will not be recognized, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1001"},
@@ -942,7 +943,7 @@ func TestLibFiltersGetInterfaceOptsFilterCheckErr(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicInterfaceOpt{
+ dynOpts := []*config.DynamicInterfaceOpt{
// function will return error after trying to parse the filter
{
FilterIDs: []string{"*string.invalid:filter"},
@@ -972,7 +973,7 @@ func TestLibFiltersGetInterfaceOptsReturnDefaultOpt(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicInterfaceOpt{
+ dynOpts := []*config.DynamicInterfaceOpt{
// filter will not pass, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1002"},
@@ -1004,7 +1005,7 @@ func TestLibFiltersGetInterfaceOptsReturnOptFromAPIOpts(t *testing.T) {
utils.OptsRoutesMaxCost: 4,
},
}
- dynOpts := []*utils.DynamicInterfaceOpt{
+ dynOpts := []*config.DynamicInterfaceOpt{
// will never get to this opt because it will return once it
// finds the one set in APIOpts
{
@@ -1036,7 +1037,7 @@ func TestLibFiltersGetStringSliceOptsReturnConfigOpt(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicStringSliceOpt{
+ dynOpts := []*config.DynamicStringSliceOpt{
// tenant will not be recognized, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1001"},
@@ -1078,7 +1079,7 @@ func TestLibFiltersGetStringSliceOptsFilterCheckErr(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicStringSliceOpt{
+ dynOpts := []*config.DynamicStringSliceOpt{
// function will return error after trying to parse the filter
{
FilterIDs: []string{"*string.invalid:filter"},
@@ -1108,7 +1109,7 @@ func TestLibFiltersGetStringSliceOptsReturnDefaultOpt(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicStringSliceOpt{
+ dynOpts := []*config.DynamicStringSliceOpt{
// filter will not pass, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1002"},
@@ -1140,7 +1141,7 @@ func TestLibFiltersGetStringSliceOptsReturnOptFromAPIOpts(t *testing.T) {
utils.OptsAttributesProfileIDs: []string{"value4"},
},
}
- dynOpts := []*utils.DynamicStringSliceOpt{
+ dynOpts := []*config.DynamicStringSliceOpt{
// will never get to this opt because it will return once it
// finds the one set in APIOpts
{
@@ -1172,27 +1173,27 @@ func TestLibFiltersGetDecimalBigOptsReturnConfigOpt(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicDecimalBigOpt{
- // tenant will not be recognized, will ignore this opt
+ strOpts := []*config.DynamicStringOpt{
{
FilterIDs: []string{"*string:~*req.Account:1001"},
Tenant: "cgrates.net",
- Value: decimal.New(42, 0),
+ Value: "42",
},
// filter will not pass, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1002"},
Tenant: "cgrates.org",
- Value: decimal.New(-1, 0),
+ Value: "-1",
},
{
FilterIDs: []string{"*string:~*req.Account:1001"},
Tenant: "cgrates.org",
- Value: decimal.New(1234, 3),
+ Value: "1234",
},
}
+ dynOpts, _ := config.StringToDecimalBigDynamicOpts(strOpts)
- expected := decimal.New(1234, 3)
+ expected := decimal.New(1234, 0)
if rcv, err := GetDecimalBigOpts(context.Background(), "cgrates.org", ev, fS, dynOpts,
config.RatesUsageDftOpt, utils.OptsRatesUsage); err != nil {
t.Error(err)
@@ -1201,6 +1202,107 @@ func TestLibFiltersGetDecimalBigOptsReturnConfigOpt(t *testing.T) {
}
}
+func TestDynamicDecimalBigOptsDynVal(t *testing.T) {
+ tests := []struct {
+ name string
+ dynOpts []*config.DynamicStringOpt
+ expVal int64
+ expErr error
+ }{
+ {
+ name: "DynOptsVal",
+ dynOpts: []*config.DynamicStringOpt{
+ {
+ Tenant: "cgrates.org",
+ Value: "~*opts.*usage",
+ },
+ },
+ expVal: int64(time.Second * 27),
+ },
+ {
+ name: "DynReqVal",
+ dynOpts: []*config.DynamicStringOpt{
+ {
+ Tenant: "cgrates.org",
+ Value: "~*req.Usage",
+ },
+ },
+ expVal: int64(time.Second * 12),
+ },
+ {
+ name: "StaticVal",
+ dynOpts: []*config.DynamicStringOpt{
+ {
+ Tenant: "cgrates.org",
+ Value: "4334",
+ },
+ },
+ expVal: 4334,
+ },
+ {
+ name: "NotFound",
+ dynOpts: []*config.DynamicStringOpt{
+ {
+ Tenant: "cgrates.org",
+ Value: "~*req.RandomField",
+ },
+ },
+ expErr: utils.ErrNotFound,
+ },
+ {
+ name: "ValueNotConvertedCorrectly",
+ dynOpts: []*config.DynamicStringOpt{
+ {
+ Tenant: "cgrates.org",
+ Value: "~*req.Usage2",
+ },
+ },
+ expErr: fmt.Errorf("can't convert to decimal"),
+ },
+ }
+
+ ev := &utils.CGREvent{
+ Tenant: utils.CGRateSorg,
+ ID: "testIDEvent",
+ Event: map[string]any{
+ utils.AccountField: "1001",
+ utils.Usage: "12s",
+ "Usage2": "twenty-five",
+ },
+ APIOpts: map[string]any{
+ utils.MetaUsage: "27s",
+ },
+ }
+ fs := NewFilterS(config.CgrConfig(), nil, nil)
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ dynOpts, err := config.StringToDecimalBigDynamicOpts(tt.dynOpts)
+ if err != nil {
+ t.Error(err)
+ return
+ }
+ out, err := GetDecimalBigOpts(context.Background(), "cgrates.org", ev, fs, dynOpts, config.RatesUsageDftOpt, utils.OptsRatesUsage)
+ if tt.expErr != nil {
+ if err == nil {
+ t.Error("expected err,received nil")
+ }
+ if err.Error() != tt.expErr.Error() {
+ t.Errorf("expected error %v,received %v", tt.expErr, err)
+ }
+ return
+ }
+ if err != nil {
+ t.Errorf("unexpected err %v", err)
+ }
+ val, _ := out.Int64()
+ if tt.expVal != val {
+ t.Errorf("expected %d,received %d", tt.expVal, val)
+ }
+ })
+ }
+}
+
func TestLibFiltersGetDecimalBigOptsFilterCheckErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
dataDB := NewInternalDB(nil, nil, nil)
@@ -1214,15 +1316,15 @@ func TestLibFiltersGetDecimalBigOptsFilterCheckErr(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicDecimalBigOpt{
+ strOpts := []*config.DynamicStringOpt{
// function will return error after trying to parse the filter
{
FilterIDs: []string{"*string.invalid:filter"},
Tenant: "cgrates.org",
- Value: decimal.New(-1, 0),
+ Value: "-1",
},
}
-
+ dynOpts, _ := config.StringToDecimalBigDynamicOpts(strOpts)
experr := `inline parse error for string: <*string.invalid:filter>`
if _, err := GetDecimalBigOpts(context.Background(), "cgrates.org", ev, fS, dynOpts,
config.RatesUsageDftOpt, utils.OptsRatesUsage); err == nil ||
@@ -1244,15 +1346,14 @@ func TestLibFiltersGetDecimalBigOptsReturnDefaultOpt(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicDecimalBigOpt{
- // filter will not pass, will ignore this opt
+ strOpts := []*config.DynamicStringOpt{
{
FilterIDs: []string{"*string:~*req.Account:1002"},
Tenant: "cgrates.org",
- Value: decimal.New(-1, 0),
+ Value: "-1",
},
}
-
+ dynOpts, _ := config.StringToDecimalBigDynamicOpts(strOpts)
if rcv, err := GetDecimalBigOpts(context.Background(), "cgrates.org", ev, fS, dynOpts,
config.RatesUsageDftOpt, utils.OptsRatesUsage); err != nil {
t.Error(err)
@@ -1276,15 +1377,17 @@ func TestLibFiltersGetDecimalBigOptsReturnOptFromAPIOpts(t *testing.T) {
utils.OptsRatesUsage: decimal.New(4321, 5),
},
}
- dynOpts := []*utils.DynamicDecimalBigOpt{
+
+ strOpts := []*config.DynamicStringOpt{
// will never get to this opt because it will return once it
// finds the one set in APIOpts
{
FilterIDs: []string{"*string:~*req.Account:1001"},
Tenant: "cgrates.org",
- Value: decimal.New(1234, 3),
+ Value: "1234",
},
}
+ dynOpts, _ := config.StringToDecimalBigDynamicOpts(strOpts)
expected := decimal.New(4321, 5)
if rcv, err := GetDecimalBigOpts(context.Background(), "cgrates.org", ev, fS, dynOpts,
@@ -1308,7 +1411,7 @@ func TestLibFiltersGetIntPointerOptsReturnConfigOpt(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicIntPointerOpt{
+ dynOpts := []*config.DynamicIntPointerOpt{
// tenant will not be recognized, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1001"},
@@ -1350,7 +1453,7 @@ func TestLibFiltersGetIntPointerOptsFilterCheckErr(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicIntPointerOpt{
+ dynOpts := []*config.DynamicIntPointerOpt{
// function will return error after trying to parse the filter
{
FilterIDs: []string{"*string.invalid:filter"},
@@ -1380,7 +1483,7 @@ func TestLibFiltersGetIntPointerOptsReturnDft(t *testing.T) {
},
APIOpts: map[string]any{},
}
- dynOpts := []*utils.DynamicIntPointerOpt{
+ dynOpts := []*config.DynamicIntPointerOpt{
// filter will not pass, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1002"},
@@ -1412,7 +1515,7 @@ func TestLibFiltersGetIntPointerOptsReturnOptFromAPIOptsOK(t *testing.T) {
utils.OptsRoutesProfilesCount: 6,
},
}
- dynOpts := []*utils.DynamicIntPointerOpt{
+ dynOpts := []*config.DynamicIntPointerOpt{
// will never get to this opt because it will return once it
// finds the one set in APIOpts
{
@@ -1446,7 +1549,7 @@ func TestLibFiltersGetIntPointerOptsReturnOptFromAPIOptsErr(t *testing.T) {
utils.OptsRoutesProfilesCount: true,
},
}
- dynOpts := []*utils.DynamicIntPointerOpt{
+ dynOpts := []*config.DynamicIntPointerOpt{
// will never get to this opt because it will return once it
// finds the one set in APIOpts
{
@@ -1473,7 +1576,7 @@ func TestLibFiltersGetDurationOptsFromMultipleMapsReturnConfigOpt(t *testing.T)
}
apiOpts := map[string]any{}
startOpts := map[string]any{}
- dynOpts := []*utils.DynamicDurationOpt{
+ dynOpts := []*config.DynamicDurationOpt{
// tenant will not be recognized, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1001"},
@@ -1512,7 +1615,7 @@ func TestLibFiltersGetDurationOptsFromMultipleMapsFilterCheckErr(t *testing.T) {
}
apiOpts := map[string]any{}
startOpts := map[string]any{}
- dynOpts := []*utils.DynamicDurationOpt{
+ dynOpts := []*config.DynamicDurationOpt{
// function will return error after trying to parse the filter
{
FilterIDs: []string{"*string.invalid:filter"},
@@ -1539,7 +1642,7 @@ func TestLibFiltersGetDurationOptsFromMultipleMapsErrNotFound(t *testing.T) {
}
apiOpts := map[string]any{}
startOpts := map[string]any{}
- dynOpts := []*utils.DynamicDurationOpt{
+ dynOpts := []*config.DynamicDurationOpt{
// filter will not pass, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1002"},
@@ -1568,7 +1671,7 @@ func TestLibFiltersGetDurationOptsFromMultipleMapsReturnOptFromAPIOptsOK(t *test
utils.OptsSesTTL: time.Hour,
}
startOpts := map[string]any{}
- dynOpts := []*utils.DynamicDurationOpt{
+ dynOpts := []*config.DynamicDurationOpt{
// will never get to this opt because it will return once it
// finds the one set in APIOpts
{
@@ -1599,7 +1702,7 @@ func TestLibFiltersGetDurationOptsFromMultipleMapsReturnOptFromAPIOptsErr(t *tes
utils.OptsSesTTL: true,
}
startOpts := map[string]any{}
- dynOpts := []*utils.DynamicDurationOpt{
+ dynOpts := []*config.DynamicDurationOpt{
// will never get to this opt because it will return once it
// finds the one set in APIOpts
{
@@ -1628,7 +1731,7 @@ func TestLibFiltersGetDurationOptsFromMultipleMapsReturnOptFromStartOptsOK(t *te
startOpts := map[string]any{
utils.OptsSesTTL: time.Hour,
}
- dynOpts := []*utils.DynamicDurationOpt{
+ dynOpts := []*config.DynamicDurationOpt{
// will never get to this opt because it will return once it
// finds the one set in APIOpts
{
@@ -1659,7 +1762,7 @@ func TestLibFiltersGetDurationOptsFromMultipleMapsReturnOptFromStartOptsErr(t *t
startOpts := map[string]any{
utils.OptsSesTTL: true,
}
- dynOpts := []*utils.DynamicDurationOpt{
+ dynOpts := []*config.DynamicDurationOpt{
// will never get to this opt because it will return once it
// finds the one set in APIOpts
{
@@ -1686,7 +1789,7 @@ func TestLibFiltersGetDurationPointerOptsFromMultipleMapsReturnConfigOpt(t *test
}
apiOpts := map[string]any{}
startOpts := map[string]any{}
- dynOpts := []*utils.DynamicDurationPointerOpt{
+ dynOpts := []*config.DynamicDurationPointerOpt{
// tenant will not be recognized, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1001"},
@@ -1725,7 +1828,7 @@ func TestLibFiltersGetDurationPointerOptsFromMultipleMapsFilterCheckErr(t *testi
}
apiOpts := map[string]any{}
startOpts := map[string]any{}
- dynOpts := []*utils.DynamicDurationPointerOpt{
+ dynOpts := []*config.DynamicDurationPointerOpt{
// function will return error after trying to parse the filter
{
FilterIDs: []string{"*string.invalid:filter"},
@@ -1752,7 +1855,7 @@ func TestLibFiltersGetDurationPointerOptsFromMultipleMapsReturnDft(t *testing.T)
}
apiOpts := map[string]any{}
startOpts := map[string]any{}
- dynOpts := []*utils.DynamicDurationPointerOpt{
+ dynOpts := []*config.DynamicDurationPointerOpt{
// filter will not pass, will ignore this opt
{
FilterIDs: []string{"*string:~*req.Account:1002"},
@@ -1779,7 +1882,7 @@ func TestLibFiltersGetDurationPointerOptsFromMultipleMapsReturnOptFromAPIOptsOK(
utils.OptsSesTTLUsage: time.Hour,
}
startOpts := map[string]any{}
- dynOpts := []*utils.DynamicDurationPointerOpt{
+ dynOpts := []*config.DynamicDurationPointerOpt{
// will never get to this opt because it will return once it
// finds the one set in APIOpts
{
@@ -1810,7 +1913,7 @@ func TestLibFiltersGetDurationPointerOptsFromMultipleMapsReturnOptFromAPIOptsErr
utils.OptsSesTTLUsage: true,
}
startOpts := map[string]any{}
- dynOpts := []*utils.DynamicDurationPointerOpt{
+ dynOpts := []*config.DynamicDurationPointerOpt{
// will never get to this opt because it will return once it
// finds the one set in APIOpts
{
@@ -1839,7 +1942,7 @@ func TestLibFiltersGetDurationPointerOptsFromMultipleMapsReturnOptFromStartOptsO
startOpts := map[string]any{
utils.OptsSesTTLUsage: time.Hour,
}
- dynOpts := []*utils.DynamicDurationPointerOpt{
+ dynOpts := []*config.DynamicDurationPointerOpt{
// will never get to this opt because it will return once it
// finds the one set in APIOpts
{
@@ -1870,7 +1973,7 @@ func TestLibFiltersGetDurationPointerOptsFromMultipleMapsReturnOptFromStartOptsE
startOpts := map[string]any{
utils.OptsSesTTLUsage: true,
}
- dynOpts := []*utils.DynamicDurationPointerOpt{
+ dynOpts := []*config.DynamicDurationPointerOpt{
// will never get to this opt because it will return once it
// finds the one set in APIOpts
{
@@ -1893,7 +1996,7 @@ func TestGetBoolOptsFieldAsInterfaceErr(t *testing.T) {
dataDB := NewInternalDB(nil, nil, nil)
dm := NewDataManager(dataDB, cfg.CacheCfg(), nil)
fS := NewFilterS(cfg, nil, dm)
- dynOpts := []*utils.DynamicBoolOpt{
+ dynOpts := []*config.DynamicBoolOpt{
{
FilterIDs: []string{"*string:~*req.Account:1001"},
Tenant: "cgrates.org",
@@ -1913,7 +2016,7 @@ func TestGetBoolOptsCantCastErr(t *testing.T) {
dataDB := NewInternalDB(nil, nil, nil)
dm := NewDataManager(dataDB, cfg.CacheCfg(), nil)
fS := NewFilterS(cfg, nil, dm)
- dynOpts := []*utils.DynamicBoolOpt{
+ dynOpts := []*config.DynamicBoolOpt{
{
FilterIDs: []string{"*string:~*req.Account:1001"},
Tenant: "cgrates.org",
diff --git a/engine/route_cost_sort_test.go b/engine/route_cost_sort_test.go
index 91dbd4f02..1b7a35dac 100644
--- a/engine/route_cost_sort_test.go
+++ b/engine/route_cost_sort_test.go
@@ -29,7 +29,6 @@ import (
"github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
- "github.com/ericlagergren/decimal"
)
// func TestPopulateCostForRoutesConnRefused(t *testing.T) {
@@ -273,13 +272,15 @@ func TestPopulateCostForRoutesGetDecimalBigOptsErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.RouteSCfg().RateSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRates)}
- cfg.RouteSCfg().Opts.Usage = []*utils.DynamicDecimalBigOpt{
+ strOpts := []*config.DynamicStringOpt{
{
FilterIDs: []string{"*string.invalid:filter"},
Tenant: "cgrates.org",
- Value: decimal.New(-1, 0),
+ Value: "-1",
},
}
+ dynOpts, _ := config.StringToDecimalBigDynamicOpts(strOpts)
+ cfg.RouteSCfg().Opts.Usage = dynOpts
cM := NewConnManager(cfg)
fltrS := NewFilterS(cfg, cM, nil)
routes := map[string]*RouteWithWeight{
diff --git a/engine/routes_test.go b/engine/routes_test.go
index ad3950577..9aa6d4e10 100644
--- a/engine/routes_test.go
+++ b/engine/routes_test.go
@@ -499,7 +499,7 @@ func TestRoutesNewOptsGetRoutes(t *testing.T) {
}
func TestRoutesNewOptsGetRoutesFromCfg(t *testing.T) {
- config.CgrConfig().RouteSCfg().Opts.IgnoreErrors = []*utils.DynamicBoolOpt{{Value: true}}
+ config.CgrConfig().RouteSCfg().Opts.IgnoreErrors = []*config.DynamicBoolOpt{{Value: true}}
ev := &utils.CGREvent{
APIOpts: map[string]any{},
}
@@ -1763,7 +1763,7 @@ func TestRouteSMatchingRPSForEventBlockerFromDynamicsErr(t *testing.T) {
func TestNewOptsGetRoutesGetBoolOptsErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- cfg.RouteSCfg().Opts.IgnoreErrors = []*utils.DynamicBoolOpt{
+ cfg.RouteSCfg().Opts.IgnoreErrors = []*config.DynamicBoolOpt{
{
FilterIDs: []string{"*string.invalid:filter"},
Tenant: "cgrates.org",
@@ -1796,7 +1796,7 @@ func TestNewOptsGetRoutesGetBoolOptsErr(t *testing.T) {
func TestNewOptsGetRoutesGetIntPointerOptsLimitErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- cfg.RouteSCfg().Opts.Limit = []*utils.DynamicIntPointerOpt{
+ cfg.RouteSCfg().Opts.Limit = []*config.DynamicIntPointerOpt{
{
FilterIDs: []string{"*string.invalid:filter"},
Tenant: "cgrates.org",
@@ -1829,7 +1829,7 @@ func TestNewOptsGetRoutesGetIntPointerOptsLimitErr(t *testing.T) {
func TestNewOptsGetRoutesGetIntPointerOptsOffsetErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- cfg.RouteSCfg().Opts.Offset = []*utils.DynamicIntPointerOpt{
+ cfg.RouteSCfg().Opts.Offset = []*config.DynamicIntPointerOpt{
{
FilterIDs: []string{"*string.invalid:filter"},
Tenant: "cgrates.org",
@@ -1862,7 +1862,7 @@ func TestNewOptsGetRoutesGetIntPointerOptsOffsetErr(t *testing.T) {
func TestNewOptsGetRoutesGetIntPointerOptsMaxItemsErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- cfg.RouteSCfg().Opts.MaxItems = []*utils.DynamicIntPointerOpt{
+ cfg.RouteSCfg().Opts.MaxItems = []*config.DynamicIntPointerOpt{
{
FilterIDs: []string{"*string.invalid:filter"},
Tenant: "cgrates.org",
@@ -1895,7 +1895,7 @@ func TestNewOptsGetRoutesGetIntPointerOptsMaxItemsErr(t *testing.T) {
func TestNewOptsGetRoutesGetInterfaceOptsErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- cfg.RouteSCfg().Opts.MaxCost = []*utils.DynamicInterfaceOpt{
+ cfg.RouteSCfg().Opts.MaxCost = []*config.DynamicInterfaceOpt{
{
FilterIDs: []string{"*string.invalid:filter"},
Tenant: "cgrates.org",
@@ -1928,7 +1928,7 @@ func TestNewOptsGetRoutesGetInterfaceOptsErr(t *testing.T) {
func TestSortedRoutesForEventsortedRoutesForProfileErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- cfg.RouteSCfg().Opts.ProfileCount = []*utils.DynamicIntPointerOpt{
+ cfg.RouteSCfg().Opts.ProfileCount = []*config.DynamicIntPointerOpt{
{
FilterIDs: []string{"*string.invalid:filter"},
Tenant: "cgrates.org",
@@ -2017,7 +2017,7 @@ func TestSortedRoutesForEventsortedRoutesForProfileErr(t *testing.T) {
func TestSortedRoutesForEventGetIntPointerOptsErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- cfg.RouteSCfg().Opts.ProfileCount = []*utils.DynamicIntPointerOpt{
+ cfg.RouteSCfg().Opts.ProfileCount = []*config.DynamicIntPointerOpt{
{
FilterIDs: []string{"*string.invalid:filter"},
Tenant: "cgrates.org",
@@ -2104,7 +2104,7 @@ func TestSortedRoutesForEventGetIntPointerOptsErr(t *testing.T) {
func TestSortedRoutesForEventNewOptsGetRoutesErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- cfg.RouteSCfg().Opts.IgnoreErrors = []*utils.DynamicBoolOpt{
+ cfg.RouteSCfg().Opts.IgnoreErrors = []*config.DynamicBoolOpt{
{
FilterIDs: []string{"*string.invalid:filter"},
Tenant: "cgrates.org",
@@ -2191,13 +2191,13 @@ func TestSortedRoutesForEventNewOptsGetRoutesErr(t *testing.T) {
func TestSortedRoutesForEventExceedMaxItemsErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- cfg.RouteSCfg().Opts.MaxItems = []*utils.DynamicIntPointerOpt{
+ cfg.RouteSCfg().Opts.MaxItems = []*config.DynamicIntPointerOpt{
{
Tenant: "cgrates.org",
Value: utils.IntPointer(1),
},
}
- cfg.RouteSCfg().Opts.Limit = []*utils.DynamicIntPointerOpt{
+ cfg.RouteSCfg().Opts.Limit = []*config.DynamicIntPointerOpt{
{
Tenant: "cgrates.org",
Value: utils.IntPointer(2),
@@ -2282,7 +2282,7 @@ func TestSortedRoutesForEventExceedMaxItemsErr(t *testing.T) {
func TestRouteSV1GetRoutesGetStringOptsErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- cfg.RouteSCfg().Opts.Context = []*utils.DynamicStringOpt{
+ cfg.RouteSCfg().Opts.Context = []*config.DynamicStringOpt{
{
FilterIDs: []string{"*string.invalid:filter"},
Tenant: "cgrates.org",
@@ -2439,7 +2439,7 @@ func TestRoutesV1GetRoutesSortedRoutesForEventErr(t *testing.T) {
}()
cfg := config.NewDefaultCGRConfig()
- cfg.RouteSCfg().Opts.ProfileCount = []*utils.DynamicIntPointerOpt{
+ cfg.RouteSCfg().Opts.ProfileCount = []*config.DynamicIntPointerOpt{
{
FilterIDs: []string{"*string.invalid:filter"},
Tenant: "cgrates.org",
@@ -2940,7 +2940,7 @@ func TestRoutessortedRoutesForEventNoSortedRoutesErr(t *testing.T) {
}()
cfg := config.NewDefaultCGRConfig()
- cfg.RouteSCfg().Opts.Offset = []*utils.DynamicIntPointerOpt{
+ cfg.RouteSCfg().Opts.Offset = []*config.DynamicIntPointerOpt{
{
Value: utils.IntPointer(10),
},
diff --git a/engine/stats_test.go b/engine/stats_test.go
index 303eee291..d24bd3761 100644
--- a/engine/stats_test.go
+++ b/engine/stats_test.go
@@ -3059,7 +3059,7 @@ func TestStatQueueProcessEventProfileIgnoreFilters(t *testing.T) {
dm := NewDataManager(data, cfg.CacheCfg(), nil)
filterS := NewFilterS(cfg, nil, dm)
sS := NewStatService(dm, cfg, filterS, nil)
- cfg.StatSCfg().Opts.ProfileIgnoreFilters = []*utils.DynamicBoolOpt{
+ cfg.StatSCfg().Opts.ProfileIgnoreFilters = []*config.DynamicBoolOpt{
{
Value: true,
},
@@ -3133,7 +3133,7 @@ func TestStatQueueProcessEventProfileIgnoreFiltersError(t *testing.T) {
dm := NewDataManager(data, cfg.CacheCfg(), nil)
filterS := NewFilterS(cfg, nil, dm)
sS := NewStatService(dm, cfg, filterS, nil)
- cfg.StatSCfg().Opts.ProfileIgnoreFilters = []*utils.DynamicBoolOpt{
+ cfg.StatSCfg().Opts.ProfileIgnoreFilters = []*config.DynamicBoolOpt{
{
Value: true,
},
@@ -3189,7 +3189,7 @@ func TestStatQueueV1GetStatQueuesForEventProfileIgnoreFilters(t *testing.T) {
}()
cfg := config.NewDefaultCGRConfig()
- cfg.StatSCfg().Opts.ProfileIgnoreFilters = []*utils.DynamicBoolOpt{
+ cfg.StatSCfg().Opts.ProfileIgnoreFilters = []*config.DynamicBoolOpt{
{
Value: true,
},
@@ -3486,7 +3486,7 @@ func TestStatSV1GetQueueStringMetricsIntOptsErr(t *testing.T) {
cfg.StatSCfg().StoreInterval = 1
cfg.StatSCfg().StringIndexedFields = nil
cfg.StatSCfg().PrefixIndexedFields = nil
- cfg.StatSCfg().Opts.RoundingDecimals = []*utils.DynamicIntOpt{
+ cfg.StatSCfg().Opts.RoundingDecimals = []*config.DynamicIntOpt{
// function will return error after trying to parse the filter
{
FilterIDs: []string{"*string.invalid:filter"},
@@ -3519,7 +3519,7 @@ func TestStatSV1GetStatQueuesForEventsqIDsErr(t *testing.T) {
}()
cfg := config.NewDefaultCGRConfig()
- cfg.StatSCfg().Opts.ProfileIDs = []*utils.DynamicStringSliceOpt{
+ cfg.StatSCfg().Opts.ProfileIDs = []*config.DynamicStringSliceOpt{
// function will return error after trying to parse the filter
{
FilterIDs: []string{"*string.invalid:filter"},
@@ -3603,7 +3603,7 @@ func TestStatSV1GetStatQueuesForEventignFiltersErr(t *testing.T) {
}()
cfg := config.NewDefaultCGRConfig()
- cfg.StatSCfg().Opts.ProfileIgnoreFilters = []*utils.DynamicBoolOpt{
+ cfg.StatSCfg().Opts.ProfileIgnoreFilters = []*config.DynamicBoolOpt{
// function will return error after trying to parse the filter
{
FilterIDs: []string{"*string.invalid:filter"},
@@ -3787,7 +3787,7 @@ func TestStatQueueProcessEventProfileIDsErr(t *testing.T) {
},
APIOpts: map[string]any{},
}
- sS.cfg.StatSCfg().Opts.ProfileIDs = []*utils.DynamicStringSliceOpt{
+ sS.cfg.StatSCfg().Opts.ProfileIDs = []*config.DynamicStringSliceOpt{
{
FilterIDs: []string{"*string.invalid:filter"},
@@ -3872,7 +3872,7 @@ func TestStatQueueProcessEventPrometheusStatIDsErr(t *testing.T) {
},
}
- sS.cfg.StatSCfg().Opts.PrometheusStatIDs = []*utils.DynamicStringSliceOpt{
+ sS.cfg.StatSCfg().Opts.PrometheusStatIDs = []*config.DynamicStringSliceOpt{
{
FilterIDs: []string{"*string.invalid:filter"},
diff --git a/engine/storage_it_test.go b/engine/storage_it_test.go
index cb5aefa3d..06b81c547 100644
--- a/engine/storage_it_test.go
+++ b/engine/storage_it_test.go
@@ -65,13 +65,13 @@ func TestSetGetRemoveConfigSectionsDrvRedis(t *testing.T) {
Actions_conns: &[]string{"*internal"},
Nested_fields: utils.BoolPointer(true),
Opts: &config.ThresholdsOptsJson{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*config.DynamicStringSliceOpt{
{
Tenant: "cgrates.org",
Values: []string{"value1"},
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*config.DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: true,
@@ -93,17 +93,17 @@ func TestSetGetRemoveConfigSectionsDrvRedis(t *testing.T) {
Suffix_indexed_fields: &[]string{"*req.index33"},
Nested_fields: utils.BoolPointer(true),
Opts: &config.ResourcesOptsJson{
- UsageID: []*utils.DynamicStringOpt{
+ UsageID: []*config.DynamicStringOpt{
{
Value: "usg2",
},
},
- UsageTTL: []*utils.DynamicStringOpt{
+ UsageTTL: []*config.DynamicStringOpt{
{
Value: "1m0s",
},
},
- Units: []*utils.DynamicFloat64Opt{
+ Units: []*config.DynamicFloat64Opt{
{
Value: 2,
},
@@ -184,13 +184,13 @@ func TestSetGetRemoveConfigSectionsDrvMongo(t *testing.T) {
Actions_conns: &[]string{"*internal"},
Nested_fields: utils.BoolPointer(true),
Opts: &config.ThresholdsOptsJson{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*config.DynamicStringSliceOpt{
{
Tenant: "cgrates.org",
Values: []string{"value1"},
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*config.DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: true,
@@ -212,17 +212,17 @@ func TestSetGetRemoveConfigSectionsDrvMongo(t *testing.T) {
Suffix_indexed_fields: &[]string{"*req.index33"},
Nested_fields: utils.BoolPointer(true),
Opts: &config.ResourcesOptsJson{
- UsageID: []*utils.DynamicStringOpt{
+ UsageID: []*config.DynamicStringOpt{
{
Value: "usg2",
},
},
- UsageTTL: []*utils.DynamicStringOpt{
+ UsageTTL: []*config.DynamicStringOpt{
{
Value: "1m0s",
},
},
- Units: []*utils.DynamicFloat64Opt{
+ Units: []*config.DynamicFloat64Opt{
{
Value: 2,
},
@@ -300,13 +300,13 @@ func TestSetGetRemoveConfigSectionsDrvInternal(t *testing.T) {
Actions_conns: &[]string{"*internal"},
Nested_fields: utils.BoolPointer(true),
Opts: &config.ThresholdsOptsJson{
- ProfileIDs: []*utils.DynamicStringSliceOpt{
+ ProfileIDs: []*config.DynamicStringSliceOpt{
{
Tenant: "cgrates.org",
Values: []string{"value1"},
},
},
- ProfileIgnoreFilters: []*utils.DynamicBoolOpt{
+ ProfileIgnoreFilters: []*config.DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: true,
@@ -328,17 +328,17 @@ func TestSetGetRemoveConfigSectionsDrvInternal(t *testing.T) {
Suffix_indexed_fields: &[]string{"*req.index33"},
Nested_fields: utils.BoolPointer(true),
Opts: &config.ResourcesOptsJson{
- UsageID: []*utils.DynamicStringOpt{
+ UsageID: []*config.DynamicStringOpt{
{
Value: "usg2",
},
},
- UsageTTL: []*utils.DynamicStringOpt{
+ UsageTTL: []*config.DynamicStringOpt{
{
Value: "1m0s",
},
},
- Units: []*utils.DynamicFloat64Opt{
+ Units: []*config.DynamicFloat64Opt{
{
Value: 2,
},
diff --git a/engine/thresholds_test.go b/engine/thresholds_test.go
index 79e12c3f0..321109f4b 100644
--- a/engine/thresholds_test.go
+++ b/engine/thresholds_test.go
@@ -3033,7 +3033,7 @@ func TestThresholdsProcessEventIgnoreFilters(t *testing.T) {
dm := NewDataManager(data, cfg.CacheCfg(), nil)
filterS := NewFilterS(cfg, nil, dm)
tS := NewThresholdService(dm, cfg, filterS, nil)
- cfg.ThresholdSCfg().Opts.ProfileIgnoreFilters = []*utils.DynamicBoolOpt{
+ cfg.ThresholdSCfg().Opts.ProfileIgnoreFilters = []*config.DynamicBoolOpt{
{
Value: true,
},
@@ -3099,7 +3099,7 @@ func TestThresholdsProcessEventIgnoreFiltersErr(t *testing.T) {
dm := NewDataManager(data, cfg.CacheCfg(), nil)
filterS := NewFilterS(cfg, nil, dm)
tS := NewThresholdService(dm, cfg, filterS, nil)
- cfg.ThresholdSCfg().Opts.ProfileIgnoreFilters = []*utils.DynamicBoolOpt{
+ cfg.ThresholdSCfg().Opts.ProfileIgnoreFilters = []*config.DynamicBoolOpt{
{
Value: true,
},
@@ -3345,7 +3345,7 @@ func TestThresholdProfileMerge(t *testing.T) {
func TestThresholdSmatchingThresholdsForEventGetOptsErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- cfg.ThresholdSCfg().Opts.ProfileIDs = []*utils.DynamicStringSliceOpt{
+ cfg.ThresholdSCfg().Opts.ProfileIDs = []*config.DynamicStringSliceOpt{
{
FilterIDs: []string{"*string"},
Tenant: "cgrates.org",
@@ -3388,13 +3388,13 @@ func TestThresholdSmatchingThresholdsForEventGetOptsErr(t *testing.T) {
func TestThresholdSmatchingThresholdsForEventWeightErr(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- cfg.ThresholdSCfg().Opts.ProfileIDs = []*utils.DynamicStringSliceOpt{
+ cfg.ThresholdSCfg().Opts.ProfileIDs = []*config.DynamicStringSliceOpt{
{
Tenant: "cgrates.org",
Values: []string{"ACC1"},
},
}
- cfg.ThresholdSCfg().Opts.ProfileIgnoreFilters = []*utils.DynamicBoolOpt{
+ cfg.ThresholdSCfg().Opts.ProfileIgnoreFilters = []*config.DynamicBoolOpt{
{
Tenant: "cgrates.org",
Value: true,
diff --git a/engine/z_attributes_test.go b/engine/z_attributes_test.go
index d36d50eef..91f0321c3 100644
--- a/engine/z_attributes_test.go
+++ b/engine/z_attributes_test.go
@@ -154,7 +154,7 @@ func TestAttributesV1GetAttributeForEventProfileIgnoreOpts(t *testing.T) {
dm := NewDataManager(db, nil, conMng)
filterS := NewFilterS(cfg, conMng, dm)
aA := NewAttributeService(dm, filterS, cfg)
- cfg.AttributeSCfg().Opts.ProfileIgnoreFilters = []*utils.DynamicBoolOpt{
+ cfg.AttributeSCfg().Opts.ProfileIgnoreFilters = []*config.DynamicBoolOpt{
{
Value: true,
},
@@ -5019,7 +5019,7 @@ func TestAttributesProcessEventProfileIgnoreFilters(t *testing.T) {
dm := NewDataManager(data, cfg.CacheCfg(), nil)
filterS := NewFilterS(cfg, nil, dm)
aA := NewAttributeService(dm, filterS, cfg)
- cfg.AttributeSCfg().Opts.ProfileIgnoreFilters = []*utils.DynamicBoolOpt{
+ cfg.AttributeSCfg().Opts.ProfileIgnoreFilters = []*config.DynamicBoolOpt{
{
Value: true,
},
diff --git a/engine/z_resources_test.go b/engine/z_resources_test.go
index d7d5848ac..49c99f223 100644
--- a/engine/z_resources_test.go
+++ b/engine/z_resources_test.go
@@ -6617,7 +6617,7 @@ func TestResourcesV1ResourcesForEventErrRetrieveUsageID(t *testing.T) {
Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
- cfg.ResourceSCfg().Opts.UsageID = []*utils.DynamicStringOpt{
+ cfg.ResourceSCfg().Opts.UsageID = []*config.DynamicStringOpt{
{
FilterIDs: []string{"FLTR_Invalid"},
Tenant: "*any",
@@ -6654,7 +6654,7 @@ func TestResourcesV1ResourcesForEventErrRetrieveUsageTTL(t *testing.T) {
Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
- cfg.ResourceSCfg().Opts.UsageTTL = []*utils.DynamicDurationOpt{
+ cfg.ResourceSCfg().Opts.UsageTTL = []*config.DynamicDurationOpt{
{
FilterIDs: []string{"FLTR_Invalid"},
Tenant: "*any",
@@ -6691,7 +6691,7 @@ func TestResourcesV1AuthorizeResourcesErrRetrieveUsageID(t *testing.T) {
Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
- cfg.ResourceSCfg().Opts.UsageID = []*utils.DynamicStringOpt{
+ cfg.ResourceSCfg().Opts.UsageID = []*config.DynamicStringOpt{
{
FilterIDs: []string{"FLTR_Invalid"},
Tenant: "*any",
@@ -6728,7 +6728,7 @@ func TestResourcesV1AuthorizeResourcesErrRetrieveUnits(t *testing.T) {
Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
- cfg.ResourceSCfg().Opts.Units = []*utils.DynamicFloat64Opt{
+ cfg.ResourceSCfg().Opts.Units = []*config.DynamicFloat64Opt{
{
FilterIDs: []string{"FLTR_Invalid"},
Tenant: "*any",
@@ -6765,7 +6765,7 @@ func TestResourcesV1AuthorizeResourcesErrRetrieveUsageTTL(t *testing.T) {
Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
- cfg.ResourceSCfg().Opts.UsageTTL = []*utils.DynamicDurationOpt{
+ cfg.ResourceSCfg().Opts.UsageTTL = []*config.DynamicDurationOpt{
{
FilterIDs: []string{"FLTR_Invalid"},
Tenant: "*any",
@@ -6802,7 +6802,7 @@ func TestResourcesV1AllocateResourcesErrRetrieveUsageID(t *testing.T) {
Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
- cfg.ResourceSCfg().Opts.UsageID = []*utils.DynamicStringOpt{
+ cfg.ResourceSCfg().Opts.UsageID = []*config.DynamicStringOpt{
{
FilterIDs: []string{"FLTR_Invalid"},
Tenant: "*any",
@@ -6839,7 +6839,7 @@ func TestResourcesV1AllocateResourcesErrRetrieveUsageTTL(t *testing.T) {
Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
- cfg.ResourceSCfg().Opts.UsageTTL = []*utils.DynamicDurationOpt{
+ cfg.ResourceSCfg().Opts.UsageTTL = []*config.DynamicDurationOpt{
{
FilterIDs: []string{"FLTR_Invalid"},
Tenant: "*any",
@@ -6876,7 +6876,7 @@ func TestResourcesV1AllocateResourcesErrRetrieveUnits(t *testing.T) {
Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
- cfg.ResourceSCfg().Opts.Units = []*utils.DynamicFloat64Opt{
+ cfg.ResourceSCfg().Opts.Units = []*config.DynamicFloat64Opt{
{
FilterIDs: []string{"FLTR_Invalid"},
Tenant: "*any",
@@ -6913,7 +6913,7 @@ func TestResourcesV1ReleaseResourcesErrRetrieveUsageID(t *testing.T) {
Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
- cfg.ResourceSCfg().Opts.UsageID = []*utils.DynamicStringOpt{
+ cfg.ResourceSCfg().Opts.UsageID = []*config.DynamicStringOpt{
{
FilterIDs: []string{"FLTR_Invalid"},
Tenant: "*any",
@@ -6950,7 +6950,7 @@ func TestResourcesV1ReleaseResourcesErrRetrieveUsageTTL(t *testing.T) {
Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
- cfg.ResourceSCfg().Opts.UsageTTL = []*utils.DynamicDurationOpt{
+ cfg.ResourceSCfg().Opts.UsageTTL = []*config.DynamicDurationOpt{
{
FilterIDs: []string{"FLTR_Invalid"},
Tenant: "*any",
diff --git a/general_tests/session_graceful_shutdown_it_test.go b/general_tests/session_graceful_shutdown_it_test.go
index 934dbe6b1..c9312bc87 100644
--- a/general_tests/session_graceful_shutdown_it_test.go
+++ b/general_tests/session_graceful_shutdown_it_test.go
@@ -179,7 +179,7 @@ func testSessionSRplcApierSetChargerS(t *testing.T) {
}
func testSessionSRplcApierGetInitateSessions(t *testing.T) {
- smgRplCfg1.SessionSCfg().Opts.Initiate = []*utils.DynamicBoolOpt{
+ smgRplCfg1.SessionSCfg().Opts.Initiate = []*config.DynamicBoolOpt{
{
Value: true,
Tenant: "cgrates.org",
diff --git a/rates/rates_test.go b/rates/rates_test.go
index 104b13e03..cec41842b 100644
--- a/rates/rates_test.go
+++ b/rates/rates_test.go
@@ -1181,7 +1181,7 @@ func TestCDRProcessRatesCostForEvent(t *testing.T) {
func TestRateProfileCostForEventProfileIgnoreFilters(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- cfg.RateSCfg().Opts.ProfileIgnoreFilters = []*utils.DynamicBoolOpt{
+ cfg.RateSCfg().Opts.ProfileIgnoreFilters = []*config.DynamicBoolOpt{
{
Value: true,
},