Adding *accountsForceUsage variables for GetBoolOpts

This commit is contained in:
armirveliaj
2025-01-28 09:13:24 -05:00
committed by Dan Christian Bogos
parent cae468454c
commit a05834af81
6 changed files with 45 additions and 14 deletions

View File

@@ -175,6 +175,7 @@ func newCGRConfig(config []byte) (cfg *CGRConfig, err error) {
TTLMaxDelay: []*DynamicDurationOpt{{value: SessionsTTLMaxDelayDftOpt}},
TTLUsage: []*DynamicDurationPointerOpt{},
SessionsOriginID: []*DynamicStringOpt{},
AccountsForceUsage: []*DynamicBoolOpt{},
},
},
fsAgentCfg: new(FsAgentCfg),

View File

@@ -901,6 +901,13 @@ const CGRATES_CFG_JSON = `
// "FilterIDs": [],
// "Value": ""
// }
// ],
// "*accountsForceUsage": [
// {
// "Tenant": "*any",
// "FilterIDs": [],
// "Value": ""
// }
// ]
}
},

File diff suppressed because one or more lines are too long

View File

@@ -91,6 +91,7 @@ type SessionsOpts struct {
TTLMaxDelay []*DynamicDurationOpt
TTLUsage []*DynamicDurationPointerOpt
SessionsOriginID []*DynamicStringOpt
AccountsForceUsage []*DynamicBoolOpt
}
// SessionSCfg is the config section for SessionS
@@ -310,7 +311,11 @@ func (sesOpts *SessionsOpts) loadFromJSONCfg(jsnCfg *SessionsOptsJson) (err erro
}
sesOpts.SessionsOriginID = append(sessionsOriginID, sesOpts.SessionsOriginID...)
}
if jsnCfg.AccountsForceUsage != nil {
var accountsForceUsage []*DynamicBoolOpt
accountsForceUsage, err = IfaceToBoolDynamicOpts(jsnCfg.AccountsForceUsage)
sesOpts.AccountsForceUsage = append(accountsForceUsage, sesOpts.AccountsForceUsage...)
}
return
}
@@ -461,6 +466,7 @@ func (scfg SessionSCfg) AsMapInterface(string) any {
utils.MetaTTLMaxDelayCfg: scfg.Opts.TTLMaxDelay,
utils.MetaTTLUsageCfg: scfg.Opts.TTLUsage,
utils.MetaSessionsOriginID: scfg.Opts.SessionsOriginID,
utils.MetaAccountsForceUsage: scfg.Opts.AccountsForceUsage,
}
mp := map[string]any{
utils.EnabledCfg: scfg.Enabled,
@@ -649,6 +655,10 @@ func (sesOpts *SessionsOpts) Clone() (cln *SessionsOpts) {
if sesOpts.SessionsOriginID != nil {
sID = CloneDynamicStringOpt(sesOpts.SessionsOriginID)
}
var accForceUsage []*DynamicBoolOpt
if sesOpts.AccountsForceUsage != nil {
accForceUsage = CloneDynamicBoolOpt(sesOpts.AccountsForceUsage)
}
return &SessionsOpts{
Accounts: acntS,
Attributes: attrS,
@@ -682,6 +692,7 @@ func (sesOpts *SessionsOpts) Clone() (cln *SessionsOpts) {
TTLMaxDelay: maxDelay,
TTLUsage: usg,
SessionsOriginID: sID,
AccountsForceUsage: accForceUsage,
}
}
@@ -869,6 +880,7 @@ type SessionsOptsJson struct {
TTLMaxDelay []*DynamicInterfaceOpt `json:"*ttlMaxDelay"`
TTLUsage []*DynamicInterfaceOpt `json:"*ttlUsage"`
SessionsOriginID []*DynamicInterfaceOpt `json:"*sessionsOriginID"`
AccountsForceUsage []*DynamicInterfaceOpt `json:"*accountsForceUsage"`
}
// SessionSJsonCfg config section
@@ -999,6 +1011,9 @@ func diffSessionsOptsJsonCfg(d *SessionsOptsJson, v1, v2 *SessionsOpts) *Session
if !DynamicStringOptEqual(v1.SessionsOriginID, v2.SessionsOriginID) {
d.SessionsOriginID = DynamicStringToInterfaceOpts(v2.SessionsOriginID)
}
if !DynamicBoolOptEqual(v1.AccountsForceUsage, v2.AccountsForceUsage) {
d.AccountsForceUsage = BoolToIfaceDynamicOpts(v2.AccountsForceUsage)
}
return d
}

View File

@@ -168,11 +168,12 @@ func TestSessionSCfgloadFromJsonCfgCase1(t *testing.T) {
value: SessionsDebitIntervalDftOpt,
},
},
TTLLastUsage: []*DynamicDurationPointerOpt{},
TTLLastUsed: []*DynamicDurationPointerOpt{},
TTLMaxDelay: []*DynamicDurationOpt{{value: SessionsTTLMaxDelayDftOpt}},
TTLUsage: []*DynamicDurationPointerOpt{},
SessionsOriginID: []*DynamicStringOpt{},
TTLLastUsage: []*DynamicDurationPointerOpt{},
TTLLastUsed: []*DynamicDurationPointerOpt{},
TTLMaxDelay: []*DynamicDurationOpt{{value: SessionsTTLMaxDelayDftOpt}},
TTLUsage: []*DynamicDurationPointerOpt{},
SessionsOriginID: []*DynamicStringOpt{},
AccountsForceUsage: []*DynamicBoolOpt{},
},
}
jsonCfg := NewDefaultCGRConfig()
@@ -395,6 +396,7 @@ func TestSessionSCfgloadFromJsonCfgCase10(t *testing.T) {
DebitInterval: []*DynamicDurationOpt{{value: SessionsDebitIntervalDftOpt}},
ForceUsage: []*DynamicBoolOpt{},
SessionsOriginID: []*DynamicStringOpt{},
AccountsForceUsage: []*DynamicBoolOpt{},
TTLLastUsage: []*DynamicDurationPointerOpt{
{
value: utils.DurationPointer(1),
@@ -557,6 +559,7 @@ func TestSessionSCfgAsMapInterfaceCase1(t *testing.T) {
utils.MetaTTLUsageCfg: []*DynamicDurationPointerOpt{},
utils.MetaForceUsageCfg: []*DynamicBoolOpt{},
utils.MetaSessionsOriginID: []*DynamicStringOpt{},
utils.MetaAccountsForceUsage: []*DynamicBoolOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -683,12 +686,13 @@ func TestSessionSCfgAsMapInterfaceCase2(t *testing.T) {
value: SessionsDebitIntervalDftOpt,
},
},
utils.MetaTTLLastUsageCfg: []*DynamicDurationPointerOpt{},
utils.MetaTTLLastUsedCfg: []*DynamicDurationPointerOpt{},
utils.MetaTTLMaxDelayCfg: []*DynamicDurationOpt{{value: SessionsTTLMaxDelayDftOpt}},
utils.MetaTTLUsageCfg: []*DynamicDurationPointerOpt{},
utils.MetaForceUsageCfg: []*DynamicBoolOpt{},
utils.MetaSessionsOriginID: []*DynamicStringOpt{},
utils.MetaTTLLastUsageCfg: []*DynamicDurationPointerOpt{},
utils.MetaTTLLastUsedCfg: []*DynamicDurationPointerOpt{},
utils.MetaTTLMaxDelayCfg: []*DynamicDurationOpt{{value: SessionsTTLMaxDelayDftOpt}},
utils.MetaTTLUsageCfg: []*DynamicDurationPointerOpt{},
utils.MetaForceUsageCfg: []*DynamicBoolOpt{},
utils.MetaSessionsOriginID: []*DynamicStringOpt{},
utils.MetaAccountsForceUsage: []*DynamicBoolOpt{},
},
}
cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr)

View File

@@ -2213,6 +2213,7 @@ const (
MetaTTLMaxDelayCfg = "*ttlMaxDelay"
MetaTTLUsageCfg = "*ttlUsage"
MetaSessionsOriginID = "*sessionsOriginID"
MetaAccountsForceUsage = "*accountsForceUsage"
// AnalyzerSCfg
CleanupIntervalCfg = "cleanup_interval"