Adding *sessionSOriginID StringOpts variables

This commit is contained in:
armirveliaj
2025-01-21 11:04:59 -05:00
committed by Dan Christian Bogos
parent 652d1e68cf
commit cae468454c
6 changed files with 47 additions and 11 deletions

View File

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

View File

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

File diff suppressed because one or more lines are too long

View File

@@ -90,6 +90,7 @@ type SessionsOpts struct {
DebitInterval []*DynamicDurationOpt
TTLMaxDelay []*DynamicDurationOpt
TTLUsage []*DynamicDurationPointerOpt
SessionsOriginID []*DynamicStringOpt
}
// SessionSCfg is the config section for SessionS
@@ -301,6 +302,15 @@ func (sesOpts *SessionsOpts) loadFromJSONCfg(jsnCfg *SessionsOptsJson) (err erro
}
sesOpts.TTLUsage = append(usage, sesOpts.TTLUsage...)
}
if jsnCfg.SessionsOriginID != nil {
var sessionsOriginID []*DynamicStringOpt
sessionsOriginID, err = InterfaceToDynamicStringOpts(jsnCfg.SessionsOriginID)
if err != nil {
return
}
sesOpts.SessionsOriginID = append(sessionsOriginID, sesOpts.SessionsOriginID...)
}
return
}
@@ -450,6 +460,7 @@ func (scfg SessionSCfg) AsMapInterface(string) any {
utils.MetaTTLLastUsedCfg: scfg.Opts.TTLLastUsed,
utils.MetaTTLMaxDelayCfg: scfg.Opts.TTLMaxDelay,
utils.MetaTTLUsageCfg: scfg.Opts.TTLUsage,
utils.MetaSessionsOriginID: scfg.Opts.SessionsOriginID,
}
mp := map[string]any{
utils.EnabledCfg: scfg.Enabled,
@@ -634,6 +645,10 @@ func (sesOpts *SessionsOpts) Clone() (cln *SessionsOpts) {
if sesOpts.TTLUsage != nil {
usg = CloneDynamicDurationPointerOpt(sesOpts.TTLUsage)
}
var sID []*DynamicStringOpt
if sesOpts.SessionsOriginID != nil {
sID = CloneDynamicStringOpt(sesOpts.SessionsOriginID)
}
return &SessionsOpts{
Accounts: acntS,
Attributes: attrS,
@@ -666,6 +681,7 @@ func (sesOpts *SessionsOpts) Clone() (cln *SessionsOpts) {
TTLLastUsed: lastUsed,
TTLMaxDelay: maxDelay,
TTLUsage: usg,
SessionsOriginID: sID,
}
}
@@ -852,6 +868,7 @@ type SessionsOptsJson struct {
TTLLastUsed []*DynamicInterfaceOpt `json:"*ttlLastUsed"`
TTLMaxDelay []*DynamicInterfaceOpt `json:"*ttlMaxDelay"`
TTLUsage []*DynamicInterfaceOpt `json:"*ttlUsage"`
SessionsOriginID []*DynamicInterfaceOpt `json:"*sessionsOriginID"`
}
// SessionSJsonCfg config section
@@ -979,6 +996,9 @@ func diffSessionsOptsJsonCfg(d *SessionsOptsJson, v1, v2 *SessionsOpts) *Session
if !DynamicDurationPointerOptEqual(v1.TTLUsage, v2.TTLUsage) {
d.TTLUsage = DurationPointerToIfaceDynamicOpts(v2.TTLUsage)
}
if !DynamicStringOptEqual(v1.SessionsOriginID, v2.SessionsOriginID) {
d.SessionsOriginID = DynamicStringToInterfaceOpts(v2.SessionsOriginID)
}
return d
}

View File

@@ -168,10 +168,11 @@ func TestSessionSCfgloadFromJsonCfgCase1(t *testing.T) {
value: SessionsDebitIntervalDftOpt,
},
},
TTLLastUsage: []*DynamicDurationPointerOpt{},
TTLLastUsed: []*DynamicDurationPointerOpt{},
TTLMaxDelay: []*DynamicDurationOpt{{value: SessionsTTLMaxDelayDftOpt}},
TTLUsage: []*DynamicDurationPointerOpt{},
TTLLastUsage: []*DynamicDurationPointerOpt{},
TTLLastUsed: []*DynamicDurationPointerOpt{},
TTLMaxDelay: []*DynamicDurationOpt{{value: SessionsTTLMaxDelayDftOpt}},
TTLUsage: []*DynamicDurationPointerOpt{},
SessionsOriginID: []*DynamicStringOpt{},
},
}
jsonCfg := NewDefaultCGRConfig()
@@ -393,6 +394,7 @@ func TestSessionSCfgloadFromJsonCfgCase10(t *testing.T) {
Chargeable: []*DynamicBoolOpt{{value: SessionsChargeableDftOpt}},
DebitInterval: []*DynamicDurationOpt{{value: SessionsDebitIntervalDftOpt}},
ForceUsage: []*DynamicBoolOpt{},
SessionsOriginID: []*DynamicStringOpt{},
TTLLastUsage: []*DynamicDurationPointerOpt{
{
value: utils.DurationPointer(1),
@@ -554,6 +556,7 @@ func TestSessionSCfgAsMapInterfaceCase1(t *testing.T) {
utils.MetaTTLMaxDelayCfg: []*DynamicDurationOpt{{value: SessionsTTLMaxDelayDftOpt}},
utils.MetaTTLUsageCfg: []*DynamicDurationPointerOpt{},
utils.MetaForceUsageCfg: []*DynamicBoolOpt{},
utils.MetaSessionsOriginID: []*DynamicStringOpt{},
},
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
@@ -680,11 +683,12 @@ 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.MetaTTLLastUsageCfg: []*DynamicDurationPointerOpt{},
utils.MetaTTLLastUsedCfg: []*DynamicDurationPointerOpt{},
utils.MetaTTLMaxDelayCfg: []*DynamicDurationOpt{{value: SessionsTTLMaxDelayDftOpt}},
utils.MetaTTLUsageCfg: []*DynamicDurationPointerOpt{},
utils.MetaForceUsageCfg: []*DynamicBoolOpt{},
utils.MetaSessionsOriginID: []*DynamicStringOpt{},
},
}
cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr)

View File

@@ -2212,6 +2212,7 @@ const (
MetaTTLLastUsedCfg = "*ttlLastUsed"
MetaTTLMaxDelayCfg = "*ttlMaxDelay"
MetaTTLUsageCfg = "*ttlUsage"
MetaSessionsOriginID = "*sessionsOriginID"
// AnalyzerSCfg
CleanupIntervalCfg = "cleanup_interval"