diff --git a/actions/accounts.go b/actions/accounts.go
index f80c33033..d49a74386 100644
--- a/actions/accounts.go
+++ b/actions/accounts.go
@@ -59,7 +59,7 @@ func (aL *actSetBalance) execute(ctx *context.Context, data utils.MapStorage, tr
}
for i, actD := range aL.cfg().Diktats {
var rsr config.RSRParsers
- if rsr, err = actD.RSRValues(aL.config.GeneralCfg().RSRSep); err != nil {
+ if rsr, err = actD.RSRValues(); err != nil {
return
}
var val string
diff --git a/agents/agentreq.go b/agents/agentreq.go
index 25d1f1007..831d88058 100644
--- a/agents/agentreq.go
+++ b/agents/agentreq.go
@@ -360,7 +360,7 @@ func (ar *AgentRequest) ParseField(
case utils.MetaGroup:
tmpType = utils.MetaVariable
}
- out, err = engine.ParseAttribute(ar, tmpType, cfgFld.Path, cfgFld.Value, config.CgrConfig().GeneralCfg().RoundingDecimals, utils.FirstNonEmpty(cfgFld.Timezone, config.CgrConfig().GeneralCfg().DefaultTimezone), cfgFld.Layout, config.CgrConfig().GeneralCfg().RSRSep)
+ out, err = engine.ParseAttribute(ar, tmpType, cfgFld.Path, cfgFld.Value, config.CgrConfig().GeneralCfg().RoundingDecimals, utils.FirstNonEmpty(cfgFld.Timezone, config.CgrConfig().GeneralCfg().DefaultTimezone), cfgFld.Layout)
if err != nil &&
!strings.HasPrefix(err.Error(), "Could not find") {
diff --git a/cmd/cgr-loader/cgr-loader.go b/cmd/cgr-loader/cgr-loader.go
index 08845bc27..c1ac42d24 100755
--- a/cmd/cgr-loader/cgr-loader.go
+++ b/cmd/cgr-loader/cgr-loader.go
@@ -345,7 +345,7 @@ func main() {
return
}
if *printConfig {
- cfgJSON := utils.ToIJSON(ldrCfg.AsMapInterface(ldrCfg.GeneralCfg().RSRSep))
+ cfgJSON := utils.ToIJSON(ldrCfg.AsMapInterface())
log.Printf("Configuration loaded from %q:\n%s", *cfgPath, cfgJSON)
}
if *remove {
diff --git a/cmd/cgr-migrator/cgr-migrator.go b/cmd/cgr-migrator/cgr-migrator.go
index 5cb5921cc..b4fc779a2 100755
--- a/cmd/cgr-migrator/cgr-migrator.go
+++ b/cmd/cgr-migrator/cgr-migrator.go
@@ -296,7 +296,7 @@ func main() {
log.Fatal(err)
}
if *printConfig {
- cfgJSON := utils.ToIJSON(mgrCfg.AsMapInterface(mgrCfg.GeneralCfg().RSRSep))
+ cfgJSON := utils.ToIJSON(mgrCfg.AsMapInterface())
log.Printf("Configuration loaded from %q:\n%s", *cfgPath, cfgJSON)
}
diff --git a/config/accountscfg.go b/config/accountscfg.go
index 296070dd3..69fc3d522 100644
--- a/config/accountscfg.go
+++ b/config/accountscfg.go
@@ -141,7 +141,7 @@ func (acS *AccountSCfg) loadFromJSONCfg(jsnCfg *AccountSJsonCfg) (err error) {
}
// AsMapInterface returns the config as a map[string]any
-func (acS AccountSCfg) AsMapInterface(string) any {
+func (acS AccountSCfg) AsMapInterface() any {
opts := map[string]any{
utils.MetaProfileIDs: acS.Opts.ProfileIDs,
utils.MetaUsage: acS.Opts.Usage,
diff --git a/config/accountscfg_test.go b/config/accountscfg_test.go
index 46c3755b9..ece7a4e31 100644
--- a/config/accountscfg_test.go
+++ b/config/accountscfg_test.go
@@ -176,7 +176,7 @@ func TestAccountSCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.accountSCfg.AsMapInterface(""); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cgrCfg.accountSCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected: %+v\n Received: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
diff --git a/config/actionscfg.go b/config/actionscfg.go
index 7f78b0dfd..9df70d663 100644
--- a/config/actionscfg.go
+++ b/config/actionscfg.go
@@ -144,7 +144,7 @@ func (acS *ActionSCfg) loadFromJSONCfg(jsnCfg *ActionSJsonCfg) (err error) {
}
// AsMapInterface returns the config as a map[string]any
-func (acS ActionSCfg) AsMapInterface(string) any {
+func (acS ActionSCfg) AsMapInterface() any {
opts := map[string]any{
utils.MetaProfileIDs: acS.Opts.ProfileIDs,
utils.MetaProfileIgnoreFilters: acS.Opts.ProfileIgnoreFilters,
diff --git a/config/actionscfg_test.go b/config/actionscfg_test.go
index 3b51161a4..971f86663 100644
--- a/config/actionscfg_test.go
+++ b/config/actionscfg_test.go
@@ -154,7 +154,7 @@ func TestActionSCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.actionSCfg.AsMapInterface(""); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cgrCfg.actionSCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected: %+v\n Received: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
diff --git a/config/adminscfg.go b/config/adminscfg.go
index 8cbf03abb..7a512e597 100644
--- a/config/adminscfg.go
+++ b/config/adminscfg.go
@@ -66,7 +66,7 @@ func (aCfg *AdminSCfg) loadFromJSONCfg(jsnCfg *AdminSJsonCfg) (err error) {
}
// AsMapInterface returns the config as a map[string]any
-func (aCfg AdminSCfg) AsMapInterface(string) any {
+func (aCfg AdminSCfg) AsMapInterface() any {
mp := map[string]any{
utils.EnabledCfg: aCfg.Enabled,
}
diff --git a/config/adminscfg_test.go b/config/adminscfg_test.go
index df5ec8516..d551fbcb5 100644
--- a/config/adminscfg_test.go
+++ b/config/adminscfg_test.go
@@ -68,7 +68,7 @@ func TestApierCfgAsMapInterface1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if newMap := cgrCfg.admS.AsMapInterface(""); !reflect.DeepEqual(newMap, eMap) {
+ } else if newMap := cgrCfg.admS.AsMapInterface(); !reflect.DeepEqual(newMap, eMap) {
t.Errorf("Expected %+v, received %+v", eMap, newMap)
}
}
@@ -92,7 +92,7 @@ func TestApierCfgAsMapInterface2(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(myJSONStr); err != nil {
t.Error(err)
- } else if newMap := cgrCfg.admS.AsMapInterface(""); !reflect.DeepEqual(expectedMap, newMap) {
+ } else if newMap := cgrCfg.admS.AsMapInterface(); !reflect.DeepEqual(expectedMap, newMap) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expectedMap), utils.ToJSON(newMap))
}
}
diff --git a/config/analyzerscfg.go b/config/analyzerscfg.go
index 65d1222af..cf553996c 100644
--- a/config/analyzerscfg.go
+++ b/config/analyzerscfg.go
@@ -92,7 +92,7 @@ func (alS *AnalyzerSCfg) loadFromJSONCfg(jsnCfg *AnalyzerSJsonCfg) (err error) {
}
// AsMapInterface returns the config as a map[string]any
-func (alS AnalyzerSCfg) AsMapInterface(string) any {
+func (alS AnalyzerSCfg) AsMapInterface() any {
opts := map[string]any{
utils.MetaExporterIDs: alS.Opts.ExporterIDs,
}
diff --git a/config/analyzerscfg_test.go b/config/analyzerscfg_test.go
index 26af75ff5..344310ff1 100644
--- a/config/analyzerscfg_test.go
+++ b/config/analyzerscfg_test.go
@@ -70,7 +70,7 @@ func TestAnalyzerSCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.analyzerSCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.analyzerSCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected: %+v , received: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -96,7 +96,7 @@ func TestAnalyzerSCfgAsMapInterface1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.analyzerSCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.analyzerSCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected: %+v , received: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
diff --git a/config/apibancfg.go b/config/apibancfg.go
index e5df6d6db..3415c05c2 100644
--- a/config/apibancfg.go
+++ b/config/apibancfg.go
@@ -54,7 +54,7 @@ func (ban *APIBanCfg) loadFromJSONCfg(jsnCfg *APIBanJsonCfg) (err error) {
}
// AsMapInterface returns the config as a map[string]any
-func (ban APIBanCfg) AsMapInterface(string) any {
+func (ban APIBanCfg) AsMapInterface() any {
return map[string]any{
utils.EnabledCfg: ban.Enabled,
utils.KeysCfg: ban.Keys,
diff --git a/config/apibancfg_test.go b/config/apibancfg_test.go
index 8799ba706..45f0fe5f4 100644
--- a/config/apibancfg_test.go
+++ b/config/apibancfg_test.go
@@ -74,7 +74,7 @@ func TestAPIBanCfgAsMapInterface(t *testing.T) {
t.Error(err)
} else if err = alS.Load(context.Background(), jsnCfg, nil); err != nil {
t.Error(err)
- } else if rcv := alS.AsMapInterface(""); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := alS.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected: %+v\nReceived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
diff --git a/config/apis.go b/config/apis.go
index b1fcdbcc3..b080f6173 100644
--- a/config/apis.go
+++ b/config/apis.go
@@ -31,7 +31,7 @@ import (
// getSectionAsMap returns a section from config as a map[string]interface
func (cfg *CGRConfig) getSectionAsMap(section string) (mp any, err error) {
if sec, has := cfg.sections.Get(section); has {
- mp = sec.AsMapInterface(cfg.GeneralCfg().RSRSep)
+ mp = sec.AsMapInterface()
return
}
err = errors.New("Invalid section ")
@@ -114,7 +114,7 @@ func (cfg *CGRConfig) V1GetConfig(ctx *context.Context, args *SectionWithAPIOpts
return
}
if sections.Size() == len(cfg.sections) {
- mp = cfg.AsMapInterface(cfg.GeneralCfg().RSRSep)
+ mp = cfg.AsMapInterface()
} else {
for section := range sections {
var val any
@@ -413,13 +413,13 @@ func storeDiffSection(ctx *context.Context, section string, db ConfigDB, v1, v2
if err = db.GetSection(ctx, section, jsn); err != nil {
return
}
- return db.SetSection(ctx, section, diffERsJsonCfg(jsn, v1.ERsCfg(), v2.ERsCfg(), v2.GeneralCfg().RSRSep))
+ return db.SetSection(ctx, section, diffERsJsonCfg(jsn, v1.ERsCfg(), v2.ERsCfg()))
case EEsJSON:
jsn := new(EEsJsonCfg)
if err = db.GetSection(ctx, section, jsn); err != nil {
return
}
- return db.SetSection(ctx, section, diffEEsJsonCfg(jsn, v1.EEsCfg(), v2.EEsCfg(), v2.GeneralCfg().RSRSep))
+ return db.SetSection(ctx, section, diffEEsJsonCfg(jsn, v1.EEsCfg(), v2.EEsCfg()))
case SessionSJSON:
jsn := new(SessionSJsonCfg)
if err = db.GetSection(ctx, section, jsn); err != nil {
@@ -449,31 +449,31 @@ func storeDiffSection(ctx *context.Context, section string, db ConfigDB, v1, v2
if err = db.GetSection(ctx, section, jsn); err != nil {
return
}
- return db.SetSection(ctx, section, diffDiameterAgentJsonCfg(jsn, v1.DiameterAgentCfg(), v2.DiameterAgentCfg(), v2.GeneralCfg().RSRSep))
+ return db.SetSection(ctx, section, diffDiameterAgentJsonCfg(jsn, v1.DiameterAgentCfg(), v2.DiameterAgentCfg()))
case RadiusAgentJSON:
jsn := new(RadiusAgentJsonCfg)
if err = db.GetSection(ctx, section, jsn); err != nil {
return
}
- return db.SetSection(ctx, section, diffRadiusAgentJsonCfg(jsn, v1.RadiusAgentCfg(), v2.RadiusAgentCfg(), v2.GeneralCfg().RSRSep))
+ return db.SetSection(ctx, section, diffRadiusAgentJsonCfg(jsn, v1.RadiusAgentCfg(), v2.RadiusAgentCfg()))
case HTTPAgentJSON:
jsn := new([]*HttpAgentJsonCfg)
if err = db.GetSection(ctx, section, jsn); err != nil {
return
}
- return db.SetSection(ctx, section, diffHttpAgentsJsonCfg(jsn, v1.HTTPAgentCfg(), v2.HTTPAgentCfg(), v2.GeneralCfg().RSRSep))
+ return db.SetSection(ctx, section, diffHttpAgentsJsonCfg(jsn, v1.HTTPAgentCfg(), v2.HTTPAgentCfg()))
case JanusAgentJSON:
jsn := new(JanusAgentJsonCfg)
if err = db.GetSection(ctx, section, jsn); err != nil {
return
}
- return db.SetSection(ctx, section, diffJanusAgentSJsonCfg(jsn, v1.JanusAgentCfg(), v2.JanusAgentCfg(), v2.GeneralCfg().RSRSep))
+ return db.SetSection(ctx, section, diffJanusAgentSJsonCfg(jsn, v1.JanusAgentCfg(), v2.JanusAgentCfg()))
case DNSAgentJSON:
jsn := new(DNSAgentJsonCfg)
if err = db.GetSection(ctx, section, jsn); err != nil {
return
}
- return db.SetSection(ctx, section, diffDNSAgentJsonCfg(jsn, v1.DNSAgentCfg(), v2.DNSAgentCfg(), v2.GeneralCfg().RSRSep))
+ return db.SetSection(ctx, section, diffDNSAgentJsonCfg(jsn, v1.DNSAgentCfg(), v2.DNSAgentCfg()))
case AttributeSJSON:
jsn := new(AttributeSJsonCfg)
if err = db.GetSection(ctx, section, jsn); err != nil {
@@ -527,13 +527,13 @@ func storeDiffSection(ctx *context.Context, section string, db ConfigDB, v1, v2
if err = db.GetSection(ctx, section, &jsn); err != nil {
return
}
- return db.SetSection(ctx, section, diffLoadersJsonCfg(jsn, v1.LoaderCfg(), v2.LoaderCfg(), v2.GeneralCfg().RSRSep))
+ return db.SetSection(ctx, section, diffLoadersJsonCfg(jsn, v1.LoaderCfg(), v2.LoaderCfg()))
case SureTaxJSON:
jsn := new(SureTaxJsonCfg)
if err = db.GetSection(ctx, section, jsn); err != nil {
return
}
- return db.SetSection(ctx, section, diffSureTaxJsonCfg(jsn, v1.SureTaxCfg(), v2.SureTaxCfg(), v2.GeneralCfg().RSRSep))
+ return db.SetSection(ctx, section, diffSureTaxJsonCfg(jsn, v1.SureTaxCfg(), v2.SureTaxCfg()))
case RegistrarCJSON:
jsn := new(RegistrarCJsonCfgs)
if err = db.GetSection(ctx, section, jsn); err != nil {
@@ -581,13 +581,13 @@ func storeDiffSection(ctx *context.Context, section string, db ConfigDB, v1, v2
if err = db.GetSection(ctx, section, jsn); err != nil {
return
}
- return db.SetSection(ctx, section, diffSIPAgentJsonCfg(jsn, v1.SIPAgentCfg(), v2.SIPAgentCfg(), v2.GeneralCfg().RSRSep))
+ return db.SetSection(ctx, section, diffSIPAgentJsonCfg(jsn, v1.SIPAgentCfg(), v2.SIPAgentCfg()))
case TemplatesJSON:
jsn := make(FcTemplatesJsonCfg)
if err = db.GetSection(ctx, section, &jsn); err != nil {
return
}
- return db.SetSection(ctx, section, diffFcTemplatesJsonCfg(jsn, v1.TemplatesCfg(), v2.TemplatesCfg(), v2.GeneralCfg().RSRSep))
+ return db.SetSection(ctx, section, diffFcTemplatesJsonCfg(jsn, v1.TemplatesCfg(), v2.TemplatesCfg()))
case ConfigSJSON:
jsn := new(ConfigSCfgJson)
if err = db.GetSection(ctx, section, jsn); err != nil {
diff --git a/config/apis_test.go b/config/apis_test.go
index 618b9f72a..9d70e53bd 100644
--- a/config/apis_test.go
+++ b/config/apis_test.go
@@ -231,7 +231,6 @@ func TestConfigLoadFromDB(t *testing.T) {
DigestSeparator: ",",
DigestEqual: ":",
MaxParallelConns: 100,
- RSRSep: ";",
Opts: &GeneralOpts{
ExporterIDs: []*DynamicStringSliceOpt{},
},
@@ -1028,7 +1027,6 @@ func TestV1GetConfig(t *testing.T) {
Reply_timeout: utils.StringPointer("2s"),
Locking_timeout: utils.StringPointer("2s"),
Digest_separator: utils.StringPointer(","),
- Rsr_separator: utils.StringPointer(";"),
Digest_equal: utils.StringPointer(":"),
Max_parallel_conns: utils.IntPointer(100),
}
@@ -1053,7 +1051,6 @@ func TestV1GetConfig(t *testing.T) {
Reply_timeout: utils.StringPointer("2s"),
Locking_timeout: utils.StringPointer("2s"),
Digest_separator: utils.StringPointer(","),
- Rsr_separator: utils.StringPointer(";"),
Digest_equal: utils.StringPointer(":"),
Max_parallel_conns: utils.IntPointer(100),
}
diff --git a/config/asteriskagntcfg.go b/config/asteriskagntcfg.go
index d12aafa71..8dea6ac30 100644
--- a/config/asteriskagntcfg.go
+++ b/config/asteriskagntcfg.go
@@ -135,7 +135,7 @@ func (aCfg *AsteriskAgentCfg) loadFromJSONCfg(jsnCfg *AsteriskAgentJsonCfg) (err
}
// AsMapInterface returns the config as a map[string]any
-func (aCfg AsteriskAgentCfg) AsMapInterface(string) any {
+func (aCfg AsteriskAgentCfg) AsMapInterface() any {
mp := map[string]any{
utils.EnabledCfg: aCfg.Enabled,
utils.CreateCDRCfg: aCfg.CreateCDR,
diff --git a/config/attributescfg.go b/config/attributescfg.go
index c80757952..c31c5d427 100644
--- a/config/attributescfg.go
+++ b/config/attributescfg.go
@@ -141,7 +141,7 @@ func (alS *AttributeSCfg) loadFromJSONCfg(jsnCfg *AttributeSJsonCfg) (err error)
}
// AsMapInterface returns the config as a map[string]any
-func (alS AttributeSCfg) AsMapInterface(string) any {
+func (alS AttributeSCfg) AsMapInterface() any {
opts := map[string]any{
utils.MetaProfileIDs: alS.Opts.ProfileIDs,
utils.MetaProcessRunsCfg: alS.Opts.ProcessRuns,
diff --git a/config/attributescfg_test.go b/config/attributescfg_test.go
index 0015ceed3..ff36327a7 100644
--- a/config/attributescfg_test.go
+++ b/config/attributescfg_test.go
@@ -172,7 +172,7 @@ func TestAttributeSCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.attributeSCfg.AsMapInterface(""); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cgrCfg.attributeSCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected: %+v\n Received: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -220,7 +220,7 @@ func TestAttributeSCfgAsMapInterface2(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if newMap := cgrCfg.attributeSCfg.AsMapInterface(""); !reflect.DeepEqual(expectedMap, newMap) {
+ } else if newMap := cgrCfg.attributeSCfg.AsMapInterface(); !reflect.DeepEqual(expectedMap, newMap) {
t.Errorf("Expected %+v \n, receieved %+v", utils.ToJSON(expectedMap), utils.ToJSON(newMap))
}
}
@@ -251,7 +251,7 @@ func TestAttributeSCfgAsMapInterface3(t *testing.T) {
}
if conv, err := NewCGRConfigFromJSONStringWithDefaults(myJSONStr); err != nil {
t.Error(err)
- } else if newMap := conv.attributeSCfg.AsMapInterface(""); !reflect.DeepEqual(expectedMap, newMap) {
+ } else if newMap := conv.attributeSCfg.AsMapInterface(); !reflect.DeepEqual(expectedMap, newMap) {
t.Errorf("Expected %+v, receieved %+v", expectedMap, newMap)
}
}
diff --git a/config/cachecfg.go b/config/cachecfg.go
index a11bf9411..701feca35 100644
--- a/config/cachecfg.go
+++ b/config/cachecfg.go
@@ -149,7 +149,7 @@ func (cCfg CacheCfg) AsTransCacheConfig() (tcCfg map[string]*ltcache.CacheConfig
}
// AsMapInterface returns the config as a map[string]any
-func (cCfg CacheCfg) AsMapInterface(string) any {
+func (cCfg CacheCfg) AsMapInterface() any {
partitions := make(map[string]any, len(cCfg.Partitions))
for key, value := range cCfg.Partitions {
partitions[key] = value.AsMapInterface()
diff --git a/config/cdrscfg.go b/config/cdrscfg.go
index 55a2b726b..c005917f1 100644
--- a/config/cdrscfg.go
+++ b/config/cdrscfg.go
@@ -214,7 +214,7 @@ func (cdrscfg *CdrsCfg) loadFromJSONCfg(jsnCdrsCfg *CdrsJsonCfg) (err error) {
}
// AsMapInterface returns the config as a map[string]any
-func (cdrscfg CdrsCfg) AsMapInterface(string) any {
+func (cdrscfg CdrsCfg) AsMapInterface() any {
opts := map[string]any{
utils.MetaAccounts: cdrscfg.Opts.Accounts,
utils.MetaAttributes: cdrscfg.Opts.Attributes,
diff --git a/config/cdrscfg_test.go b/config/cdrscfg_test.go
index 8273f00bb..2286ef569 100644
--- a/config/cdrscfg_test.go
+++ b/config/cdrscfg_test.go
@@ -217,7 +217,7 @@ func TestCdrsCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.cdrsCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.cdrsCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, recieved %+v ", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -259,7 +259,7 @@ func TestCdrsCfgAsMapInterface2(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.cdrsCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.cdrsCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, recieved %+v", eMap, rcv)
}
}
diff --git a/config/chargerscfg.go b/config/chargerscfg.go
index 87cf0f9c0..7a2e249b0 100644
--- a/config/chargerscfg.go
+++ b/config/chargerscfg.go
@@ -82,7 +82,7 @@ func (cS *ChargerSCfg) loadFromJSONCfg(jsnCfg *ChargerSJsonCfg) (err error) {
}
// AsMapInterface returns the config as a map[string]any
-func (cS ChargerSCfg) AsMapInterface(string) any {
+func (cS ChargerSCfg) AsMapInterface() any {
mp := map[string]any{
utils.EnabledCfg: cS.Enabled,
utils.IndexedSelectsCfg: cS.IndexedSelects,
diff --git a/config/chargerscfg_test.go b/config/chargerscfg_test.go
index 4e4715159..f1ed4ca01 100644
--- a/config/chargerscfg_test.go
+++ b/config/chargerscfg_test.go
@@ -82,7 +82,7 @@ func TestChargerSCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.chargerSCfg.AsMapInterface(""); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cgrCfg.chargerSCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v, recieved %+v", eMap, rcv)
}
}
@@ -114,7 +114,7 @@ func TestChargerSCfgAsMapInterface1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.chargerSCfg.AsMapInterface(""); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cgrCfg.chargerSCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v, recieved %+v", eMap, rcv)
}
}
diff --git a/config/config.go b/config/config.go
index 6f62701c1..fcda10685 100644
--- a/config/config.go
+++ b/config/config.go
@@ -1016,8 +1016,8 @@ func (cfg *CGRConfig) reloadSections(sections ...string) {
}
// AsMapInterface returns the config as a map[string]any
-func (cfg *CGRConfig) AsMapInterface(separator string) (mp map[string]any) {
- return cfg.sections.AsMapInterface(separator)
+func (cfg *CGRConfig) AsMapInterface() (mp map[string]any) {
+ return cfg.sections.AsMapInterface()
}
// Clone returns a deep copy of CGRConfig
@@ -1090,7 +1090,7 @@ func (cfg *CGRConfig) Clone() (cln *CGRConfig) {
func (cfg *CGRConfig) GetDataProvider() utils.MapStorage {
cfg.cacheDPMux.RLock()
if len(cfg.cacheDP) < len(cfg.sections) {
- cfg.cacheDP = cfg.AsMapInterface(cfg.GeneralCfg().RSRSep)
+ cfg.cacheDP = cfg.AsMapInterface()
}
mp := cfg.cacheDP.Clone()
cfg.cacheDPMux.RUnlock()
diff --git a/config/config_defaults.go b/config/config_defaults.go
index cd27c54a9..0c92f0129 100644
--- a/config/config_defaults.go
+++ b/config/config_defaults.go
@@ -49,7 +49,6 @@ const CGRATES_CFG_JSON = `
"locking_timeout": "0", // timeout internal locks to avoid deadlocks
"digest_separator": ",", // separator to use in replies containing data digests
"digest_equal": ":", // equal symbol used in case of digests
- "rsr_separator": ";", // separator used within RSR fields
"max_parallel_conns": 100, // the maximum number of connection used by the *parallel strategy
"decimal_max_scale": 0, // the maximum scale for decimal numbers
"decimal_min_scale": 0, // the minimum scale for decimal numbers
diff --git a/config/config_it_test.go b/config/config_it_test.go
index 250dfd3d2..b761c90b1 100644
--- a/config/config_it_test.go
+++ b/config/config_it_test.go
@@ -1152,7 +1152,7 @@ func testHttpHandlerConfigSForFolder(t *testing.T) {
if err != nil {
t.Error(err)
}
- mp := cfg.AsMapInterface(cfg.generalCfg.RSRSep)
+ mp := cfg.AsMapInterface()
str := utils.ToJSON(mp)
// we compare the length of the string because flags is a map and we receive it in different order
diff --git a/config/config_json.go b/config/config_json.go
index e2f8f6920..cd5e50510 100644
--- a/config/config_json.go
+++ b/config/config_json.go
@@ -151,7 +151,7 @@ func (jsnCfg CgrJsonCfg) SetSection(_ *context.Context, section string, jsn any)
type Section interface {
SName() string
Load(*context.Context, ConfigDB, *CGRConfig) error
- AsMapInterface(string) any
+ AsMapInterface() any
CloneSection() Section
// UpdateDB(*context.Context) // not know
}
@@ -241,10 +241,10 @@ func (r Sections) LoadWithout(ctx *context.Context, db ConfigDB, cfg *CGRConfig,
}
return
}
-func (r Sections) AsMapInterface(sep string) (m map[string]any) {
+func (r Sections) AsMapInterface() (m map[string]any) {
m = make(map[string]any)
for _, sec := range r {
- m[sec.SName()] = sec.AsMapInterface(sep)
+ m[sec.SName()] = sec.AsMapInterface()
}
return
}
diff --git a/config/config_json_test.go b/config/config_json_test.go
index bf8710581..1ae3f5fcf 100644
--- a/config/config_json_test.go
+++ b/config/config_json_test.go
@@ -49,7 +49,6 @@ func TestDfGeneralJsonCfg(t *testing.T) {
Locking_timeout: utils.StringPointer("0"),
Digest_separator: utils.StringPointer(","),
Digest_equal: utils.StringPointer(":"),
- Rsr_separator: utils.StringPointer(";"),
Max_parallel_conns: utils.IntPointer(100),
Decimal_max_scale: utils.IntPointer(0),
Decimal_min_scale: utils.IntPointer(0),
diff --git a/config/config_test.go b/config/config_test.go
index 8234399b1..9aa5b59c5 100644
--- a/config/config_test.go
+++ b/config/config_test.go
@@ -3286,7 +3286,7 @@ func TestCgrCfgJSONDefaultRateCfg(t *testing.T) {
func TestCgrCfgV1GetConfigAllConfig(t *testing.T) {
var rcv map[string]any
cgrCfg := NewDefaultCGRConfig()
- expected := cgrCfg.AsMapInterface(cgrCfg.GeneralCfg().RSRSep)
+ expected := cgrCfg.AsMapInterface()
if err := cgrCfg.V1GetConfig(context.Background(), &SectionWithAPIOpts{}, &rcv); err != nil {
t.Fatal(err)
}
@@ -3445,7 +3445,6 @@ func TestV1GetConfigGeneral(t *testing.T) {
utils.LockingTimeoutCfg: "0",
utils.DigestSeparatorCfg: ",",
utils.DigestEqualCfg: ":",
- utils.RSRSepCfg: ";",
utils.MaxParallelConnsCfg: 100,
utils.DecimalMaxScaleCfg: 0,
utils.DecimalMinScaleCfg: 0,
@@ -4603,7 +4602,7 @@ func TestV1GetConfigAsJSONGeneral(t *testing.T) {
"node_id": "ENGINE1",
}
}`
- expected := `{"general":{"caching_delay":"0","connect_attempts":5,"connect_timeout":"1s","dbdata_encoding":"*msgpack","decimal_max_scale":0,"decimal_min_scale":0,"decimal_precision":0,"decimal_rounding_mode":"*toNearestEven","default_caching":"*reload","default_category":"call","default_request_type":"*rated","default_tenant":"cgrates.org","default_timezone":"Local","digest_equal":":","digest_separator":",","locking_timeout":"0","max_parallel_conns":100,"max_reconnect_interval":"0","node_id":"ENGINE1","opts":{"*exporterIDs":[]},"reconnects":-1,"reply_timeout":"2s","rounding_decimals":5,"rsr_separator":";","tpexport_dir":"/var/spool/cgrates/tpe"}}`
+ expected := `{"general":{"caching_delay":"0","connect_attempts":5,"connect_timeout":"1s","dbdata_encoding":"*msgpack","decimal_max_scale":0,"decimal_min_scale":0,"decimal_precision":0,"decimal_rounding_mode":"*toNearestEven","default_caching":"*reload","default_category":"call","default_request_type":"*rated","default_tenant":"cgrates.org","default_timezone":"Local","digest_equal":":","digest_separator":",","locking_timeout":"0","max_parallel_conns":100,"max_reconnect_interval":"0","node_id":"ENGINE1","opts":{"*exporterIDs":[]},"reconnects":-1,"reply_timeout":"2s","rounding_decimals":5,"tpexport_dir":"/var/spool/cgrates/tpe"}}`
if cfgCgr, err := NewCGRConfigFromJSONStringWithDefaults(strJSON); err != nil {
t.Error(err)
} else if err := cfgCgr.V1GetConfigAsJSON(context.Background(), &SectionWithAPIOpts{Sections: []string{GeneralJSON}}, &reply); err != nil {
@@ -5076,7 +5075,7 @@ func TestV1GetConfigAsJSONAllConfig(t *testing.T) {
}
}`
var reply string
- expected := `{"accounts":{"attributes_conns":[],"enabled":false,"exists_indexed_fields":[],"indexed_selects":true,"max_iterations":1000,"max_usage":"259200000000000","nested_fields":false,"notexists_indexed_fields":[],"opts":{"*profileIDs":[],"*profileIgnoreFilters":[{"FilterIDs":null,"Tenant":""}],"*usage":[{"FilterIDs":null,"Tenant":""}]},"prefix_indexed_fields":[],"rates_conns":[],"suffix_indexed_fields":[],"thresholds_conns":[]},"actions":{"accounts_conns":[],"cdrs_conns":[],"dynaprepaid_actionprofile":[],"ees_conns":[],"enabled":false,"exists_indexed_fields":[],"indexed_selects":true,"nested_fields":false,"notexists_indexed_fields":[],"opts":{"*posterAttempts":[{"FilterIDs":null,"Tenant":""}],"*profileIDs":[],"*profileIgnoreFilters":[{"FilterIDs":null,"Tenant":""}]},"prefix_indexed_fields":[],"stats_conns":[],"suffix_indexed_fields":[],"tenants":[],"thresholds_conns":[]},"admins":{"actions_conns":[],"attributes_conns":[],"caches_conns":["*internal"],"ees_conns":[],"enabled":false},"analyzers":{"cleanup_interval":"1h0m0s","db_path":"/var/spool/cgrates/analyzers","ees_conns":[],"enabled":false,"index_type":"*scorch","opts":{"*exporterIDs":[]},"ttl":"24h0m0s"},"apiban":{"enabled":false,"keys":[]},"asterisk_agent":{"asterisk_conns":[{"address":"127.0.0.1:8088","alias":"","connect_attempts":3,"max_reconnect_interval":"0s","password":"CGRateS.org","reconnects":5,"user":"cgrates"}],"create_cdr":false,"enabled":false,"sessions_conns":["*birpc_internal"]},"attributes":{"accounts_conns":[],"enabled":false,"exists_indexed_fields":[],"indexed_selects":true,"nested_fields":false,"notexists_indexed_fields":[],"opts":{"*processRuns":[{"FilterIDs":null,"Tenant":""}],"*profileIDs":[],"*profileIgnoreFilters":[{"FilterIDs":null,"Tenant":""}],"*profileRuns":[{"FilterIDs":null,"Tenant":""}]},"prefix_indexed_fields":[],"resources_conns":[],"stats_conns":[],"suffix_indexed_fields":[]},"caches":{"partitions":{"*account_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*accounts":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*action_profile_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*action_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*apiban":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"2m0s"},"*attribute_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*attribute_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*caps_events":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*cdr_ids":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"10m0s"},"*charger_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*charger_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*closed_sessions":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"10s"},"*diameter_messages":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"3h0m0s"},"*event_charges":{"limit":0,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"10s"},"*event_resources":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*filters":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*load_ids":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*ranking_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*rankings":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*rate_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*rate_profile_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*rate_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*replication_hosts":{"limit":0,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*resource_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*resource_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*resources":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*reverse_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*route_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*route_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*rpc_connections":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*rpc_responses":{"limit":0,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"2s"},"*sentrypeer":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":true,"ttl":"24h0m0s"},"*stat_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*statqueue_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*statqueues":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*stir":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"3h0m0s"},"*threshold_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*threshold_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*thresholds":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*trend_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*trends":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*uch":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"3h0m0s"}},"remote_conns":[],"replication_conns":[]},"cdrs":{"accounts_conns":[],"actions_conns":[],"attributes_conns":[],"chargers_conns":[],"ees_conns":[],"enabled":false,"extra_fields":[],"online_cdr_exports":null,"opts":{"*accounts":[{"FilterIDs":null,"Tenant":""}],"*attributes":[{"FilterIDs":null,"Tenant":""}],"*chargers":[{"FilterIDs":null,"Tenant":""}],"*ees":[{"FilterIDs":null,"Tenant":""}],"*rates":[{"FilterIDs":null,"Tenant":""}],"*refund":[{"FilterIDs":null,"Tenant":""}],"*rerate":[{"FilterIDs":null,"Tenant":""}],"*stats":[{"FilterIDs":null,"Tenant":""}],"*store":[{"FilterIDs":null,"Tenant":""}],"*thresholds":[{"FilterIDs":null,"Tenant":""}]},"rates_conns":[],"session_cost_retries":5,"stats_conns":[],"thresholds_conns":[]},"chargers":{"attributes_conns":[],"enabled":false,"exists_indexed_fields":[],"indexed_selects":true,"nested_fields":false,"notexists_indexed_fields":[],"prefix_indexed_fields":[],"suffix_indexed_fields":[]},"config_db":{"db_host":"","db_name":"","db_password":"","db_port":0,"db_type":"*internal","db_user":"","opts":{"mongoConnScheme":"mongodb","mongoQueryTimeout":"10s","redisCACertificate":"","redisClientCertificate":"","redisClientKey":"","redisCluster":false,"redisClusterOndownDelay":"0s","redisClusterSync":"5s","redisConnectAttempts":20,"redisConnectTimeout":"0s","redisMaxConns":10,"redisReadTimeout":"0s","redisSentinel":"","redisTLS":false,"redisWriteTimeout":"0s"}},"configs":{"enabled":false,"root_dir":"/var/spool/cgrates/configs","url":"/configs/"},"cores":{"caps":0,"caps_stats_interval":"0","caps_strategy":"*busy","ees_conns":[],"shutdown_timeout":"1s"},"data_db":{"db_host":"127.0.0.1","db_name":"10","db_password":"","db_port":6379,"db_type":"*redis","db_user":"cgrates","items":{"*account_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*accounts":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*action_profile_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*action_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*actions":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*attribute_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*attribute_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*charger_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*charger_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*filters":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*load_ids":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*ranking_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*rankings":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*rate_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*rate_profile_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*rate_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*resource_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*resource_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*resources":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*reverse_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*route_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*route_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*stat_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*statqueue_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*statqueues":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*threshold_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*threshold_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*thresholds":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*trend_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*trends":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*versions":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false}},"opts":{"mongoConnScheme":"mongodb","mongoQueryTimeout":"10s","redisCACertificate":"","redisClientCertificate":"","redisClientKey":"","redisCluster":false,"redisClusterOndownDelay":"0s","redisClusterSync":"5s","redisConnectAttempts":20,"redisConnectTimeout":"0s","redisMaxConns":10,"redisPoolPipelineLimit":0,"redisPoolPipelineWindow":"150µs","redisReadTimeout":"0s","redisSentinel":"","redisTLS":false,"redisWriteTimeout":"0s"},"remote_conn_id":"","remote_conns":[],"replication_cache":"","replication_conns":[],"replication_filtered":false},"diameter_agent":{"asr_template":"","dictionaries_path":"/usr/share/cgrates/diameter/dict/","enabled":false,"forced_disconnect":"*none","listen":"127.0.0.1:3868","listen_net":"tcp","origin_host":"CGR-DA","origin_realm":"cgrates.org","product_name":"CGRateS","rar_template":"","request_processors":[],"sessions_conns":["*birpc_internal"],"synced_conn_requests":false,"vendor_id":0},"dns_agent":{"enabled":false,"listeners":[{"address":"127.0.0.1:53","network":"udp"}],"request_processors":[],"sessions_conns":["*internal"],"timezone":""},"ees":{"attributes_conns":[],"cache":{"*fileCSV":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"}},"enabled":false,"exporters":[{"attempts":1,"attribute_context":"","attribute_ids":[],"blocker":false,"concurrent_requests":0,"efs_conns":["*internal"],"export_path":"/var/spool/cgrates/ees","failed_posts_dir":"/var/spool/cgrates/failed_posts","fields":[],"filters":[],"flags":[],"id":"*default","opts":{},"synchronous":false,"timezone":"","type":"*none"}]},"efs":{"enabled":false,"failed_posts_dir":"/var/spool/cgrates/failed_posts","failed_posts_ttl":"5s","poster_attempts":3},"ers":{"enabled":false,"partial_cache_ttl":"1s","readers":[{"cache_dump_fields":[],"concurrent_requests":1024,"fields":[{"mandatory":true,"path":"*cgreq.ToR","tag":"ToR","type":"*variable","value":"~*req.2"},{"mandatory":true,"path":"*cgreq.OriginID","tag":"OriginID","type":"*variable","value":"~*req.3"},{"mandatory":true,"path":"*cgreq.RequestType","tag":"RequestType","type":"*variable","value":"~*req.4"},{"mandatory":true,"path":"*cgreq.Tenant","tag":"Tenant","type":"*variable","value":"~*req.6"},{"mandatory":true,"path":"*cgreq.Category","tag":"Category","type":"*variable","value":"~*req.7"},{"mandatory":true,"path":"*cgreq.Account","tag":"Account","type":"*variable","value":"~*req.8"},{"mandatory":true,"path":"*cgreq.Subject","tag":"Subject","type":"*variable","value":"~*req.9"},{"mandatory":true,"path":"*cgreq.Destination","tag":"Destination","type":"*variable","value":"~*req.10"},{"mandatory":true,"path":"*cgreq.SetupTime","tag":"SetupTime","type":"*variable","value":"~*req.11"},{"mandatory":true,"path":"*cgreq.AnswerTime","tag":"AnswerTime","type":"*variable","value":"~*req.12"},{"mandatory":true,"path":"*cgreq.Usage","tag":"Usage","type":"*variable","value":"~*req.13"}],"filters":[],"flags":[],"id":"*default","max_reconnect_interval":"5m0s","opts":{"csvFieldSeparator":",","csvHeaderDefineChar":":","csvRowLength":0,"natsSubject":"cgrates_cdrs","partialCacheAction":"*none","partialOrderField":"~*req.AnswerTime"},"partial_commit_fields":[],"processed_path":"/var/spool/cgrates/ers/out","reconnects":-1,"run_delay":"0","source_path":"/var/spool/cgrates/ers/in","start_delay":"0","tenant":"","timezone":"","type":"*none"}],"sessions_conns":["*internal"]},"filters":{"accounts_conns":[],"rankings_conns":[],"resources_conns":[],"stats_conns":[],"trends_conns":[]},"freeswitch_agent":{"active_session_delimiter":",","create_cdr":false,"empty_balance_ann_file":"","empty_balance_context":"","enabled":false,"event_socket_conns":[{"address":"127.0.0.1:8021","alias":"127.0.0.1:8021","max_reconnect_interval":"0s","password":"ClueCon","reconnects":5,"reply_timeout":"1m0s"}],"extra_fields":[],"low_balance_ann_file":"","max_wait_connection":"2s","sessions_conns":["*birpc_internal"],"subscribe_park":true},"general":{"caching_delay":"0","connect_attempts":5,"connect_timeout":"1s","dbdata_encoding":"*msgpack","decimal_max_scale":0,"decimal_min_scale":0,"decimal_precision":0,"decimal_rounding_mode":"*toNearestEven","default_caching":"*reload","default_category":"call","default_request_type":"*rated","default_tenant":"cgrates.org","default_timezone":"Local","digest_equal":":","digest_separator":",","locking_timeout":"0","max_parallel_conns":100,"max_reconnect_interval":"0","node_id":"ENGINE1","opts":{"*exporterIDs":[]},"reconnects":-1,"reply_timeout":"2s","rounding_decimals":5,"rsr_separator":";","tpexport_dir":"/var/spool/cgrates/tpe"},"http":{"auth_users":{},"client_opts":{"dialFallbackDelay":"300ms","dialKeepAlive":"30s","dialTimeout":"30s","disableCompression":false,"disableKeepAlives":false,"expectContinueTimeout":"0s","forceAttemptHttp2":true,"idleConnTimeout":"1m30s","maxConnsPerHost":0,"maxIdleConns":100,"maxIdleConnsPerHost":2,"responseHeaderTimeout":"0s","skipTLSVerification":false,"tlsHandshakeTimeout":"10s"},"freeswitch_cdrs_url":"/freeswitch_json","http_cdrs":"/cdr_http","json_rpc_url":"/jsonrpc","pprof_path":"/debug/pprof/","prometheus_url":"/prometheus","registrars_url":"/registrar","use_basic_auth":false,"ws_url":"/ws"},"http_agent":[],"janus_agent":{"enabled":false,"janus_conns":[{"address":"127.0.0.1:8088","admin_address":"localhost:7188","admin_password":"","type":"*ws"}],"request_processors":[],"sessions_conns":["*internal"],"url":"/janus"},"kamailio_agent":{"create_cdr":false,"enabled":false,"evapi_conns":[{"address":"127.0.0.1:8448","alias":"","max_reconnect_interval":"0s","reconnects":5}],"sessions_conns":["*birpc_internal"],"timezone":""},"listen":{"http":"127.0.0.1:2080","http_tls":"127.0.0.1:2280","rpc_gob":"127.0.0.1:2013","rpc_gob_tls":"127.0.0.1:2023","rpc_json":"127.0.0.1:2012","rpc_json_tls":"127.0.0.1:2022"},"loader":{"actions_conns":["*localhost"],"caches_conns":["*localhost"],"data_path":"./","disable_reverse":false,"field_separator":",","gapi_credentials":".gapi/credentials.json","gapi_token":".gapi/token.json","tpid":""},"loaders":[{"action":"*store","cache":{"*accounts":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*action_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*attributes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*chargers":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*filters":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*rankings":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*rate_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*resources":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*routes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*stats":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*thresholds":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*trends":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"}},"caches_conns":["*internal"],"data":[{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"new_branch":true,"path":"Rules.Type","tag":"Type","type":"*variable","value":"~*req.2"},{"path":"Rules.Element","tag":"Element","type":"*variable","value":"~*req.3"},{"path":"Rules.Values","tag":"Values","type":"*variable","value":"~*req.4"}],"file_name":"Filters.csv","flags":null,"type":"*filters"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"TenantID","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ProfileID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"Weights","tag":"Weights","type":"*variable","value":"~*req.3"},{"path":"Blockers","tag":"Blockers","type":"*variable","value":"~*req.4"},{"new_branch":true,"path":"Attributes.FilterIDs","tag":"AttributeFilterIDs","type":"*variable","value":"~*req.5"},{"path":"Attributes.Blockers","tag":"AttributeBlockers","type":"*variable","value":"~*req.6"},{"path":"Attributes.Path","tag":"Path","type":"*variable","value":"~*req.7"},{"path":"Attributes.Type","tag":"Type","type":"*variable","value":"~*req.8"},{"path":"Attributes.Value","tag":"Value","type":"*variable","value":"~*req.9"}],"file_name":"Attributes.csv","flags":null,"type":"*attributes"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"Weights","tag":"Weights","type":"*variable","value":"~*req.3"},{"path":"UsageTTL","tag":"TTL","type":"*variable","value":"~*req.4"},{"path":"Limit","tag":"Limit","type":"*variable","value":"~*req.5"},{"path":"AllocationMessage","tag":"AllocationMessage","type":"*variable","value":"~*req.6"},{"path":"Blocker","tag":"Blocker","type":"*variable","value":"~*req.7"},{"path":"Stored","tag":"Stored","type":"*variable","value":"~*req.8"},{"path":"ThresholdIDs","tag":"ThresholdIDs","type":"*variable","value":"~*req.9"}],"file_name":"Resources.csv","flags":null,"type":"*resources"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"Weights","tag":"Weights","type":"*variable","value":"~*req.3"},{"path":"Blockers","tag":"Blockers","type":"*variable","value":"~*req.4"},{"path":"QueueLength","tag":"QueueLength","type":"*variable","value":"~*req.5"},{"path":"TTL","tag":"TTL","type":"*variable","value":"~*req.6"},{"path":"MinItems","tag":"MinItems","type":"*variable","value":"~*req.7"},{"path":"Stored","tag":"Stored","type":"*variable","value":"~*req.8"},{"path":"ThresholdIDs","tag":"ThresholdIDs","type":"*variable","value":"~*req.9"},{"new_branch":true,"path":"Metrics.MetricID","tag":"MetricIDs","type":"*variable","value":"~*req.10"},{"path":"Metrics.FilterIDs","tag":"MetricFilterIDs","type":"*variable","value":"~*req.11"},{"path":"Metrics.Blockers","tag":"MetricBlockers","type":"*variable","value":"~*req.12"}],"file_name":"Stats.csv","flags":null,"type":"*stats"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"Weights","tag":"Weights","type":"*variable","value":"~*req.3"},{"path":"MaxHits","tag":"MaxHits","type":"*variable","value":"~*req.4"},{"path":"MinHits","tag":"MinHits","type":"*variable","value":"~*req.5"},{"path":"MinSleep","tag":"MinSleep","type":"*variable","value":"~*req.6"},{"path":"Blocker","tag":"Blocker","type":"*variable","value":"~*req.7"},{"path":"ActionProfileIDs","tag":"ActionProfileIDs","type":"*variable","value":"~*req.8"},{"path":"Async","tag":"Async","type":"*variable","value":"~*req.9"}],"file_name":"Thresholds.csv","flags":null,"type":"*thresholds"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"Schedule","tag":"Schedule","type":"*variable","value":"~*req.2"},{"path":"StatID","tag":"StatID","type":"*variable","value":"~*req.3"},{"path":"Metrics","tag":"Metrics","type":"*variable","value":"~*req.4"},{"path":"TTL","tag":"TTL","type":"*variable","value":"~*req.5"},{"path":"QueueLength","tag":"QueueLength","type":"*variable","value":"~*req.6"},{"path":"MinItems","tag":"MinItems","type":"*variable","value":"~*req.7"},{"path":"CorrelationType","tag":"CorrelationType","type":"*variable","value":"~*req.8"},{"path":"Tolerance","tag":"Tolerance","type":"*variable","value":"~*req.9"},{"path":"Stored","tag":"Stored","type":"*variable","value":"~*req.10"},{"path":"ThresholdIDs","tag":"ThresholdIDs","type":"*variable","value":"~*req.11"}],"file_name":"Trends.csv","flags":null,"type":"*trends"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"Schedule","tag":"Schedule","type":"*variable","value":"~*req.2"},{"path":"StatIDs","tag":"StatIDs","type":"*variable","value":"~*req.3"},{"path":"MetricIDs","tag":"MetricIDs","type":"*variable","value":"~*req.4"},{"path":"Sorting","tag":"Sorting","type":"*variable","value":"~*req.5"},{"path":"SortingParameters","tag":"SortingParameters","type":"*variable","value":"~*req.6"},{"path":"Stored","tag":"Stored","type":"*variable","value":"~*req.7"},{"path":"ThresholdIDs","tag":"ThresholdIDs","type":"*variable","value":"~*req.8"}],"file_name":"Rankings.csv","flags":null,"type":"*rankings"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"Weights","tag":"Weights","type":"*variable","value":"~*req.3"},{"path":"Blockers","tag":"Blockers","type":"*variable","value":"~*req.4"},{"path":"Sorting","tag":"Sorting","type":"*variable","value":"~*req.5"},{"path":"SortingParameters","tag":"SortingParameters","type":"*variable","value":"~*req.6"},{"new_branch":true,"path":"Routes.ID","tag":"RouteID","type":"*variable","value":"~*req.7"},{"path":"Routes.FilterIDs","tag":"RouteFilterIDs","type":"*variable","value":"~*req.8"},{"path":"Routes.AccountIDs","tag":"RouteAccountIDs","type":"*variable","value":"~*req.9"},{"path":"Routes.RateProfileIDs","tag":"RouteRateProfileIDs","type":"*variable","value":"~*req.10"},{"path":"Routes.ResourceIDs","tag":"RouteResourceIDs","type":"*variable","value":"~*req.11"},{"path":"Routes.StatIDs","tag":"RouteStatIDs","type":"*variable","value":"~*req.12"},{"path":"Routes.Weights","tag":"RouteWeights","type":"*variable","value":"~*req.13"},{"path":"Routes.Blockers","tag":"RouteBlockers","type":"*variable","value":"~*req.14"},{"path":"Routes.RouteParameters","tag":"RouteParameters","type":"*variable","value":"~*req.15"}],"file_name":"Routes.csv","flags":null,"type":"*routes"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"Weights","tag":"Weights","type":"*variable","value":"~*req.3"},{"path":"Blockers","tag":"Blockers","type":"*variable","value":"~*req.4"},{"path":"RunID","tag":"RunID","type":"*variable","value":"~*req.5"},{"path":"AttributeIDs","tag":"AttributeIDs","type":"*variable","value":"~*req.6"}],"file_name":"Chargers.csv","flags":null,"type":"*chargers"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"Weights","tag":"Weights","type":"*variable","value":"~*req.3"},{"path":"MinCost","tag":"MinCost","type":"*variable","value":"~*req.4"},{"path":"MaxCost","tag":"MaxCost","type":"*variable","value":"~*req.5"},{"path":"MaxCostStrategy","tag":"MaxCostStrategy","type":"*variable","value":"~*req.6"},{"filters":["*notempty:~*req.7:"],"path":"Rates[\u003c~*req.7\u003e].FilterIDs","tag":"RateFilterIDs","type":"*variable","value":"~*req.8"},{"filters":["*notempty:~*req.7:"],"path":"Rates[\u003c~*req.7\u003e].ActivationTimes","tag":"RateActivationTimes","type":"*variable","value":"~*req.9"},{"filters":["*notempty:~*req.7:"],"path":"Rates[\u003c~*req.7\u003e].Weights","tag":"RateWeights","type":"*variable","value":"~*req.10"},{"filters":["*notempty:~*req.7:"],"path":"Rates[\u003c~*req.7\u003e].Blocker","tag":"RateBlocker","type":"*variable","value":"~*req.11"},{"filters":["*notempty:~*req.7:"],"new_branch":true,"path":"Rates[\u003c~*req.7\u003e].IntervalRates.IntervalStart","tag":"RateIntervalStart","type":"*variable","value":"~*req.12"},{"filters":["*notempty:~*req.7:"],"path":"Rates[\u003c~*req.7\u003e].IntervalRates.FixedFee","tag":"RateFixedFee","type":"*variable","value":"~*req.13"},{"filters":["*notempty:~*req.7:"],"path":"Rates[\u003c~*req.7\u003e].IntervalRates.RecurrentFee","tag":"RateRecurrentFee","type":"*variable","value":"~*req.14"},{"filters":["*notempty:~*req.7:"],"path":"Rates[\u003c~*req.7\u003e].IntervalRates.Unit","tag":"RateUnit","type":"*variable","value":"~*req.15"},{"filters":["*notempty:~*req.7:"],"path":"Rates[\u003c~*req.7\u003e].IntervalRates.Increment","tag":"RateIncrement","type":"*variable","value":"~*req.16"}],"file_name":"Rates.csv","flags":null,"type":"*rate_profiles"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"Weights","tag":"Weights","type":"*variable","value":"~*req.3"},{"path":"Blockers","tag":"Blockers","type":"*variable","value":"~*req.4"},{"path":"Schedule","tag":"Schedule","type":"*variable","value":"~*req.5"},{"path":"Targets[\u003c~*req.6\u003e]","tag":"TargetIDs","type":"*variable","value":"~*req.7"},{"filters":["*notempty:~*req.8:"],"path":"Actions[\u003c~*req.8\u003e].FilterIDs","tag":"ActionFilterIDs","type":"*variable","value":"~*req.9"},{"filters":["*notempty:~*req.8:"],"path":"Actions[\u003c~*req.8\u003e].TTL","tag":"ActionTTL","type":"*variable","value":"~*req.10"},{"filters":["*notempty:~*req.8:"],"path":"Actions[\u003c~*req.8\u003e].Type","tag":"ActionType","type":"*variable","value":"~*req.11"},{"filters":["*notempty:~*req.8:"],"path":"Actions[\u003c~*req.8\u003e].Opts","tag":"ActionOpts","type":"*variable","value":"~*req.12"},{"filters":["*notempty:~*req.8:"],"new_branch":true,"path":"Actions[\u003c~*req.8\u003e].Diktats.Path","tag":"ActionPath","type":"*variable","value":"~*req.13"},{"filters":["*notempty:~*req.8:"],"path":"Actions[\u003c~*req.8\u003e].Diktats.Value","tag":"ActionValue","type":"*variable","value":"~*req.14"}],"file_name":"Actions.csv","flags":null,"type":"*action_profiles"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"Weights","tag":"Weights","type":"*variable","value":"~*req.3"},{"path":"Blockers","tag":"Blockers","type":"*variable","value":"~*req.4"},{"path":"Opts","tag":"Opts","type":"*variable","value":"~*req.5"},{"filters":["*notempty:~*req.6:"],"path":"Balances[\u003c~*req.6\u003e].FilterIDs","tag":"BalanceFilterIDs","type":"*variable","value":"~*req.7"},{"filters":["*notempty:~*req.6:"],"path":"Balances[\u003c~*req.6\u003e].Weights","tag":"BalanceWeights","type":"*variable","value":"~*req.8"},{"filters":["*notempty:~*req.6:"],"path":"Balances[\u003c~*req.6\u003e].Blockers","tag":"BalanceBlockers","type":"*variable","value":"~*req.9"},{"filters":["*notempty:~*req.6:"],"path":"Balances[\u003c~*req.6\u003e].Type","tag":"BalanceType","type":"*variable","value":"~*req.10"},{"filters":["*notempty:~*req.6:"],"path":"Balances[\u003c~*req.6\u003e].Units","tag":"BalanceUnits","type":"*variable","value":"~*req.11"},{"filters":["*notempty:~*req.6:"],"path":"Balances[\u003c~*req.6\u003e].UnitFactors","tag":"BalanceUnitFactors","type":"*variable","value":"~*req.12"},{"filters":["*notempty:~*req.6:"],"path":"Balances[\u003c~*req.6\u003e].Opts","tag":"BalanceOpts","type":"*variable","value":"~*req.13"},{"filters":["*notempty:~*req.6:"],"path":"Balances[\u003c~*req.6\u003e].CostIncrements","tag":"BalanceCostIncrements","type":"*variable","value":"~*req.14"},{"filters":["*notempty:~*req.6:"],"path":"Balances[\u003c~*req.6\u003e].AttributeIDs","tag":"BalanceAttributeIDs","type":"*variable","value":"~*req.15"},{"filters":["*notempty:~*req.6:"],"path":"Balances[\u003c~*req.6\u003e].RateProfileIDs","tag":"BalanceRateProfileIDs","type":"*variable","value":"~*req.16"},{"path":"ThresholdIDs","tag":"ThresholdIDs","type":"*variable","value":"~*req.17"}],"file_name":"Accounts.csv","flags":null,"type":"*accounts"}],"enabled":false,"field_separator":",","id":"*default","lockfile_path":".cgr.lck","opts":{"*cache":"","*forceLock":false,"*stopOnError":false,"*withIndex":true},"run_delay":"0","tenant":"","tp_in_dir":"/var/spool/cgrates/loader/in","tp_out_dir":"/var/spool/cgrates/loader/out"}],"logger":{"efs_conns":["*internal"],"level":6,"opts":{"failed_posts_dir":"/var/spool/cgrates/failed_posts","kafka_attempts":1,"kafka_conn":"","kafka_topic":""},"type":"*syslog"},"migrator":{"out_datadb_encoding":"msgpack","out_datadb_host":"127.0.0.1","out_datadb_name":"10","out_datadb_opts":{"mongoConnScheme":"mongodb","mongoQueryTimeout":"10s","redisCACertificate":"","redisClientCertificate":"","redisClientKey":"","redisCluster":false,"redisClusterOndownDelay":"0s","redisClusterSync":"5s","redisConnectAttempts":20,"redisConnectTimeout":"0s","redisMaxConns":10,"redisPoolPipelineLimit":0,"redisPoolPipelineWindow":"150µs","redisReadTimeout":"0s","redisSentinel":"","redisTLS":false,"redisWriteTimeout":"0s"},"out_datadb_password":"","out_datadb_port":"6379","out_datadb_type":"*redis","out_datadb_user":"cgrates","users_filters":null},"radius_agent":{"client_dictionaries":{"*default":"/usr/share/cgrates/radius/dict/"},"client_secrets":{"*default":"CGRateS.org"},"enabled":false,"listen_acct":"127.0.0.1:1813","listen_auth":"127.0.0.1:1812","listen_net":"udp","request_processors":[],"sessions_conns":["*internal"]},"rankings":{"ees_conns":[],"ees_exporter_ids":null,"enabled":false,"scheduled_ids":{},"stats_conns":[],"store_interval":"","thresholds_conns":[]},"rates":{"enabled":false,"exists_indexed_fields":[],"indexed_selects":true,"nested_fields":false,"notexists_indexed_fields":[],"opts":{"*intervalStart":[{"FilterIDs":null,"Tenant":""}],"*profileIDs":[],"*profileIgnoreFilters":[{"FilterIDs":null,"Tenant":""}],"*startTime":[{"FilterIDs":null,"Tenant":""}],"*usage":[{"FilterIDs":null,"Tenant":""}]},"prefix_indexed_fields":[],"rate_exists_indexed_fields":[],"rate_indexed_selects":true,"rate_nested_fields":false,"rate_notexists_indexed_fields":[],"rate_prefix_indexed_fields":[],"rate_suffix_indexed_fields":[],"suffix_indexed_fields":[],"verbosity":1000},"registrarc":{"rpc":{"hosts":[],"refresh_interval":"5m0s","registrars_conns":[]}},"resources":{"enabled":false,"exists_indexed_fields":[],"indexed_selects":true,"nested_fields":false,"notexists_indexed_fields":[],"opts":{"*units":[{"FilterIDs":null,"Tenant":""}],"*usageID":[{"FilterIDs":null,"Tenant":""}],"*usageTTL":[{"FilterIDs":null,"Tenant":""}]},"prefix_indexed_fields":[],"store_interval":"","suffix_indexed_fields":[],"thresholds_conns":[]},"routes":{"accounts_conns":[],"attributes_conns":[],"default_ratio":1,"enabled":false,"exists_indexed_fields":[],"indexed_selects":true,"nested_fields":false,"notexists_indexed_fields":[],"opts":{"*context":[{"FilterIDs":null,"Tenant":""}],"*ignoreErrors":[{"FilterIDs":null,"Tenant":""}],"*limit":[],"*maxCost":[{"Tenant":"","Value":""}],"*maxItems":[],"*offset":[],"*profileCount":[{"FilterIDs":null,"Tenant":""}],"*usage":[{"FilterIDs":null,"Tenant":""}]},"prefix_indexed_fields":[],"rates_conns":[],"resources_conns":[],"stats_conns":[],"suffix_indexed_fields":[]},"rpc_conns":{"*bijson_localhost":{"conns":[{"address":"127.0.0.1:2014","transport":"*birpc_json"}],"poolSize":0,"strategy":"*first"},"*birpc_internal":{"conns":[{"address":"*birpc_internal","transport":""}],"poolSize":0,"strategy":"*first"},"*internal":{"conns":[{"address":"*internal","transport":""}],"poolSize":0,"strategy":"*first"},"*localhost":{"conns":[{"address":"127.0.0.1:2012","transport":"*json"}],"poolSize":0,"strategy":"*first"}},"sentrypeer":{"audience":"https://sentrypeer.com/api","client_id":"","client_secret":"","grant_type":"client_credentials","ips_url":"https://sentrypeer.com/api/ip-addresses","numbers_url":"https://sentrypeer.com/api/phone-numbers","token_url":"https://authz.sentrypeer.com/oauth/token"},"sessions":{"accounts_conns":[],"actions_conns":[],"alterable_fields":[],"attributes_conns":[],"cdrs_conns":[],"channel_sync_interval":"0","chargers_conns":[],"client_protocol":1,"default_usage":{"*any":"3h0m0s","*data":"1048576","*sms":"1","*voice":"3h0m0s"},"enabled":false,"listen_bigob":"","listen_bijson":"127.0.0.1:2014","min_dur_low_balance":"0","opts":{"*accounts":[{"FilterIDs":null,"Tenant":""}],"*accountsForceUsage":[],"*attributes":[{"FilterIDs":null,"Tenant":""}],"*attributesDerivedReply":[{"FilterIDs":null,"Tenant":""}],"*blockerError":[{"FilterIDs":null,"Tenant":""}],"*cdrs":[{"FilterIDs":null,"Tenant":""}],"*cdrsDerivedReply":[{"FilterIDs":null,"Tenant":""}],"*chargeable":[{"FilterIDs":null,"Tenant":""}],"*chargers":[{"FilterIDs":null,"Tenant":""}],"*debitInterval":[{"FilterIDs":null,"Tenant":""}],"*forceUsage":[],"*initiate":[{"FilterIDs":null,"Tenant":""}],"*maxUsage":[{"FilterIDs":null,"Tenant":""}],"*message":[{"FilterIDs":null,"Tenant":""}],"*originID":[],"*resources":[{"FilterIDs":null,"Tenant":""}],"*resourcesAllocate":[{"FilterIDs":null,"Tenant":""}],"*resourcesAuthorize":[{"FilterIDs":null,"Tenant":""}],"*resourcesDerivedReply":[{"FilterIDs":null,"Tenant":""}],"*resourcesRelease":[{"FilterIDs":null,"Tenant":""}],"*routes":[{"FilterIDs":null,"Tenant":""}],"*routesDerivedReply":[{"FilterIDs":null,"Tenant":""}],"*stats":[{"FilterIDs":null,"Tenant":""}],"*statsDerivedReply":[{"FilterIDs":null,"Tenant":""}],"*terminate":[{"FilterIDs":null,"Tenant":""}],"*thresholds":[{"FilterIDs":null,"Tenant":""}],"*thresholdsDerivedReply":[{"FilterIDs":null,"Tenant":""}],"*ttl":[{"FilterIDs":null,"Tenant":""}],"*ttlLastUsage":[],"*ttlLastUsed":[],"*ttlMaxDelay":[{"FilterIDs":null,"Tenant":""}],"*ttlUsage":[],"*update":[{"FilterIDs":null,"Tenant":""}]},"rates_conns":[],"replication_conns":[],"resources_conns":[],"routes_conns":[],"session_indexes":[],"stats_conns":[],"stir":{"allowed_attest":["*any"],"default_attest":"A","payload_maxduration":"-1","privatekey_path":"","publickey_path":""},"store_session_costs":false,"terminate_attempts":5,"thresholds_conns":[]},"sip_agent":{"enabled":false,"listen":"127.0.0.1:5060","listen_net":"udp","request_processors":[],"retransmission_timer":"1s","sessions_conns":["*internal"],"timezone":""},"stats":{"ees_conns":[],"ees_exporter_ids":null,"enabled":false,"exists_indexed_fields":[],"indexed_selects":true,"nested_fields":false,"notexists_indexed_fields":[],"opts":{"*profileIDs":[],"*profileIgnoreFilters":[{"FilterIDs":null,"Tenant":""}],"*prometheusStatIDs":[],"*roundingDecimals":[]},"prefix_indexed_fields":[],"store_interval":"","store_uncompressed_limit":0,"suffix_indexed_fields":[],"thresholds_conns":[]},"stor_db":{"db_host":"127.0.0.1","db_name":"cgrates","db_password":"CGRateS.org","db_port":3306,"db_type":"**mysql","db_user":"cgrates","items":{"*cdrs":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false}},"opts":{"mongoConnScheme":"mongodb","mongoQueryTimeout":"10s","mysqlDSNParams":{},"mysqlLocation":"Local","pgSSLMode":"disable","sqlConnMaxLifetime":"0s","sqlMaxIdleConns":10,"sqlMaxOpenConns":100},"prefix_indexed_fields":[],"remote_conns":null,"replication_conns":null,"string_indexed_fields":[]},"suretax":{"bill_to_number":"","business_unit":"","client_number":"","client_tracking":"~*opts.*originID","customer_number":"~*req.Subject","include_local_cost":false,"orig_number":"~*req.Subject","p2pplus4":"","p2pzipcode":"","plus4":"","regulatory_code":"03","response_group":"03","response_type":"D4","return_file_code":"0","sales_type_code":"R","tax_exemption_code_list":"","tax_included":"0","tax_situs_rule":"04","term_number":"~*req.Destination","timezone":"UTC","trans_type_code":"010101","unit_type":"00","units":"1","url":"","validation_key":"","zipcode":""},"templates":{"*asr":[{"mandatory":true,"path":"*diamreq.Session-Id","tag":"SessionId","type":"*variable","value":"~*req.Session-Id"},{"mandatory":true,"path":"*diamreq.Origin-Host","tag":"OriginHost","type":"*variable","value":"~*req.Destination-Host"},{"mandatory":true,"path":"*diamreq.Origin-Realm","tag":"OriginRealm","type":"*variable","value":"~*req.Destination-Realm"},{"mandatory":true,"path":"*diamreq.Destination-Realm","tag":"DestinationRealm","type":"*variable","value":"~*req.Origin-Realm"},{"mandatory":true,"path":"*diamreq.Destination-Host","tag":"DestinationHost","type":"*variable","value":"~*req.Origin-Host"},{"mandatory":true,"path":"*diamreq.Auth-Application-Id","tag":"AuthApplicationId","type":"*variable","value":"~*vars.*appid"}],"*cca":[{"mandatory":true,"path":"*rep.Session-Id","tag":"SessionId","type":"*variable","value":"~*req.Session-Id"},{"path":"*rep.Result-Code","tag":"ResultCode","type":"*constant","value":"2001"},{"mandatory":true,"path":"*rep.Origin-Host","tag":"OriginHost","type":"*variable","value":"~*vars.OriginHost"},{"mandatory":true,"path":"*rep.Origin-Realm","tag":"OriginRealm","type":"*variable","value":"~*vars.OriginRealm"},{"mandatory":true,"path":"*rep.Auth-Application-Id","tag":"AuthApplicationId","type":"*variable","value":"~*vars.*appid"},{"mandatory":true,"path":"*rep.CC-Request-Type","tag":"CCRequestType","type":"*variable","value":"~*req.CC-Request-Type"},{"mandatory":true,"path":"*rep.CC-Request-Number","tag":"CCRequestNumber","type":"*variable","value":"~*req.CC-Request-Number"}],"*cdrLog":[{"mandatory":true,"path":"*cdr.ToR","tag":"ToR","type":"*variable","value":"~*req.BalanceType"},{"mandatory":true,"path":"*cdr.OriginHost","tag":"OriginHost","type":"*constant","value":"127.0.0.1"},{"mandatory":true,"path":"*cdr.RequestType","tag":"RequestType","type":"*constant","value":"*none"},{"mandatory":true,"path":"*cdr.Tenant","tag":"Tenant","type":"*variable","value":"~*req.Tenant"},{"mandatory":true,"path":"*cdr.Account","tag":"Account","type":"*variable","value":"~*req.Account"},{"mandatory":true,"path":"*cdr.Subject","tag":"Subject","type":"*variable","value":"~*req.Account"},{"mandatory":true,"path":"*cdr.Cost","tag":"Cost","type":"*variable","value":"~*req.Cost"},{"mandatory":true,"path":"*cdr.Source","tag":"Source","type":"*constant","value":"*cdrLog"},{"mandatory":true,"path":"*cdr.Usage","tag":"Usage","type":"*constant","value":"1"},{"mandatory":true,"path":"*cdr.RunID","tag":"RunID","type":"*variable","value":"~*req.ActionType"},{"mandatory":true,"path":"*cdr.SetupTime","tag":"SetupTime","type":"*constant","value":"*now"},{"mandatory":true,"path":"*cdr.AnswerTime","tag":"AnswerTime","type":"*constant","value":"*now"},{"mandatory":true,"path":"*cdr.PreRated","tag":"PreRated","type":"*constant","value":"true"}],"*err":[{"mandatory":true,"path":"*rep.Session-Id","tag":"SessionId","type":"*variable","value":"~*req.Session-Id"},{"mandatory":true,"path":"*rep.Origin-Host","tag":"OriginHost","type":"*variable","value":"~*vars.OriginHost"},{"mandatory":true,"path":"*rep.Origin-Realm","tag":"OriginRealm","type":"*variable","value":"~*vars.OriginRealm"}],"*errSip":[{"mandatory":true,"path":"*rep.Request","tag":"Request","type":"*constant","value":"SIP/2.0 500 Internal Server Error"}],"*rar":[{"mandatory":true,"path":"*diamreq.Session-Id","tag":"SessionId","type":"*variable","value":"~*req.Session-Id"},{"mandatory":true,"path":"*diamreq.Origin-Host","tag":"OriginHost","type":"*variable","value":"~*req.Destination-Host"},{"mandatory":true,"path":"*diamreq.Origin-Realm","tag":"OriginRealm","type":"*variable","value":"~*req.Destination-Realm"},{"mandatory":true,"path":"*diamreq.Destination-Realm","tag":"DestinationRealm","type":"*variable","value":"~*req.Origin-Realm"},{"mandatory":true,"path":"*diamreq.Destination-Host","tag":"DestinationHost","type":"*variable","value":"~*req.Origin-Host"},{"mandatory":true,"path":"*diamreq.Auth-Application-Id","tag":"AuthApplicationId","type":"*variable","value":"~*vars.*appid"},{"path":"*diamreq.Re-Auth-Request-Type","tag":"ReAuthRequestType","type":"*constant","value":"0"}]},"thresholds":{"actions_conns":[],"enabled":false,"exists_indexed_fields":[],"indexed_selects":true,"nested_fields":false,"notexists_indexed_fields":[],"opts":{"*profileIDs":[],"*profileIgnoreFilters":[{"FilterIDs":null,"Tenant":""}]},"prefix_indexed_fields":[],"store_interval":"","suffix_indexed_fields":[]},"tls":{"ca_certificate":"","client_certificate":"","client_key":"","server_certificate":"","server_key":"","server_name":"","server_policy":4},"tpes":{"enabled":false},"trends":{"ees_conns":[],"ees_exporter_ids":null,"enabled":false,"scheduled_ids":{},"stats_conns":[],"store_interval":"","store_uncompressed_limit":0,"thresholds_conns":[]}}`
+ expected := `{"accounts":{"attributes_conns":[],"enabled":false,"exists_indexed_fields":[],"indexed_selects":true,"max_iterations":1000,"max_usage":"259200000000000","nested_fields":false,"notexists_indexed_fields":[],"opts":{"*profileIDs":[],"*profileIgnoreFilters":[{"FilterIDs":null,"Tenant":""}],"*usage":[{"FilterIDs":null,"Tenant":""}]},"prefix_indexed_fields":[],"rates_conns":[],"suffix_indexed_fields":[],"thresholds_conns":[]},"actions":{"accounts_conns":[],"cdrs_conns":[],"dynaprepaid_actionprofile":[],"ees_conns":[],"enabled":false,"exists_indexed_fields":[],"indexed_selects":true,"nested_fields":false,"notexists_indexed_fields":[],"opts":{"*posterAttempts":[{"FilterIDs":null,"Tenant":""}],"*profileIDs":[],"*profileIgnoreFilters":[{"FilterIDs":null,"Tenant":""}]},"prefix_indexed_fields":[],"stats_conns":[],"suffix_indexed_fields":[],"tenants":[],"thresholds_conns":[]},"admins":{"actions_conns":[],"attributes_conns":[],"caches_conns":["*internal"],"ees_conns":[],"enabled":false},"analyzers":{"cleanup_interval":"1h0m0s","db_path":"/var/spool/cgrates/analyzers","ees_conns":[],"enabled":false,"index_type":"*scorch","opts":{"*exporterIDs":[]},"ttl":"24h0m0s"},"apiban":{"enabled":false,"keys":[]},"asterisk_agent":{"asterisk_conns":[{"address":"127.0.0.1:8088","alias":"","connect_attempts":3,"max_reconnect_interval":"0s","password":"CGRateS.org","reconnects":5,"user":"cgrates"}],"create_cdr":false,"enabled":false,"sessions_conns":["*birpc_internal"]},"attributes":{"accounts_conns":[],"enabled":false,"exists_indexed_fields":[],"indexed_selects":true,"nested_fields":false,"notexists_indexed_fields":[],"opts":{"*processRuns":[{"FilterIDs":null,"Tenant":""}],"*profileIDs":[],"*profileIgnoreFilters":[{"FilterIDs":null,"Tenant":""}],"*profileRuns":[{"FilterIDs":null,"Tenant":""}]},"prefix_indexed_fields":[],"resources_conns":[],"stats_conns":[],"suffix_indexed_fields":[]},"caches":{"partitions":{"*account_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*accounts":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*action_profile_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*action_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*apiban":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"2m0s"},"*attribute_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*attribute_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*caps_events":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*cdr_ids":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"10m0s"},"*charger_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*charger_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*closed_sessions":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"10s"},"*diameter_messages":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"3h0m0s"},"*event_charges":{"limit":0,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"10s"},"*event_resources":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*filters":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*load_ids":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*ranking_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*rankings":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*rate_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*rate_profile_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*rate_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*replication_hosts":{"limit":0,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*resource_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*resource_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*resources":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*reverse_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*route_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*route_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*rpc_connections":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*rpc_responses":{"limit":0,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"2s"},"*sentrypeer":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":true,"ttl":"24h0m0s"},"*stat_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*statqueue_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*statqueues":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*stir":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"3h0m0s"},"*threshold_filter_indexes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*threshold_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*thresholds":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*trend_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*trends":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false},"*uch":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"3h0m0s"}},"remote_conns":[],"replication_conns":[]},"cdrs":{"accounts_conns":[],"actions_conns":[],"attributes_conns":[],"chargers_conns":[],"ees_conns":[],"enabled":false,"extra_fields":[],"online_cdr_exports":null,"opts":{"*accounts":[{"FilterIDs":null,"Tenant":""}],"*attributes":[{"FilterIDs":null,"Tenant":""}],"*chargers":[{"FilterIDs":null,"Tenant":""}],"*ees":[{"FilterIDs":null,"Tenant":""}],"*rates":[{"FilterIDs":null,"Tenant":""}],"*refund":[{"FilterIDs":null,"Tenant":""}],"*rerate":[{"FilterIDs":null,"Tenant":""}],"*stats":[{"FilterIDs":null,"Tenant":""}],"*store":[{"FilterIDs":null,"Tenant":""}],"*thresholds":[{"FilterIDs":null,"Tenant":""}]},"rates_conns":[],"session_cost_retries":5,"stats_conns":[],"thresholds_conns":[]},"chargers":{"attributes_conns":[],"enabled":false,"exists_indexed_fields":[],"indexed_selects":true,"nested_fields":false,"notexists_indexed_fields":[],"prefix_indexed_fields":[],"suffix_indexed_fields":[]},"config_db":{"db_host":"","db_name":"","db_password":"","db_port":0,"db_type":"*internal","db_user":"","opts":{"mongoConnScheme":"mongodb","mongoQueryTimeout":"10s","redisCACertificate":"","redisClientCertificate":"","redisClientKey":"","redisCluster":false,"redisClusterOndownDelay":"0s","redisClusterSync":"5s","redisConnectAttempts":20,"redisConnectTimeout":"0s","redisMaxConns":10,"redisReadTimeout":"0s","redisSentinel":"","redisTLS":false,"redisWriteTimeout":"0s"}},"configs":{"enabled":false,"root_dir":"/var/spool/cgrates/configs","url":"/configs/"},"cores":{"caps":0,"caps_stats_interval":"0","caps_strategy":"*busy","ees_conns":[],"shutdown_timeout":"1s"},"data_db":{"db_host":"127.0.0.1","db_name":"10","db_password":"","db_port":6379,"db_type":"*redis","db_user":"cgrates","items":{"*account_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*accounts":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*action_profile_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*action_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*actions":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*attribute_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*attribute_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*charger_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*charger_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*filters":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*load_ids":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*ranking_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*rankings":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*rate_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*rate_profile_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*rate_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*resource_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*resource_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*resources":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*reverse_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*route_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*route_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*stat_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*statqueue_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*statqueues":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*threshold_filter_indexes":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*threshold_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*thresholds":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*trend_profiles":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*trends":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false},"*versions":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false}},"opts":{"mongoConnScheme":"mongodb","mongoQueryTimeout":"10s","redisCACertificate":"","redisClientCertificate":"","redisClientKey":"","redisCluster":false,"redisClusterOndownDelay":"0s","redisClusterSync":"5s","redisConnectAttempts":20,"redisConnectTimeout":"0s","redisMaxConns":10,"redisPoolPipelineLimit":0,"redisPoolPipelineWindow":"150µs","redisReadTimeout":"0s","redisSentinel":"","redisTLS":false,"redisWriteTimeout":"0s"},"remote_conn_id":"","remote_conns":[],"replication_cache":"","replication_conns":[],"replication_filtered":false},"diameter_agent":{"asr_template":"","dictionaries_path":"/usr/share/cgrates/diameter/dict/","enabled":false,"forced_disconnect":"*none","listen":"127.0.0.1:3868","listen_net":"tcp","origin_host":"CGR-DA","origin_realm":"cgrates.org","product_name":"CGRateS","rar_template":"","request_processors":[],"sessions_conns":["*birpc_internal"],"synced_conn_requests":false,"vendor_id":0},"dns_agent":{"enabled":false,"listeners":[{"address":"127.0.0.1:53","network":"udp"}],"request_processors":[],"sessions_conns":["*internal"],"timezone":""},"ees":{"attributes_conns":[],"cache":{"*fileCSV":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"}},"enabled":false,"exporters":[{"attempts":1,"attribute_context":"","attribute_ids":[],"blocker":false,"concurrent_requests":0,"efs_conns":["*internal"],"export_path":"/var/spool/cgrates/ees","failed_posts_dir":"/var/spool/cgrates/failed_posts","fields":[],"filters":[],"flags":[],"id":"*default","opts":{},"synchronous":false,"timezone":"","type":"*none"}]},"efs":{"enabled":false,"failed_posts_dir":"/var/spool/cgrates/failed_posts","failed_posts_ttl":"5s","poster_attempts":3},"ers":{"enabled":false,"partial_cache_ttl":"1s","readers":[{"cache_dump_fields":[],"concurrent_requests":1024,"fields":[{"mandatory":true,"path":"*cgreq.ToR","tag":"ToR","type":"*variable","value":"~*req.2"},{"mandatory":true,"path":"*cgreq.OriginID","tag":"OriginID","type":"*variable","value":"~*req.3"},{"mandatory":true,"path":"*cgreq.RequestType","tag":"RequestType","type":"*variable","value":"~*req.4"},{"mandatory":true,"path":"*cgreq.Tenant","tag":"Tenant","type":"*variable","value":"~*req.6"},{"mandatory":true,"path":"*cgreq.Category","tag":"Category","type":"*variable","value":"~*req.7"},{"mandatory":true,"path":"*cgreq.Account","tag":"Account","type":"*variable","value":"~*req.8"},{"mandatory":true,"path":"*cgreq.Subject","tag":"Subject","type":"*variable","value":"~*req.9"},{"mandatory":true,"path":"*cgreq.Destination","tag":"Destination","type":"*variable","value":"~*req.10"},{"mandatory":true,"path":"*cgreq.SetupTime","tag":"SetupTime","type":"*variable","value":"~*req.11"},{"mandatory":true,"path":"*cgreq.AnswerTime","tag":"AnswerTime","type":"*variable","value":"~*req.12"},{"mandatory":true,"path":"*cgreq.Usage","tag":"Usage","type":"*variable","value":"~*req.13"}],"filters":[],"flags":[],"id":"*default","max_reconnect_interval":"5m0s","opts":{"csvFieldSeparator":",","csvHeaderDefineChar":":","csvRowLength":0,"natsSubject":"cgrates_cdrs","partialCacheAction":"*none","partialOrderField":"~*req.AnswerTime"},"partial_commit_fields":[],"processed_path":"/var/spool/cgrates/ers/out","reconnects":-1,"run_delay":"0","source_path":"/var/spool/cgrates/ers/in","start_delay":"0","tenant":"","timezone":"","type":"*none"}],"sessions_conns":["*internal"]},"filters":{"accounts_conns":[],"rankings_conns":[],"resources_conns":[],"stats_conns":[],"trends_conns":[]},"freeswitch_agent":{"active_session_delimiter":",","create_cdr":false,"empty_balance_ann_file":"","empty_balance_context":"","enabled":false,"event_socket_conns":[{"address":"127.0.0.1:8021","alias":"127.0.0.1:8021","max_reconnect_interval":"0s","password":"ClueCon","reconnects":5,"reply_timeout":"1m0s"}],"extra_fields":[],"low_balance_ann_file":"","max_wait_connection":"2s","sessions_conns":["*birpc_internal"],"subscribe_park":true},"general":{"caching_delay":"0","connect_attempts":5,"connect_timeout":"1s","dbdata_encoding":"*msgpack","decimal_max_scale":0,"decimal_min_scale":0,"decimal_precision":0,"decimal_rounding_mode":"*toNearestEven","default_caching":"*reload","default_category":"call","default_request_type":"*rated","default_tenant":"cgrates.org","default_timezone":"Local","digest_equal":":","digest_separator":",","locking_timeout":"0","max_parallel_conns":100,"max_reconnect_interval":"0","node_id":"ENGINE1","opts":{"*exporterIDs":[]},"reconnects":-1,"reply_timeout":"2s","rounding_decimals":5,"tpexport_dir":"/var/spool/cgrates/tpe"},"http":{"auth_users":{},"client_opts":{"dialFallbackDelay":"300ms","dialKeepAlive":"30s","dialTimeout":"30s","disableCompression":false,"disableKeepAlives":false,"expectContinueTimeout":"0s","forceAttemptHttp2":true,"idleConnTimeout":"1m30s","maxConnsPerHost":0,"maxIdleConns":100,"maxIdleConnsPerHost":2,"responseHeaderTimeout":"0s","skipTLSVerification":false,"tlsHandshakeTimeout":"10s"},"freeswitch_cdrs_url":"/freeswitch_json","http_cdrs":"/cdr_http","json_rpc_url":"/jsonrpc","pprof_path":"/debug/pprof/","prometheus_url":"/prometheus","registrars_url":"/registrar","use_basic_auth":false,"ws_url":"/ws"},"http_agent":[],"janus_agent":{"enabled":false,"janus_conns":[{"address":"127.0.0.1:8088","admin_address":"localhost:7188","admin_password":"","type":"*ws"}],"request_processors":[],"sessions_conns":["*internal"],"url":"/janus"},"kamailio_agent":{"create_cdr":false,"enabled":false,"evapi_conns":[{"address":"127.0.0.1:8448","alias":"","max_reconnect_interval":"0s","reconnects":5}],"sessions_conns":["*birpc_internal"],"timezone":""},"listen":{"http":"127.0.0.1:2080","http_tls":"127.0.0.1:2280","rpc_gob":"127.0.0.1:2013","rpc_gob_tls":"127.0.0.1:2023","rpc_json":"127.0.0.1:2012","rpc_json_tls":"127.0.0.1:2022"},"loader":{"actions_conns":["*localhost"],"caches_conns":["*localhost"],"data_path":"./","disable_reverse":false,"field_separator":",","gapi_credentials":".gapi/credentials.json","gapi_token":".gapi/token.json","tpid":""},"loaders":[{"action":"*store","cache":{"*accounts":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*action_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*attributes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*chargers":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*filters":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*rankings":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*rate_profiles":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*resources":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*routes":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*stats":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*thresholds":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"},"*trends":{"limit":-1,"precache":false,"remote":false,"replicate":false,"static_ttl":false,"ttl":"5s"}},"caches_conns":["*internal"],"data":[{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"new_branch":true,"path":"Rules.Type","tag":"Type","type":"*variable","value":"~*req.2"},{"path":"Rules.Element","tag":"Element","type":"*variable","value":"~*req.3"},{"path":"Rules.Values","tag":"Values","type":"*variable","value":"~*req.4"}],"file_name":"Filters.csv","flags":null,"type":"*filters"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"TenantID","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ProfileID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"Weights","tag":"Weights","type":"*variable","value":"~*req.3"},{"path":"Blockers","tag":"Blockers","type":"*variable","value":"~*req.4"},{"new_branch":true,"path":"Attributes.FilterIDs","tag":"AttributeFilterIDs","type":"*variable","value":"~*req.5"},{"path":"Attributes.Blockers","tag":"AttributeBlockers","type":"*variable","value":"~*req.6"},{"path":"Attributes.Path","tag":"Path","type":"*variable","value":"~*req.7"},{"path":"Attributes.Type","tag":"Type","type":"*variable","value":"~*req.8"},{"path":"Attributes.Value","tag":"Value","type":"*variable","value":"~*req.9"}],"file_name":"Attributes.csv","flags":null,"type":"*attributes"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"Weights","tag":"Weights","type":"*variable","value":"~*req.3"},{"path":"UsageTTL","tag":"TTL","type":"*variable","value":"~*req.4"},{"path":"Limit","tag":"Limit","type":"*variable","value":"~*req.5"},{"path":"AllocationMessage","tag":"AllocationMessage","type":"*variable","value":"~*req.6"},{"path":"Blocker","tag":"Blocker","type":"*variable","value":"~*req.7"},{"path":"Stored","tag":"Stored","type":"*variable","value":"~*req.8"},{"path":"ThresholdIDs","tag":"ThresholdIDs","type":"*variable","value":"~*req.9"}],"file_name":"Resources.csv","flags":null,"type":"*resources"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"Weights","tag":"Weights","type":"*variable","value":"~*req.3"},{"path":"Blockers","tag":"Blockers","type":"*variable","value":"~*req.4"},{"path":"QueueLength","tag":"QueueLength","type":"*variable","value":"~*req.5"},{"path":"TTL","tag":"TTL","type":"*variable","value":"~*req.6"},{"path":"MinItems","tag":"MinItems","type":"*variable","value":"~*req.7"},{"path":"Stored","tag":"Stored","type":"*variable","value":"~*req.8"},{"path":"ThresholdIDs","tag":"ThresholdIDs","type":"*variable","value":"~*req.9"},{"new_branch":true,"path":"Metrics.MetricID","tag":"MetricIDs","type":"*variable","value":"~*req.10"},{"path":"Metrics.FilterIDs","tag":"MetricFilterIDs","type":"*variable","value":"~*req.11"},{"path":"Metrics.Blockers","tag":"MetricBlockers","type":"*variable","value":"~*req.12"}],"file_name":"Stats.csv","flags":null,"type":"*stats"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"Weights","tag":"Weights","type":"*variable","value":"~*req.3"},{"path":"MaxHits","tag":"MaxHits","type":"*variable","value":"~*req.4"},{"path":"MinHits","tag":"MinHits","type":"*variable","value":"~*req.5"},{"path":"MinSleep","tag":"MinSleep","type":"*variable","value":"~*req.6"},{"path":"Blocker","tag":"Blocker","type":"*variable","value":"~*req.7"},{"path":"ActionProfileIDs","tag":"ActionProfileIDs","type":"*variable","value":"~*req.8"},{"path":"Async","tag":"Async","type":"*variable","value":"~*req.9"}],"file_name":"Thresholds.csv","flags":null,"type":"*thresholds"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"Schedule","tag":"Schedule","type":"*variable","value":"~*req.2"},{"path":"StatID","tag":"StatID","type":"*variable","value":"~*req.3"},{"path":"Metrics","tag":"Metrics","type":"*variable","value":"~*req.4"},{"path":"TTL","tag":"TTL","type":"*variable","value":"~*req.5"},{"path":"QueueLength","tag":"QueueLength","type":"*variable","value":"~*req.6"},{"path":"MinItems","tag":"MinItems","type":"*variable","value":"~*req.7"},{"path":"CorrelationType","tag":"CorrelationType","type":"*variable","value":"~*req.8"},{"path":"Tolerance","tag":"Tolerance","type":"*variable","value":"~*req.9"},{"path":"Stored","tag":"Stored","type":"*variable","value":"~*req.10"},{"path":"ThresholdIDs","tag":"ThresholdIDs","type":"*variable","value":"~*req.11"}],"file_name":"Trends.csv","flags":null,"type":"*trends"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"Schedule","tag":"Schedule","type":"*variable","value":"~*req.2"},{"path":"StatIDs","tag":"StatIDs","type":"*variable","value":"~*req.3"},{"path":"MetricIDs","tag":"MetricIDs","type":"*variable","value":"~*req.4"},{"path":"Sorting","tag":"Sorting","type":"*variable","value":"~*req.5"},{"path":"SortingParameters","tag":"SortingParameters","type":"*variable","value":"~*req.6"},{"path":"Stored","tag":"Stored","type":"*variable","value":"~*req.7"},{"path":"ThresholdIDs","tag":"ThresholdIDs","type":"*variable","value":"~*req.8"}],"file_name":"Rankings.csv","flags":null,"type":"*rankings"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"Weights","tag":"Weights","type":"*variable","value":"~*req.3"},{"path":"Blockers","tag":"Blockers","type":"*variable","value":"~*req.4"},{"path":"Sorting","tag":"Sorting","type":"*variable","value":"~*req.5"},{"path":"SortingParameters","tag":"SortingParameters","type":"*variable","value":"~*req.6"},{"new_branch":true,"path":"Routes.ID","tag":"RouteID","type":"*variable","value":"~*req.7"},{"path":"Routes.FilterIDs","tag":"RouteFilterIDs","type":"*variable","value":"~*req.8"},{"path":"Routes.AccountIDs","tag":"RouteAccountIDs","type":"*variable","value":"~*req.9"},{"path":"Routes.RateProfileIDs","tag":"RouteRateProfileIDs","type":"*variable","value":"~*req.10"},{"path":"Routes.ResourceIDs","tag":"RouteResourceIDs","type":"*variable","value":"~*req.11"},{"path":"Routes.StatIDs","tag":"RouteStatIDs","type":"*variable","value":"~*req.12"},{"path":"Routes.Weights","tag":"RouteWeights","type":"*variable","value":"~*req.13"},{"path":"Routes.Blockers","tag":"RouteBlockers","type":"*variable","value":"~*req.14"},{"path":"Routes.RouteParameters","tag":"RouteParameters","type":"*variable","value":"~*req.15"}],"file_name":"Routes.csv","flags":null,"type":"*routes"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"Weights","tag":"Weights","type":"*variable","value":"~*req.3"},{"path":"Blockers","tag":"Blockers","type":"*variable","value":"~*req.4"},{"path":"RunID","tag":"RunID","type":"*variable","value":"~*req.5"},{"path":"AttributeIDs","tag":"AttributeIDs","type":"*variable","value":"~*req.6"}],"file_name":"Chargers.csv","flags":null,"type":"*chargers"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"Weights","tag":"Weights","type":"*variable","value":"~*req.3"},{"path":"MinCost","tag":"MinCost","type":"*variable","value":"~*req.4"},{"path":"MaxCost","tag":"MaxCost","type":"*variable","value":"~*req.5"},{"path":"MaxCostStrategy","tag":"MaxCostStrategy","type":"*variable","value":"~*req.6"},{"filters":["*notempty:~*req.7:"],"path":"Rates[\u003c~*req.7\u003e].FilterIDs","tag":"RateFilterIDs","type":"*variable","value":"~*req.8"},{"filters":["*notempty:~*req.7:"],"path":"Rates[\u003c~*req.7\u003e].ActivationTimes","tag":"RateActivationTimes","type":"*variable","value":"~*req.9"},{"filters":["*notempty:~*req.7:"],"path":"Rates[\u003c~*req.7\u003e].Weights","tag":"RateWeights","type":"*variable","value":"~*req.10"},{"filters":["*notempty:~*req.7:"],"path":"Rates[\u003c~*req.7\u003e].Blocker","tag":"RateBlocker","type":"*variable","value":"~*req.11"},{"filters":["*notempty:~*req.7:"],"new_branch":true,"path":"Rates[\u003c~*req.7\u003e].IntervalRates.IntervalStart","tag":"RateIntervalStart","type":"*variable","value":"~*req.12"},{"filters":["*notempty:~*req.7:"],"path":"Rates[\u003c~*req.7\u003e].IntervalRates.FixedFee","tag":"RateFixedFee","type":"*variable","value":"~*req.13"},{"filters":["*notempty:~*req.7:"],"path":"Rates[\u003c~*req.7\u003e].IntervalRates.RecurrentFee","tag":"RateRecurrentFee","type":"*variable","value":"~*req.14"},{"filters":["*notempty:~*req.7:"],"path":"Rates[\u003c~*req.7\u003e].IntervalRates.Unit","tag":"RateUnit","type":"*variable","value":"~*req.15"},{"filters":["*notempty:~*req.7:"],"path":"Rates[\u003c~*req.7\u003e].IntervalRates.Increment","tag":"RateIncrement","type":"*variable","value":"~*req.16"}],"file_name":"Rates.csv","flags":null,"type":"*rate_profiles"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"Weights","tag":"Weights","type":"*variable","value":"~*req.3"},{"path":"Blockers","tag":"Blockers","type":"*variable","value":"~*req.4"},{"path":"Schedule","tag":"Schedule","type":"*variable","value":"~*req.5"},{"path":"Targets[\u003c~*req.6\u003e]","tag":"TargetIDs","type":"*variable","value":"~*req.7"},{"filters":["*notempty:~*req.8:"],"path":"Actions[\u003c~*req.8\u003e].FilterIDs","tag":"ActionFilterIDs","type":"*variable","value":"~*req.9"},{"filters":["*notempty:~*req.8:"],"path":"Actions[\u003c~*req.8\u003e].TTL","tag":"ActionTTL","type":"*variable","value":"~*req.10"},{"filters":["*notempty:~*req.8:"],"path":"Actions[\u003c~*req.8\u003e].Type","tag":"ActionType","type":"*variable","value":"~*req.11"},{"filters":["*notempty:~*req.8:"],"path":"Actions[\u003c~*req.8\u003e].Opts","tag":"ActionOpts","type":"*variable","value":"~*req.12"},{"filters":["*notempty:~*req.8:"],"new_branch":true,"path":"Actions[\u003c~*req.8\u003e].Diktats.Path","tag":"ActionPath","type":"*variable","value":"~*req.13"},{"filters":["*notempty:~*req.8:"],"path":"Actions[\u003c~*req.8\u003e].Diktats.Value","tag":"ActionValue","type":"*variable","value":"~*req.14"}],"file_name":"Actions.csv","flags":null,"type":"*action_profiles"},{"fields":[{"mandatory":true,"path":"Tenant","tag":"Tenant","type":"*variable","value":"~*req.0"},{"mandatory":true,"path":"ID","tag":"ID","type":"*variable","value":"~*req.1"},{"path":"FilterIDs","tag":"FilterIDs","type":"*variable","value":"~*req.2"},{"path":"Weights","tag":"Weights","type":"*variable","value":"~*req.3"},{"path":"Blockers","tag":"Blockers","type":"*variable","value":"~*req.4"},{"path":"Opts","tag":"Opts","type":"*variable","value":"~*req.5"},{"filters":["*notempty:~*req.6:"],"path":"Balances[\u003c~*req.6\u003e].FilterIDs","tag":"BalanceFilterIDs","type":"*variable","value":"~*req.7"},{"filters":["*notempty:~*req.6:"],"path":"Balances[\u003c~*req.6\u003e].Weights","tag":"BalanceWeights","type":"*variable","value":"~*req.8"},{"filters":["*notempty:~*req.6:"],"path":"Balances[\u003c~*req.6\u003e].Blockers","tag":"BalanceBlockers","type":"*variable","value":"~*req.9"},{"filters":["*notempty:~*req.6:"],"path":"Balances[\u003c~*req.6\u003e].Type","tag":"BalanceType","type":"*variable","value":"~*req.10"},{"filters":["*notempty:~*req.6:"],"path":"Balances[\u003c~*req.6\u003e].Units","tag":"BalanceUnits","type":"*variable","value":"~*req.11"},{"filters":["*notempty:~*req.6:"],"path":"Balances[\u003c~*req.6\u003e].UnitFactors","tag":"BalanceUnitFactors","type":"*variable","value":"~*req.12"},{"filters":["*notempty:~*req.6:"],"path":"Balances[\u003c~*req.6\u003e].Opts","tag":"BalanceOpts","type":"*variable","value":"~*req.13"},{"filters":["*notempty:~*req.6:"],"path":"Balances[\u003c~*req.6\u003e].CostIncrements","tag":"BalanceCostIncrements","type":"*variable","value":"~*req.14"},{"filters":["*notempty:~*req.6:"],"path":"Balances[\u003c~*req.6\u003e].AttributeIDs","tag":"BalanceAttributeIDs","type":"*variable","value":"~*req.15"},{"filters":["*notempty:~*req.6:"],"path":"Balances[\u003c~*req.6\u003e].RateProfileIDs","tag":"BalanceRateProfileIDs","type":"*variable","value":"~*req.16"},{"path":"ThresholdIDs","tag":"ThresholdIDs","type":"*variable","value":"~*req.17"}],"file_name":"Accounts.csv","flags":null,"type":"*accounts"}],"enabled":false,"field_separator":",","id":"*default","lockfile_path":".cgr.lck","opts":{"*cache":"","*forceLock":false,"*stopOnError":false,"*withIndex":true},"run_delay":"0","tenant":"","tp_in_dir":"/var/spool/cgrates/loader/in","tp_out_dir":"/var/spool/cgrates/loader/out"}],"logger":{"efs_conns":["*internal"],"level":6,"opts":{"failed_posts_dir":"/var/spool/cgrates/failed_posts","kafka_attempts":1,"kafka_conn":"","kafka_topic":""},"type":"*syslog"},"migrator":{"out_datadb_encoding":"msgpack","out_datadb_host":"127.0.0.1","out_datadb_name":"10","out_datadb_opts":{"mongoConnScheme":"mongodb","mongoQueryTimeout":"10s","redisCACertificate":"","redisClientCertificate":"","redisClientKey":"","redisCluster":false,"redisClusterOndownDelay":"0s","redisClusterSync":"5s","redisConnectAttempts":20,"redisConnectTimeout":"0s","redisMaxConns":10,"redisPoolPipelineLimit":0,"redisPoolPipelineWindow":"150µs","redisReadTimeout":"0s","redisSentinel":"","redisTLS":false,"redisWriteTimeout":"0s"},"out_datadb_password":"","out_datadb_port":"6379","out_datadb_type":"*redis","out_datadb_user":"cgrates","users_filters":null},"radius_agent":{"client_dictionaries":{"*default":"/usr/share/cgrates/radius/dict/"},"client_secrets":{"*default":"CGRateS.org"},"enabled":false,"listen_acct":"127.0.0.1:1813","listen_auth":"127.0.0.1:1812","listen_net":"udp","request_processors":[],"sessions_conns":["*internal"]},"rankings":{"ees_conns":[],"ees_exporter_ids":null,"enabled":false,"scheduled_ids":{},"stats_conns":[],"store_interval":"","thresholds_conns":[]},"rates":{"enabled":false,"exists_indexed_fields":[],"indexed_selects":true,"nested_fields":false,"notexists_indexed_fields":[],"opts":{"*intervalStart":[{"FilterIDs":null,"Tenant":""}],"*profileIDs":[],"*profileIgnoreFilters":[{"FilterIDs":null,"Tenant":""}],"*startTime":[{"FilterIDs":null,"Tenant":""}],"*usage":[{"FilterIDs":null,"Tenant":""}]},"prefix_indexed_fields":[],"rate_exists_indexed_fields":[],"rate_indexed_selects":true,"rate_nested_fields":false,"rate_notexists_indexed_fields":[],"rate_prefix_indexed_fields":[],"rate_suffix_indexed_fields":[],"suffix_indexed_fields":[],"verbosity":1000},"registrarc":{"rpc":{"hosts":[],"refresh_interval":"5m0s","registrars_conns":[]}},"resources":{"enabled":false,"exists_indexed_fields":[],"indexed_selects":true,"nested_fields":false,"notexists_indexed_fields":[],"opts":{"*units":[{"FilterIDs":null,"Tenant":""}],"*usageID":[{"FilterIDs":null,"Tenant":""}],"*usageTTL":[{"FilterIDs":null,"Tenant":""}]},"prefix_indexed_fields":[],"store_interval":"","suffix_indexed_fields":[],"thresholds_conns":[]},"routes":{"accounts_conns":[],"attributes_conns":[],"default_ratio":1,"enabled":false,"exists_indexed_fields":[],"indexed_selects":true,"nested_fields":false,"notexists_indexed_fields":[],"opts":{"*context":[{"FilterIDs":null,"Tenant":""}],"*ignoreErrors":[{"FilterIDs":null,"Tenant":""}],"*limit":[],"*maxCost":[{"Tenant":"","Value":""}],"*maxItems":[],"*offset":[],"*profileCount":[{"FilterIDs":null,"Tenant":""}],"*usage":[{"FilterIDs":null,"Tenant":""}]},"prefix_indexed_fields":[],"rates_conns":[],"resources_conns":[],"stats_conns":[],"suffix_indexed_fields":[]},"rpc_conns":{"*bijson_localhost":{"conns":[{"address":"127.0.0.1:2014","transport":"*birpc_json"}],"poolSize":0,"strategy":"*first"},"*birpc_internal":{"conns":[{"address":"*birpc_internal","transport":""}],"poolSize":0,"strategy":"*first"},"*internal":{"conns":[{"address":"*internal","transport":""}],"poolSize":0,"strategy":"*first"},"*localhost":{"conns":[{"address":"127.0.0.1:2012","transport":"*json"}],"poolSize":0,"strategy":"*first"}},"sentrypeer":{"audience":"https://sentrypeer.com/api","client_id":"","client_secret":"","grant_type":"client_credentials","ips_url":"https://sentrypeer.com/api/ip-addresses","numbers_url":"https://sentrypeer.com/api/phone-numbers","token_url":"https://authz.sentrypeer.com/oauth/token"},"sessions":{"accounts_conns":[],"actions_conns":[],"alterable_fields":[],"attributes_conns":[],"cdrs_conns":[],"channel_sync_interval":"0","chargers_conns":[],"client_protocol":1,"default_usage":{"*any":"3h0m0s","*data":"1048576","*sms":"1","*voice":"3h0m0s"},"enabled":false,"listen_bigob":"","listen_bijson":"127.0.0.1:2014","min_dur_low_balance":"0","opts":{"*accounts":[{"FilterIDs":null,"Tenant":""}],"*accountsForceUsage":[],"*attributes":[{"FilterIDs":null,"Tenant":""}],"*attributesDerivedReply":[{"FilterIDs":null,"Tenant":""}],"*blockerError":[{"FilterIDs":null,"Tenant":""}],"*cdrs":[{"FilterIDs":null,"Tenant":""}],"*cdrsDerivedReply":[{"FilterIDs":null,"Tenant":""}],"*chargeable":[{"FilterIDs":null,"Tenant":""}],"*chargers":[{"FilterIDs":null,"Tenant":""}],"*debitInterval":[{"FilterIDs":null,"Tenant":""}],"*forceUsage":[],"*initiate":[{"FilterIDs":null,"Tenant":""}],"*maxUsage":[{"FilterIDs":null,"Tenant":""}],"*message":[{"FilterIDs":null,"Tenant":""}],"*originID":[],"*resources":[{"FilterIDs":null,"Tenant":""}],"*resourcesAllocate":[{"FilterIDs":null,"Tenant":""}],"*resourcesAuthorize":[{"FilterIDs":null,"Tenant":""}],"*resourcesDerivedReply":[{"FilterIDs":null,"Tenant":""}],"*resourcesRelease":[{"FilterIDs":null,"Tenant":""}],"*routes":[{"FilterIDs":null,"Tenant":""}],"*routesDerivedReply":[{"FilterIDs":null,"Tenant":""}],"*stats":[{"FilterIDs":null,"Tenant":""}],"*statsDerivedReply":[{"FilterIDs":null,"Tenant":""}],"*terminate":[{"FilterIDs":null,"Tenant":""}],"*thresholds":[{"FilterIDs":null,"Tenant":""}],"*thresholdsDerivedReply":[{"FilterIDs":null,"Tenant":""}],"*ttl":[{"FilterIDs":null,"Tenant":""}],"*ttlLastUsage":[],"*ttlLastUsed":[],"*ttlMaxDelay":[{"FilterIDs":null,"Tenant":""}],"*ttlUsage":[],"*update":[{"FilterIDs":null,"Tenant":""}]},"rates_conns":[],"replication_conns":[],"resources_conns":[],"routes_conns":[],"session_indexes":[],"stats_conns":[],"stir":{"allowed_attest":["*any"],"default_attest":"A","payload_maxduration":"-1","privatekey_path":"","publickey_path":""},"store_session_costs":false,"terminate_attempts":5,"thresholds_conns":[]},"sip_agent":{"enabled":false,"listen":"127.0.0.1:5060","listen_net":"udp","request_processors":[],"retransmission_timer":"1s","sessions_conns":["*internal"],"timezone":""},"stats":{"ees_conns":[],"ees_exporter_ids":null,"enabled":false,"exists_indexed_fields":[],"indexed_selects":true,"nested_fields":false,"notexists_indexed_fields":[],"opts":{"*profileIDs":[],"*profileIgnoreFilters":[{"FilterIDs":null,"Tenant":""}],"*prometheusStatIDs":[],"*roundingDecimals":[]},"prefix_indexed_fields":[],"store_interval":"","store_uncompressed_limit":0,"suffix_indexed_fields":[],"thresholds_conns":[]},"stor_db":{"db_host":"127.0.0.1","db_name":"cgrates","db_password":"CGRateS.org","db_port":3306,"db_type":"**mysql","db_user":"cgrates","items":{"*cdrs":{"limit":-1,"remote":false,"replicate":false,"static_ttl":false}},"opts":{"mongoConnScheme":"mongodb","mongoQueryTimeout":"10s","mysqlDSNParams":{},"mysqlLocation":"Local","pgSSLMode":"disable","sqlConnMaxLifetime":"0s","sqlMaxIdleConns":10,"sqlMaxOpenConns":100},"prefix_indexed_fields":[],"remote_conns":null,"replication_conns":null,"string_indexed_fields":[]},"suretax":{"bill_to_number":"","business_unit":"","client_number":"","client_tracking":"~*opts.*originID","customer_number":"~*req.Subject","include_local_cost":false,"orig_number":"~*req.Subject","p2pplus4":"","p2pzipcode":"","plus4":"","regulatory_code":"03","response_group":"03","response_type":"D4","return_file_code":"0","sales_type_code":"R","tax_exemption_code_list":"","tax_included":"0","tax_situs_rule":"04","term_number":"~*req.Destination","timezone":"UTC","trans_type_code":"010101","unit_type":"00","units":"1","url":"","validation_key":"","zipcode":""},"templates":{"*asr":[{"mandatory":true,"path":"*diamreq.Session-Id","tag":"SessionId","type":"*variable","value":"~*req.Session-Id"},{"mandatory":true,"path":"*diamreq.Origin-Host","tag":"OriginHost","type":"*variable","value":"~*req.Destination-Host"},{"mandatory":true,"path":"*diamreq.Origin-Realm","tag":"OriginRealm","type":"*variable","value":"~*req.Destination-Realm"},{"mandatory":true,"path":"*diamreq.Destination-Realm","tag":"DestinationRealm","type":"*variable","value":"~*req.Origin-Realm"},{"mandatory":true,"path":"*diamreq.Destination-Host","tag":"DestinationHost","type":"*variable","value":"~*req.Origin-Host"},{"mandatory":true,"path":"*diamreq.Auth-Application-Id","tag":"AuthApplicationId","type":"*variable","value":"~*vars.*appid"}],"*cca":[{"mandatory":true,"path":"*rep.Session-Id","tag":"SessionId","type":"*variable","value":"~*req.Session-Id"},{"path":"*rep.Result-Code","tag":"ResultCode","type":"*constant","value":"2001"},{"mandatory":true,"path":"*rep.Origin-Host","tag":"OriginHost","type":"*variable","value":"~*vars.OriginHost"},{"mandatory":true,"path":"*rep.Origin-Realm","tag":"OriginRealm","type":"*variable","value":"~*vars.OriginRealm"},{"mandatory":true,"path":"*rep.Auth-Application-Id","tag":"AuthApplicationId","type":"*variable","value":"~*vars.*appid"},{"mandatory":true,"path":"*rep.CC-Request-Type","tag":"CCRequestType","type":"*variable","value":"~*req.CC-Request-Type"},{"mandatory":true,"path":"*rep.CC-Request-Number","tag":"CCRequestNumber","type":"*variable","value":"~*req.CC-Request-Number"}],"*cdrLog":[{"mandatory":true,"path":"*cdr.ToR","tag":"ToR","type":"*variable","value":"~*req.BalanceType"},{"mandatory":true,"path":"*cdr.OriginHost","tag":"OriginHost","type":"*constant","value":"127.0.0.1"},{"mandatory":true,"path":"*cdr.RequestType","tag":"RequestType","type":"*constant","value":"*none"},{"mandatory":true,"path":"*cdr.Tenant","tag":"Tenant","type":"*variable","value":"~*req.Tenant"},{"mandatory":true,"path":"*cdr.Account","tag":"Account","type":"*variable","value":"~*req.Account"},{"mandatory":true,"path":"*cdr.Subject","tag":"Subject","type":"*variable","value":"~*req.Account"},{"mandatory":true,"path":"*cdr.Cost","tag":"Cost","type":"*variable","value":"~*req.Cost"},{"mandatory":true,"path":"*cdr.Source","tag":"Source","type":"*constant","value":"*cdrLog"},{"mandatory":true,"path":"*cdr.Usage","tag":"Usage","type":"*constant","value":"1"},{"mandatory":true,"path":"*cdr.RunID","tag":"RunID","type":"*variable","value":"~*req.ActionType"},{"mandatory":true,"path":"*cdr.SetupTime","tag":"SetupTime","type":"*constant","value":"*now"},{"mandatory":true,"path":"*cdr.AnswerTime","tag":"AnswerTime","type":"*constant","value":"*now"},{"mandatory":true,"path":"*cdr.PreRated","tag":"PreRated","type":"*constant","value":"true"}],"*err":[{"mandatory":true,"path":"*rep.Session-Id","tag":"SessionId","type":"*variable","value":"~*req.Session-Id"},{"mandatory":true,"path":"*rep.Origin-Host","tag":"OriginHost","type":"*variable","value":"~*vars.OriginHost"},{"mandatory":true,"path":"*rep.Origin-Realm","tag":"OriginRealm","type":"*variable","value":"~*vars.OriginRealm"}],"*errSip":[{"mandatory":true,"path":"*rep.Request","tag":"Request","type":"*constant","value":"SIP/2.0 500 Internal Server Error"}],"*rar":[{"mandatory":true,"path":"*diamreq.Session-Id","tag":"SessionId","type":"*variable","value":"~*req.Session-Id"},{"mandatory":true,"path":"*diamreq.Origin-Host","tag":"OriginHost","type":"*variable","value":"~*req.Destination-Host"},{"mandatory":true,"path":"*diamreq.Origin-Realm","tag":"OriginRealm","type":"*variable","value":"~*req.Destination-Realm"},{"mandatory":true,"path":"*diamreq.Destination-Realm","tag":"DestinationRealm","type":"*variable","value":"~*req.Origin-Realm"},{"mandatory":true,"path":"*diamreq.Destination-Host","tag":"DestinationHost","type":"*variable","value":"~*req.Origin-Host"},{"mandatory":true,"path":"*diamreq.Auth-Application-Id","tag":"AuthApplicationId","type":"*variable","value":"~*vars.*appid"},{"path":"*diamreq.Re-Auth-Request-Type","tag":"ReAuthRequestType","type":"*constant","value":"0"}]},"thresholds":{"actions_conns":[],"enabled":false,"exists_indexed_fields":[],"indexed_selects":true,"nested_fields":false,"notexists_indexed_fields":[],"opts":{"*profileIDs":[],"*profileIgnoreFilters":[{"FilterIDs":null,"Tenant":""}]},"prefix_indexed_fields":[],"store_interval":"","suffix_indexed_fields":[]},"tls":{"ca_certificate":"","client_certificate":"","client_key":"","server_certificate":"","server_key":"","server_name":"","server_policy":4},"tpes":{"enabled":false},"trends":{"ees_conns":[],"ees_exporter_ids":null,"enabled":false,"scheduled_ids":{},"stats_conns":[],"store_interval":"","store_uncompressed_limit":0,"thresholds_conns":[]}}`
cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSON)
if err != nil {
@@ -5313,8 +5312,8 @@ func TestCGRConfigClone(t *testing.T) {
rcv.rldCh = nil
cfg.lks = nil
rcv.lks = nil
- if !reflect.DeepEqual(cfg.AsMapInterface(utils.InfieldSep),
- rcv.AsMapInterface(utils.InfieldSep)) {
+ if !reflect.DeepEqual(cfg.AsMapInterface(),
+ rcv.AsMapInterface()) {
t.Errorf("Expected: %+v\nReceived: %+v", utils.ToJSON(cfg), utils.ToJSON(rcv))
}
if !reflect.DeepEqual(cfg.loaderCfg, rcv.loaderCfg) {
@@ -5344,11 +5343,11 @@ func TestCGRConfigClone(t *testing.T) {
if !reflect.DeepEqual(cfg.listenCfg, rcv.listenCfg) {
t.Errorf("Expected: %+v\nReceived: %+v", utils.ToJSON(cfg.listenCfg), utils.ToJSON(rcv.listenCfg))
}
- if !reflect.DeepEqual(cfg.httpCfg.AsMapInterface(utils.InfieldSep),
- rcv.httpCfg.AsMapInterface(utils.InfieldSep)) {
+ if !reflect.DeepEqual(cfg.httpCfg.AsMapInterface(),
+ rcv.httpCfg.AsMapInterface()) {
t.Errorf("Expected: %+v\nReceived: %+v",
- utils.ToJSON(cfg.httpCfg.AsMapInterface(utils.InfieldSep)),
- utils.ToJSON(rcv.httpCfg.AsMapInterface(utils.InfieldSep)))
+ utils.ToJSON(cfg.httpCfg.AsMapInterface()),
+ utils.ToJSON(rcv.httpCfg.AsMapInterface()))
}
if !reflect.DeepEqual(cfg.filterSCfg, rcv.filterSCfg) {
t.Errorf("Expected: %+v\nReceived: %+v", utils.ToJSON(cfg.filterSCfg), utils.ToJSON(rcv.filterSCfg))
@@ -5536,7 +5535,7 @@ func TestCGRConfigGetDP(t *testing.T) {
cfg := NewDefaultCGRConfig()
cfg.LockSections(HTTPAgentJSON, LoaderJSON, ChargerSJSON)
cfg.UnlockSections(HTTPAgentJSON, LoaderJSON, ChargerSJSON)
- exp := utils.MapStorage(cfg.AsMapInterface(cfg.generalCfg.RSRSep))
+ exp := utils.MapStorage(cfg.AsMapInterface())
dp := cfg.GetDataProvider()
if !reflect.DeepEqual(dp, exp) {
t.Errorf("Expected %+v, received %+v", exp, dp)
diff --git a/config/configdbcfg.go b/config/configdbcfg.go
index ddbb81b04..b168ca289 100644
--- a/config/configdbcfg.go
+++ b/config/configdbcfg.go
@@ -105,7 +105,7 @@ func (dbcfg ConfigDBCfg) Clone() (cln *ConfigDBCfg) {
}
// AsMapInterface returns the config as a map[string]any
-func (dbcfg ConfigDBCfg) AsMapInterface(string) any {
+func (dbcfg ConfigDBCfg) AsMapInterface() any {
opts := map[string]any{
utils.RedisMaxConnsCfg: dbcfg.Opts.RedisMaxConns,
utils.RedisConnectAttemptsCfg: dbcfg.Opts.RedisConnectAttempts,
diff --git a/config/configsanity_test.go b/config/configsanity_test.go
index 687d3c0bb..58a743f07 100644
--- a/config/configsanity_test.go
+++ b/config/configsanity_test.go
@@ -1805,7 +1805,7 @@ func TestCGRConfigcheckConfigSanityAdminSErrExportersCSV(t *testing.T) {
}
// if !reflect.DeepEqual(CfgCopy, cfg) {
// t.Errorf("Expected cfg not to change, was <%+v> \nnow is <%+v>",
- // utils.ToJSON(CfgCopy.AsMapInterface(";")), utils.ToJSON(cfg.AsMapInterface(";")))
+ // utils.ToJSON(CfgCopy.AsMapInterface()), utils.ToJSON(cfg.AsMapInterface(";")))
// }
}
func TestCGRConfigcheckConfigSanityEEsCfgExportersFWV(t *testing.T) {
diff --git a/config/configscfg.go b/config/configscfg.go
index 60ce18c55..1d37f1a39 100644
--- a/config/configscfg.go
+++ b/config/configscfg.go
@@ -95,7 +95,7 @@ func handleConfigSFolder(ctx *context.Context, path string, w http.ResponseWrite
}
// convert the config into a json and send it
- if _, err := w.Write([]byte(utils.ToJSON(cfg.AsMapInterface(cfg.generalCfg.RSRSep)))); err != nil {
+ if _, err := w.Write([]byte(utils.ToJSON(cfg.AsMapInterface()))); err != nil {
utils.Logger.Warning(fmt.Sprintf("<%s> Failed to write resonse because: %s",
utils.ConfigSv1, err))
}
@@ -116,7 +116,7 @@ func handleConfigSFile(path string, w http.ResponseWriter) {
}
// AsMapInterface returns the config as a map[string]any
-func (cScfg ConfigSCfg) AsMapInterface(string) any {
+func (cScfg ConfigSCfg) AsMapInterface() any {
return map[string]any{
utils.EnabledCfg: cScfg.Enabled,
utils.URLCfg: cScfg.URL,
diff --git a/config/configscfg_test.go b/config/configscfg_test.go
index d4a331ae6..9f55844ac 100644
--- a/config/configscfg_test.go
+++ b/config/configscfg_test.go
@@ -66,7 +66,7 @@ func TestConfigsAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgsJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.configSCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.configSCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v, received %+v", eMap, rcv)
}
}
@@ -82,7 +82,7 @@ func TestConfigsAsMapInterface2(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgsJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.configSCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.configSCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v, received %+v", eMap, rcv)
}
}
diff --git a/config/corescfg.go b/config/corescfg.go
index c73dcb7b4..c5ef4f9ef 100644
--- a/config/corescfg.go
+++ b/config/corescfg.go
@@ -71,7 +71,7 @@ func (cS *CoreSCfg) loadFromJSONCfg(jsnCfg *CoreSJsonCfg) (err error) {
}
// AsMapInterface returns the config as a map[string]any
-func (cS CoreSCfg) AsMapInterface(string) any {
+func (cS CoreSCfg) AsMapInterface() any {
mp := map[string]any{
utils.CapsCfg: cS.Caps,
utils.CapsStrategyCfg: cS.CapsStrategy,
diff --git a/config/corescfg_test.go b/config/corescfg_test.go
index 01052a4df..c4dfa6206 100644
--- a/config/corescfg_test.go
+++ b/config/corescfg_test.go
@@ -94,7 +94,7 @@ func TestCoreSAsMapInterface(t *testing.T) {
t.Error(err)
} else if err := alS.Load(context.Background(), jsnCfg, nil); err != nil {
t.Error(err)
- } else if rcv := alS.AsMapInterface(""); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := alS.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected: %+v\nReceived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
eMap[utils.CapsStatsIntervalCfg] = "1s"
@@ -105,7 +105,7 @@ func TestCoreSAsMapInterface(t *testing.T) {
ShutdownTimeout: time.Second,
CapsStrategy: utils.MetaBusy,
}
- if rcv := alS.AsMapInterface(""); !reflect.DeepEqual(eMap, rcv) {
+ if rcv := alS.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected: %+v\nReceived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
diff --git a/config/datadbcfg.go b/config/datadbcfg.go
index 81de55dfa..fe5a105a5 100644
--- a/config/datadbcfg.go
+++ b/config/datadbcfg.go
@@ -307,7 +307,7 @@ func (dbcfg DataDbCfg) Clone() (cln *DataDbCfg) {
}
// AsMapInterface returns the config as a map[string]any
-func (dbcfg DataDbCfg) AsMapInterface(string) any {
+func (dbcfg DataDbCfg) AsMapInterface() any {
opts := map[string]any{
utils.RedisMaxConnsCfg: dbcfg.Opts.RedisMaxConns,
utils.RedisConnectAttemptsCfg: dbcfg.Opts.RedisConnectAttempts,
diff --git a/config/datadbcfg_test.go b/config/datadbcfg_test.go
index d2468e187..1ef4fce5d 100644
--- a/config/datadbcfg_test.go
+++ b/config/datadbcfg_test.go
@@ -544,7 +544,7 @@ func TestDataDbCfgAsMapInterface(t *testing.T) {
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
} else {
- rcv := cgrCfg.dataDbCfg.AsMapInterface("").(map[string]any)
+ rcv := cgrCfg.dataDbCfg.AsMapInterface().(map[string]any)
if !reflect.DeepEqual(eMap[utils.ItemsCfg].(map[string]any)[utils.MetaAccounts],
rcv[utils.ItemsCfg].(map[string]any)[utils.MetaAccounts]) {
t.Errorf("Expected %+v, received %+v", eMap[utils.ItemsCfg].(map[string]any)[utils.MetaAccounts],
diff --git a/config/diametercfg.go b/config/diametercfg.go
index 6e0175397..6694d49c5 100644
--- a/config/diametercfg.go
+++ b/config/diametercfg.go
@@ -49,10 +49,10 @@ func (da *DiameterAgentCfg) Load(ctx *context.Context, jsnCfg ConfigDB, cfg *CGR
if err = jsnCfg.GetSection(ctx, DiameterAgentJSON, jsnDACfg); err != nil {
return
}
- return da.loadFromJSONCfg(jsnDACfg, cfg.generalCfg.RSRSep)
+ return da.loadFromJSONCfg(jsnDACfg)
}
-func (da *DiameterAgentCfg) loadFromJSONCfg(jsnCfg *DiameterAgentJsonCfg, separator string) (err error) {
+func (da *DiameterAgentCfg) loadFromJSONCfg(jsnCfg *DiameterAgentJsonCfg) (err error) {
if jsnCfg == nil {
return nil
}
@@ -95,12 +95,12 @@ func (da *DiameterAgentCfg) loadFromJSONCfg(jsnCfg *DiameterAgentJsonCfg, separa
if jsnCfg.Forced_disconnect != nil {
da.ForcedDisconnect = *jsnCfg.Forced_disconnect
}
- da.RequestProcessors, err = appendRequestProcessors(da.RequestProcessors, jsnCfg.Request_processors, separator)
+ da.RequestProcessors, err = appendRequestProcessors(da.RequestProcessors, jsnCfg.Request_processors)
return
}
// AsMapInterface returns the config as a map[string]any
-func (da DiameterAgentCfg) AsMapInterface(separator string) any {
+func (da DiameterAgentCfg) AsMapInterface() any {
mp := map[string]any{
utils.EnabledCfg: da.Enabled,
utils.ListenNetCfg: da.ListenNet,
@@ -118,7 +118,7 @@ func (da DiameterAgentCfg) AsMapInterface(separator string) any {
requestProcessors := make([]map[string]any, len(da.RequestProcessors))
for i, item := range da.RequestProcessors {
- requestProcessors[i] = item.AsMapInterface(separator)
+ requestProcessors[i] = item.AsMapInterface()
}
mp[utils.RequestProcessorsCfg] = requestProcessors
@@ -177,7 +177,7 @@ type DiameterAgentJsonCfg struct {
Request_processors *[]*ReqProcessorJsnCfg
}
-func diffDiameterAgentJsonCfg(d *DiameterAgentJsonCfg, v1, v2 *DiameterAgentCfg, separator string) *DiameterAgentJsonCfg {
+func diffDiameterAgentJsonCfg(d *DiameterAgentJsonCfg, v1, v2 *DiameterAgentCfg) *DiameterAgentJsonCfg {
if d == nil {
d = new(DiameterAgentJsonCfg)
}
@@ -220,6 +220,6 @@ func diffDiameterAgentJsonCfg(d *DiameterAgentJsonCfg, v1, v2 *DiameterAgentCfg,
if v1.ForcedDisconnect != v2.ForcedDisconnect {
d.Forced_disconnect = utils.StringPointer(v2.ForcedDisconnect)
}
- d.Request_processors = diffReqProcessorsJsnCfg(d.Request_processors, v1.RequestProcessors, v2.RequestProcessors, separator)
+ d.Request_processors = diffReqProcessorsJsnCfg(d.Request_processors, v1.RequestProcessors, v2.RequestProcessors)
return d
}
diff --git a/config/diametercfg_test.go b/config/diametercfg_test.go
index ad6866f2d..35d252518 100644
--- a/config/diametercfg_test.go
+++ b/config/diametercfg_test.go
@@ -69,14 +69,14 @@ func TestDiameterAgentCfgloadFromJsonCfg(t *testing.T) {
},
}
jsnCfg := NewDefaultCGRConfig()
- if err := jsnCfg.diameterAgentCfg.loadFromJSONCfg(jsonCFG, jsnCfg.generalCfg.RSRSep); err != nil {
+ if err := jsnCfg.diameterAgentCfg.loadFromJSONCfg(jsonCFG); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, jsnCfg.diameterAgentCfg) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(jsnCfg.diameterAgentCfg))
}
jsonCFG = nil
- if err := jsnCfg.diameterAgentCfg.loadFromJSONCfg(jsonCFG, jsnCfg.generalCfg.RSRSep); err != nil {
+ if err := jsnCfg.diameterAgentCfg.loadFromJSONCfg(jsonCFG); err != nil {
t.Error(err)
}
}
@@ -91,7 +91,7 @@ func TestRequestProcessorloadFromJsonCfg1(t *testing.T) {
}
expected := "invalid converter terminator in rule: "
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.diameterAgentCfg.loadFromJSONCfg(cfgJSON, jsonCfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := jsonCfg.diameterAgentCfg.loadFromJSONCfg(cfgJSON); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -115,7 +115,7 @@ func TestRequestProcessorloadFromJsonCfg2(t *testing.T) {
}
if jsonCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if err := jsonCfg.diameterAgentCfg.loadFromJSONCfg(cfgJSON, jsonCfg.generalCfg.RSRSep); err != nil {
+ } else if err := jsonCfg.diameterAgentCfg.loadFromJSONCfg(cfgJSON); err != nil {
t.Error(err)
}
}
@@ -193,7 +193,7 @@ func TestDiameterAgentCfgAsMapInterface(t *testing.T) {
for _, v := range cgrCfg.diameterAgentCfg.RequestProcessors[0].RequestFields {
v.ComputePath()
}
- rcv := cgrCfg.diameterAgentCfg.AsMapInterface(utils.InfieldSep)
+ rcv := cgrCfg.diameterAgentCfg.AsMapInterface()
if !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
@@ -226,7 +226,7 @@ func TestDiameterAgentCfgAsMapInterface1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.diameterAgentCfg.AsMapInterface(cgrCfg.generalCfg.RSRSep); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.diameterAgentCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, received %+v", eMap, rcv)
}
}
@@ -327,7 +327,7 @@ func TestDiffDiameterAgentJsonCfg(t *testing.T) {
},
}
- rcv := diffDiameterAgentJsonCfg(d, v1, v2, "")
+ rcv := diffDiameterAgentJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -338,7 +338,7 @@ func TestDiffDiameterAgentJsonCfg(t *testing.T) {
{},
},
}
- rcv = diffDiameterAgentJsonCfg(d, v1, v2, "")
+ rcv = diffDiameterAgentJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
diff --git a/config/dnsagentcfg_test.go b/config/dnsagentcfg_test.go
index 969099cfa..650309b30 100644
--- a/config/dnsagentcfg_test.go
+++ b/config/dnsagentcfg_test.go
@@ -76,25 +76,25 @@ func TestDNSAgentCfgloadFromJsonCfg(t *testing.T) {
v.ComputePath()
}
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.dnsAgentCfg.loadFromJSONCfg(jsnCfg, jsonCfg.generalCfg.RSRSep); err != nil {
+ if err := jsonCfg.dnsAgentCfg.loadFromJSONCfg(jsnCfg); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(jsonCfg.dnsAgentCfg, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(jsonCfg.dnsAgentCfg))
}
jsnCfg = nil
- if err := jsonCfg.dnsAgentCfg.loadFromJSONCfg(jsnCfg, jsonCfg.generalCfg.RSRSep); err != nil {
+ if err := jsonCfg.dnsAgentCfg.loadFromJSONCfg(jsnCfg); err != nil {
t.Error(err)
}
}
func TestRequestProcessorloadFromJsonCfg(t *testing.T) {
var dareq, expected RequestProcessor
- if err := dareq.loadFromJSONCfg(nil, utils.InfieldSep); err != nil {
+ if err := dareq.loadFromJSONCfg(nil); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(dareq, expected) {
t.Errorf("Expected: %+v ,received: %+v", expected, dareq)
}
- if err := dareq.loadFromJSONCfg(new(ReqProcessorJsnCfg), utils.InfieldSep); err != nil {
+ if err := dareq.loadFromJSONCfg(new(ReqProcessorJsnCfg)); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(dareq, expected) {
t.Errorf("Expected: %+v ,received: %+v", expected, dareq)
@@ -111,7 +111,7 @@ func TestRequestProcessorloadFromJsonCfg(t *testing.T) {
Filters: []string{"filter1", "filter2"},
Flags: utils.FlagsWithParams{"flag1": {}, "flag2": {}},
}
- if err := dareq.loadFromJSONCfg(json, utils.InfieldSep); err != nil {
+ if err := dareq.loadFromJSONCfg(json); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, dareq) {
t.Errorf("Expected: %+v , received: %+v", utils.ToJSON(expected), utils.ToJSON(dareq))
@@ -128,7 +128,7 @@ func TestRequestProcessorDNSAgentloadFromJsonCfg(t *testing.T) {
}
expected := "invalid converter terminator in rule: "
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.dnsAgentCfg.loadFromJSONCfg(cfgJSON, jsonCfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := jsonCfg.dnsAgentCfg.loadFromJSONCfg(cfgJSON); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -152,7 +152,7 @@ func TestRequestProcessorDNSAgentloadFromJsonCfg1(t *testing.T) {
}
if jsonCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if err := jsonCfg.dnsAgentCfg.loadFromJSONCfg(cfgJSON, jsonCfg.generalCfg.RSRSep); err != nil {
+ } else if err := jsonCfg.dnsAgentCfg.loadFromJSONCfg(cfgJSON); err != nil {
t.Error(err)
}
}
@@ -172,7 +172,7 @@ func TestRequestProcessorReplyFieldsloadFromJsonCfg(t *testing.T) {
expected := "invalid converter terminator in rule: "
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.dnsAgentCfg.loadFromJSONCfg(cfgJSON, jsonCfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := jsonCfg.dnsAgentCfg.loadFromJSONCfg(cfgJSON); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -191,7 +191,7 @@ func TestRequestProcessorRequestFieldsloadFromJsonCfg(t *testing.T) {
}
expected := "invalid converter terminator in rule: "
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.dnsAgentCfg.loadFromJSONCfg(cfgJSON, jsonCfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := jsonCfg.dnsAgentCfg.loadFromJSONCfg(cfgJSON); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -223,7 +223,7 @@ func TestDNSAgentCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.dnsAgentCfg.AsMapInterface(utils.EmptyString); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cgrCfg.dnsAgentCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v, received %+v", eMap, rcv)
}
}
@@ -294,7 +294,7 @@ func TestDNSAgentCfgAsMapInterface1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.dnsAgentCfg.AsMapInterface(cgrCfg.generalCfg.RSRSep); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cgrCfg.dnsAgentCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v \n, received %+v", utils.ToIJSON(eMap), utils.ToIJSON(rcv))
}
}
@@ -409,7 +409,7 @@ func TestDiffDNSAgentJsonCfg(t *testing.T) {
},
}
- rcv := diffDNSAgentJsonCfg(d, v1, v2, ";")
+ rcv := diffDNSAgentJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -420,7 +420,7 @@ func TestDiffDNSAgentJsonCfg(t *testing.T) {
Request_processors: &[]*ReqProcessorJsnCfg{},
}
- rcv = diffDNSAgentJsonCfg(d, v1, v2_2, ";")
+ rcv = diffDNSAgentJsonCfg(d, v1, v2_2)
if !reflect.DeepEqual(rcv, expected2) {
t.Errorf("Expected %v \n but received \n %v", expected2, rcv)
}
@@ -468,7 +468,7 @@ func TestDiffDNSAgentJsonCfgExtraV1(t *testing.T) {
Request_processors: &[]*ReqProcessorJsnCfg{},
}
- rcv := diffDNSAgentJsonCfg(d, v1, v2, ";")
+ rcv := diffDNSAgentJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -516,7 +516,7 @@ func TestDiffDNSAgentJsonCfgExtraV2(t *testing.T) {
Request_processors: &[]*ReqProcessorJsnCfg{},
}
- rcv := diffDNSAgentJsonCfg(d, v1, v2, ";")
+ rcv := diffDNSAgentJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
diff --git a/config/dnsagntcfg.go b/config/dnsagntcfg.go
index b8515f46c..539d8a89f 100644
--- a/config/dnsagntcfg.go
+++ b/config/dnsagntcfg.go
@@ -45,10 +45,10 @@ func (da *DNSAgentCfg) Load(ctx *context.Context, jsnCfg ConfigDB, cfg *CGRConfi
if err = jsnCfg.GetSection(ctx, DNSAgentJSON, jsnDNSCfg); err != nil {
return
}
- return da.loadFromJSONCfg(jsnDNSCfg, cfg.generalCfg.RSRSep)
+ return da.loadFromJSONCfg(jsnDNSCfg)
}
-func (da *DNSAgentCfg) loadFromJSONCfg(jsnCfg *DNSAgentJsonCfg, sep string) (err error) {
+func (da *DNSAgentCfg) loadFromJSONCfg(jsnCfg *DNSAgentJsonCfg) (err error) {
if jsnCfg == nil {
return nil
}
@@ -74,11 +74,11 @@ func (da *DNSAgentCfg) loadFromJSONCfg(jsnCfg *DNSAgentJsonCfg, sep string) (err
if jsnCfg.Sessions_conns != nil {
da.SessionSConns = updateBiRPCInternalConns(*jsnCfg.Sessions_conns, utils.MetaSessionS)
}
- da.RequestProcessors, err = appendRequestProcessors(da.RequestProcessors, jsnCfg.Request_processors, sep)
+ da.RequestProcessors, err = appendRequestProcessors(da.RequestProcessors, jsnCfg.Request_processors)
return
}
-func (lstn *Listener) AsMapInterface(separator string) map[string]any {
+func (lstn *Listener) AsMapInterface() map[string]any {
return map[string]any{
utils.AddressCfg: lstn.Address,
utils.NetworkCfg: lstn.Network,
@@ -86,7 +86,7 @@ func (lstn *Listener) AsMapInterface(separator string) map[string]any {
}
// AsMapInterface returns the config as a map[string]any
-func (da DNSAgentCfg) AsMapInterface(separator string) any {
+func (da DNSAgentCfg) AsMapInterface() any {
mp := map[string]any{
utils.EnabledCfg: da.Enabled,
utils.TimezoneCfg: da.Timezone,
@@ -94,13 +94,13 @@ func (da DNSAgentCfg) AsMapInterface(separator string) any {
listeners := make([]map[string]any, len(da.Listeners))
for i, item := range da.Listeners {
- listeners[i] = item.AsMapInterface(separator)
+ listeners[i] = item.AsMapInterface()
}
mp[utils.ListenersCfg] = listeners
requestProcessors := make([]map[string]any, len(da.RequestProcessors))
for i, item := range da.RequestProcessors {
- requestProcessors[i] = item.AsMapInterface(separator)
+ requestProcessors[i] = item.AsMapInterface()
}
mp[utils.RequestProcessorsCfg] = requestProcessors
@@ -151,7 +151,7 @@ type DNSAgentJsonCfg struct {
Request_processors *[]*ReqProcessorJsnCfg
}
-func diffDNSAgentJsonCfg(d *DNSAgentJsonCfg, v1, v2 *DNSAgentCfg, separator string) *DNSAgentJsonCfg {
+func diffDNSAgentJsonCfg(d *DNSAgentJsonCfg, v1, v2 *DNSAgentCfg) *DNSAgentJsonCfg {
if d == nil {
d = new(DNSAgentJsonCfg)
}
@@ -202,6 +202,6 @@ func diffDNSAgentJsonCfg(d *DNSAgentJsonCfg, v1, v2 *DNSAgentCfg, separator stri
if v1.Timezone != v2.Timezone {
d.Timezone = utils.StringPointer(v2.Timezone)
}
- d.Request_processors = diffReqProcessorsJsnCfg(d.Request_processors, v1.RequestProcessors, v2.RequestProcessors, separator)
+ d.Request_processors = diffReqProcessorsJsnCfg(d.Request_processors, v1.RequestProcessors, v2.RequestProcessors)
return d
}
diff --git a/config/eescfg.go b/config/eescfg.go
index e1cd8f562..aa0a9a696 100644
--- a/config/eescfg.go
+++ b/config/eescfg.go
@@ -53,10 +53,10 @@ func (eeS *EEsCfg) Load(ctx *context.Context, jsnCfg ConfigDB, cfg *CGRConfig) (
if err = jsnCfg.GetSection(ctx, EEsJSON, jsnEEsCfg); err != nil {
return
}
- return eeS.loadFromJSONCfg(jsnEEsCfg, cfg.templates, cfg.generalCfg.RSRSep)
+ return eeS.loadFromJSONCfg(jsnEEsCfg, cfg.templates)
}
-func (eeS *EEsCfg) loadFromJSONCfg(jsnCfg *EEsJsonCfg, msgTemplates map[string][]*FCTemplate, sep string) (err error) {
+func (eeS *EEsCfg) loadFromJSONCfg(jsnCfg *EEsJsonCfg, msgTemplates map[string][]*FCTemplate) (err error) {
if jsnCfg == nil {
return
}
@@ -73,10 +73,10 @@ func (eeS *EEsCfg) loadFromJSONCfg(jsnCfg *EEsJsonCfg, msgTemplates map[string][
if jsnCfg.Attributes_conns != nil {
eeS.AttributeSConns = updateInternalConns(*jsnCfg.Attributes_conns, utils.MetaAttributes)
}
- return eeS.appendEEsExporters(jsnCfg.Exporters, msgTemplates, sep)
+ return eeS.appendEEsExporters(jsnCfg.Exporters, msgTemplates)
}
-func (eeS *EEsCfg) appendEEsExporters(exporters *[]*EventExporterJsonCfg, msgTemplates map[string][]*FCTemplate, separator string) (err error) {
+func (eeS *EEsCfg) appendEEsExporters(exporters *[]*EventExporterJsonCfg, msgTemplates map[string][]*FCTemplate) (err error) {
if exporters == nil {
return
}
@@ -94,7 +94,7 @@ func (eeS *EEsCfg) appendEEsExporters(exporters *[]*EventExporterJsonCfg, msgTem
exp = getDftEvExpCfg()
eeS.Exporters = append(eeS.Exporters, exp)
}
- if err = exp.loadFromJSONCfg(jsnExp, msgTemplates, separator); err != nil {
+ if err = exp.loadFromJSONCfg(jsnExp, msgTemplates); err != nil {
return
}
}
@@ -124,7 +124,7 @@ func (eeS EEsCfg) Clone() (cln *EEsCfg) {
}
// AsMapInterface returns the config as a map[string]any
-func (eeS EEsCfg) AsMapInterface(separator string) any {
+func (eeS EEsCfg) AsMapInterface() any {
mp := map[string]any{
utils.EnabledCfg: eeS.Enabled,
}
@@ -141,7 +141,7 @@ func (eeS EEsCfg) AsMapInterface(separator string) any {
if eeS.Exporters != nil {
exporters := make([]map[string]any, len(eeS.Exporters))
for i, item := range eeS.Exporters {
- exporters[i] = item.AsMapInterface(separator)
+ exporters[i] = item.AsMapInterface()
}
mp[utils.ExportersCfg] = exporters
}
@@ -504,7 +504,7 @@ func (eeOpts *EventExporterOpts) loadFromJSONCfg(jsnCfg *EventExporterOptsJson)
return
}
-func (eeC *EventExporterCfg) loadFromJSONCfg(jsnEec *EventExporterJsonCfg, msgTemplates map[string][]*FCTemplate, separator string) (err error) {
+func (eeC *EventExporterCfg) loadFromJSONCfg(jsnEec *EventExporterJsonCfg, msgTemplates map[string][]*FCTemplate) (err error) {
if jsnEec == nil {
return
}
@@ -545,7 +545,7 @@ func (eeC *EventExporterCfg) loadFromJSONCfg(jsnEec *EventExporterJsonCfg, msgTe
eeC.ConcurrentRequests = *jsnEec.Concurrent_requests
}
if jsnEec.Fields != nil {
- eeC.Fields, err = FCTemplatesFromFCTemplatesJSONCfg(*jsnEec.Fields, separator)
+ eeC.Fields, err = FCTemplatesFromFCTemplatesJSONCfg(*jsnEec.Fields)
if err != nil {
return
}
@@ -919,7 +919,7 @@ func (eeC EventExporterCfg) Clone() (cln *EventExporterCfg) {
}
// AsMapInterface returns the config as a map[string]any
-func (eeC *EventExporterCfg) AsMapInterface(separator string) (initialMP map[string]any) {
+func (eeC *EventExporterCfg) AsMapInterface() (initialMP map[string]any) {
flgs := eeC.Flags.SliceFlags()
if flgs == nil {
flgs = []string{}
@@ -946,7 +946,7 @@ func (eeC *EventExporterCfg) AsMapInterface(separator string) (initialMP map[str
if eeC.Fields != nil {
fields := make([]map[string]any, 0, len(eeC.Fields))
for _, fld := range eeC.Fields {
- fields = append(fields, fld.AsMapInterface(separator))
+ fields = append(fields, fld.AsMapInterface())
}
initialMP[utils.FieldsCfg] = fields
}
@@ -1662,7 +1662,7 @@ func diffEventExporterOptsJsonCfg(d *EventExporterOptsJson, v1, v2 *EventExporte
return d
}
-func diffEventExporterJsonCfg(d *EventExporterJsonCfg, v1, v2 *EventExporterCfg, separator string) *EventExporterJsonCfg {
+func diffEventExporterJsonCfg(d *EventExporterJsonCfg, v1, v2 *EventExporterCfg) *EventExporterJsonCfg {
if d == nil {
d = new(EventExporterJsonCfg)
}
@@ -1709,7 +1709,7 @@ func diffEventExporterJsonCfg(d *EventExporterJsonCfg, v1, v2 *EventExporterCfg,
if d.Fields != nil {
flds = *d.Fields
}
- flds = diffFcTemplateJsonCfg(flds, v1.Fields, v2.Fields, separator)
+ flds = diffFcTemplateJsonCfg(flds, v1.Fields, v2.Fields)
if flds != nil {
d.Fields = &flds
}
@@ -1742,13 +1742,13 @@ func getEventExporterCfg(d []*EventExporterCfg, id string) *EventExporterCfg {
}
}
-func diffEventExportersJsonCfg(d *[]*EventExporterJsonCfg, v1, v2 []*EventExporterCfg, separator string) *[]*EventExporterJsonCfg {
+func diffEventExportersJsonCfg(d *[]*EventExporterJsonCfg, v1, v2 []*EventExporterCfg) *[]*EventExporterJsonCfg {
if d == nil || *d == nil {
d = &[]*EventExporterJsonCfg{}
}
for _, val := range v2 {
dv, i := getEventExporterJsonCfg(*d, val.ID)
- dv = diffEventExporterJsonCfg(dv, getEventExporterCfg(v1, val.ID), val, separator)
+ dv = diffEventExporterJsonCfg(dv, getEventExporterCfg(v1, val.ID), val)
if i == -1 {
*d = append(*d, dv)
} else {
@@ -1767,7 +1767,7 @@ type EEsJsonCfg struct {
Exporters *[]*EventExporterJsonCfg
}
-func diffEEsJsonCfg(d *EEsJsonCfg, v1, v2 *EEsCfg, separator string) *EEsJsonCfg {
+func diffEEsJsonCfg(d *EEsJsonCfg, v1, v2 *EEsCfg) *EEsJsonCfg {
if d == nil {
d = new(EEsJsonCfg)
}
@@ -1778,6 +1778,6 @@ func diffEEsJsonCfg(d *EEsJsonCfg, v1, v2 *EEsCfg, separator string) *EEsJsonCfg
d.Attributes_conns = utils.SliceStringPointer(getInternalJSONConns(v2.AttributeSConns))
}
d.Cache = diffCacheParamsJsonCfg(d.Cache, v2.Cache)
- d.Exporters = diffEventExportersJsonCfg(d.Exporters, v1.Exporters, v2.Exporters, separator)
+ d.Exporters = diffEventExportersJsonCfg(d.Exporters, v1.Exporters, v2.Exporters)
return d
}
diff --git a/config/eescfg_test.go b/config/eescfg_test.go
index 43b69b933..c848544c3 100644
--- a/config/eescfg_test.go
+++ b/config/eescfg_test.go
@@ -212,7 +212,7 @@ func TestEventExporterFieldloadFromJsonCfg(t *testing.T) {
}
expected := "invalid converter terminator in rule: "
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.eesCfg.loadFromJSONCfg(eventExporterJSON, jsonCfg.templates, jsonCfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := jsonCfg.eesCfg.loadFromJSONCfg(eventExporterJSON, jsonCfg.templates); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -231,7 +231,7 @@ func TestEventExporterFieldloadFromJsonCfg1(t *testing.T) {
}
expected := "no template with id: <>"
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.eesCfg.loadFromJSONCfg(eventExporterJSON, jsonCfg.templates, jsonCfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := jsonCfg.eesCfg.loadFromJSONCfg(eventExporterJSON, jsonCfg.templates); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -240,7 +240,7 @@ func TestEventExporterloadFromJsonCfg(t *testing.T) {
jsonCfg := NewDefaultCGRConfig()
eventExporter := new(EventExporterCfg)
- if err := eventExporter.loadFromJSONCfg(nil, jsonCfg.templates, jsonCfg.generalCfg.RSRSep); err != nil {
+ if err := eventExporter.loadFromJSONCfg(nil, jsonCfg.templates); err != nil {
t.Error(err)
}
}
@@ -255,7 +255,7 @@ func TestEESCacheloadFromJsonCfg(t *testing.T) {
}
expected := "time: unknown unit \"ss\" in duration \"1ss\""
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.eesCfg.loadFromJSONCfg(eesCfg, jsonCfg.templates, jsonCfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := jsonCfg.eesCfg.loadFromJSONCfg(eesCfg, jsonCfg.templates); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -452,9 +452,9 @@ func TestEEsCfgloadFromJsonCfgCase1(t *testing.T) {
}
}
cgrCfg := NewDefaultCGRConfig()
- if err := cgrCfg.eesCfg.loadFromJSONCfg(nil, cgrCfg.templates, cgrCfg.generalCfg.RSRSep); err != nil {
+ if err := cgrCfg.eesCfg.loadFromJSONCfg(nil, cgrCfg.templates); err != nil {
t.Error(err)
- } else if err := cgrCfg.eesCfg.loadFromJSONCfg(jsonCfg, cgrCfg.templates, cgrCfg.generalCfg.RSRSep); err != nil {
+ } else if err := cgrCfg.eesCfg.loadFromJSONCfg(jsonCfg, cgrCfg.templates); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedCfg, cgrCfg.eesCfg) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expectedCfg), utils.ToJSON(cgrCfg.eesCfg))
@@ -594,7 +594,7 @@ func TestEEsCfgloadFromJsonCfgCase2(t *testing.T) {
}
}
jsnCfg := NewDefaultCGRConfig()
- if err := jsnCfg.eesCfg.loadFromJSONCfg(jsonCfg, msgTemplates, jsnCfg.generalCfg.RSRSep); err != nil {
+ if err := jsnCfg.eesCfg.loadFromJSONCfg(jsonCfg, msgTemplates); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedCfg, jsnCfg.eesCfg) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expectedCfg), utils.ToJSON(jsnCfg.eesCfg))
@@ -685,7 +685,7 @@ func TestEEsCfgAsMapInterface(t *testing.T) {
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
} else {
- rcv := cgrCfg.eesCfg.AsMapInterface(cgrCfg.generalCfg.RSRSep).(map[string]any)
+ rcv := cgrCfg.eesCfg.AsMapInterface().(map[string]any)
if len(rcv[utils.ExportersCfg].([]map[string]any)) != 2 {
t.Errorf("Expected %+v, received %+v", 2, len(rcv[utils.ExportersCfg].([]map[string]any)))
} else if !reflect.DeepEqual(eMap[utils.ExportersCfg].([]map[string]any)[0][utils.FieldsCfg].([]map[string]any)[0][utils.ValueCfg],
@@ -824,7 +824,7 @@ func TestDiffEventExporterJsonCfg(t *testing.T) {
Efs_conns: utils.SliceStringPointer([]string{"efs test"}),
}
- rcv := diffEventExporterJsonCfg(d, v1, v2, ";")
+ rcv := diffEventExporterJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -833,7 +833,7 @@ func TestDiffEventExporterJsonCfg(t *testing.T) {
expected = &EventExporterJsonCfg{
Opts: &EventExporterOptsJson{},
}
- rcv = diffEventExporterJsonCfg(d, v1, v2, ";")
+ rcv = diffEventExporterJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -855,7 +855,7 @@ func TestDiffEventExporterJsonCfg(t *testing.T) {
},
}
- rcv = diffEventExporterJsonCfg(d, v1, v2, ";")
+ rcv = diffEventExporterJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -1037,7 +1037,7 @@ func TestDiffEventExportersJsonCfg(t *testing.T) {
},
}
- rcv := diffEventExportersJsonCfg(d, v1, v2, ";")
+ rcv := diffEventExportersJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -1048,7 +1048,7 @@ func TestDiffEventExportersJsonCfg(t *testing.T) {
Opts: &EventExporterOptsJson{},
},
}
- rcv = diffEventExportersJsonCfg(d, v1, v2, ";")
+ rcv = diffEventExportersJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -1066,7 +1066,7 @@ func TestDiffEventExportersJsonCfg(t *testing.T) {
},
}
- rcv = diffEventExportersJsonCfg(d, v1, v2, ";")
+ rcv = diffEventExportersJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -1123,7 +1123,7 @@ func TestDiffEEsJsonCfg(t *testing.T) {
},
}
- rcv := diffEEsJsonCfg(d, v1, v2, ";")
+ rcv := diffEEsJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -1146,7 +1146,7 @@ func TestDiffEEsJsonCfg(t *testing.T) {
},
},
}
- rcv = diffEEsJsonCfg(d, v1, v2, ";")
+ rcv = diffEEsJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -1734,7 +1734,7 @@ func TestEEsAsMapInterface(t *testing.T) {
},
}
- rcv := eeCfg.AsMapInterface(",")
+ rcv := eeCfg.AsMapInterface()
if !reflect.DeepEqual(exp[utils.OptsCfg], rcv[utils.OptsCfg]) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(exp["opts"]), utils.ToJSON(rcv["opts"]))
diff --git a/config/efscfg.go b/config/efscfg.go
index 3e91bc273..8f9896845 100644
--- a/config/efscfg.go
+++ b/config/efscfg.go
@@ -65,7 +65,7 @@ func (efsCfg *EFsCfg) loadFromJSONCfg(jsonEFsCfg *EfsJsonCfg) (err error) {
}
// AsMapInterface returns the config of EFsCfg as a map[string]any
-func (efsCfg EFsCfg) AsMapInterface(string) any {
+func (efsCfg EFsCfg) AsMapInterface() any {
mp := map[string]any{
utils.EnabledCfg: efsCfg.Enabled,
utils.FailedPostsDirCfg: efsCfg.FailedPostsDir,
diff --git a/config/erscfg.go b/config/erscfg.go
index a4cc4550f..a9252d3bd 100644
--- a/config/erscfg.go
+++ b/config/erscfg.go
@@ -53,10 +53,10 @@ func (erS *ERsCfg) Load(ctx *context.Context, jsnCfg ConfigDB, cfg *CGRConfig) (
if err = jsnCfg.GetSection(ctx, ERsJSON, jsnERsCfg); err != nil {
return
}
- return erS.loadFromJSONCfg(jsnERsCfg, cfg.templates, cfg.generalCfg.RSRSep)
+ return erS.loadFromJSONCfg(jsnERsCfg, cfg.templates)
}
-func (erS *ERsCfg) loadFromJSONCfg(jsnCfg *ERsJsonCfg, msgTemplates map[string][]*FCTemplate, sep string) (err error) {
+func (erS *ERsCfg) loadFromJSONCfg(jsnCfg *ERsJsonCfg, msgTemplates map[string][]*FCTemplate) (err error) {
if jsnCfg == nil {
return
}
@@ -74,10 +74,10 @@ func (erS *ERsCfg) loadFromJSONCfg(jsnCfg *ERsJsonCfg, msgTemplates map[string][
return
}
}
- return erS.appendERsReaders(jsnCfg.Readers, msgTemplates, sep)
+ return erS.appendERsReaders(jsnCfg.Readers, msgTemplates)
}
-func (erS *ERsCfg) appendERsReaders(jsnReaders *[]*EventReaderJsonCfg, msgTemplates map[string][]*FCTemplate, sep string) (err error) {
+func (erS *ERsCfg) appendERsReaders(jsnReaders *[]*EventReaderJsonCfg, msgTemplates map[string][]*FCTemplate) (err error) {
if jsnReaders == nil {
return
}
@@ -95,7 +95,7 @@ func (erS *ERsCfg) appendERsReaders(jsnReaders *[]*EventReaderJsonCfg, msgTempla
rdr = getDftEvRdrCfg()
erS.Readers = append(erS.Readers, rdr)
}
- if err := rdr.loadFromJSONCfg(jsnReader, msgTemplates, sep); err != nil {
+ if err := rdr.loadFromJSONCfg(jsnReader, msgTemplates); err != nil {
return err
}
@@ -121,7 +121,7 @@ func (erS ERsCfg) Clone() (cln *ERsCfg) {
}
// AsMapInterface returns the config as a map[string]any
-func (erS ERsCfg) AsMapInterface(separator string) any {
+func (erS ERsCfg) AsMapInterface() any {
mp := map[string]any{
utils.EnabledCfg: erS.Enabled,
utils.PartialCacheTTLCfg: "0",
@@ -138,7 +138,7 @@ func (erS ERsCfg) AsMapInterface(separator string) any {
if erS.Readers != nil {
readers := make([]map[string]any, len(erS.Readers))
for i, item := range erS.Readers {
- readers[i] = item.AsMapInterface(separator)
+ readers[i] = item.AsMapInterface()
}
mp[utils.ReadersCfg] = readers
}
@@ -361,7 +361,7 @@ func (erOpts *EventReaderOpts) loadFromJSONCfg(jsnCfg *EventReaderOptsJson) (err
return
}
-func (er *EventReaderCfg) loadFromJSONCfg(jsnCfg *EventReaderJsonCfg, msgTemplates map[string][]*FCTemplate, sep string) (err error) {
+func (er *EventReaderCfg) loadFromJSONCfg(jsnCfg *EventReaderJsonCfg, msgTemplates map[string][]*FCTemplate) (err error) {
if jsnCfg == nil {
return
}
@@ -391,7 +391,7 @@ func (er *EventReaderCfg) loadFromJSONCfg(jsnCfg *EventReaderJsonCfg, msgTemplat
er.ProcessedPath = *jsnCfg.ProcessedPath
}
if jsnCfg.Tenant != nil {
- if er.Tenant, err = NewRSRParsers(*jsnCfg.Tenant, sep); err != nil {
+ if er.Tenant, err = NewRSRParsers(*jsnCfg.Tenant, utils.RSRSep); err != nil {
return err
}
}
@@ -421,7 +421,7 @@ func (er *EventReaderCfg) loadFromJSONCfg(jsnCfg *EventReaderJsonCfg, msgTemplat
}
}
if jsnCfg.Fields != nil {
- if er.Fields, err = FCTemplatesFromFCTemplatesJSONCfg(*jsnCfg.Fields, sep); err != nil {
+ if er.Fields, err = FCTemplatesFromFCTemplatesJSONCfg(*jsnCfg.Fields); err != nil {
return err
}
if tpls, err := InflateTemplates(er.Fields, msgTemplates); err != nil {
@@ -431,7 +431,7 @@ func (er *EventReaderCfg) loadFromJSONCfg(jsnCfg *EventReaderJsonCfg, msgTemplat
}
}
if jsnCfg.CacheDumpFields != nil {
- if er.CacheDumpFields, err = FCTemplatesFromFCTemplatesJSONCfg(*jsnCfg.CacheDumpFields, sep); err != nil {
+ if er.CacheDumpFields, err = FCTemplatesFromFCTemplatesJSONCfg(*jsnCfg.CacheDumpFields); err != nil {
return err
}
if tpls, err := InflateTemplates(er.CacheDumpFields, msgTemplates); err != nil {
@@ -441,7 +441,7 @@ func (er *EventReaderCfg) loadFromJSONCfg(jsnCfg *EventReaderJsonCfg, msgTemplat
}
}
if jsnCfg.PartialCommitFields != nil {
- if er.PartialCommitFields, err = FCTemplatesFromFCTemplatesJSONCfg(*jsnCfg.PartialCommitFields, sep); err != nil {
+ if er.PartialCommitFields, err = FCTemplatesFromFCTemplatesJSONCfg(*jsnCfg.PartialCommitFields); err != nil {
return err
}
if tpls, err := InflateTemplates(er.PartialCommitFields, msgTemplates); err != nil {
@@ -671,7 +671,7 @@ func (er EventReaderCfg) Clone() (cln *EventReaderCfg) {
}
// AsMapInterface returns the config as a map[string]any
-func (er *EventReaderCfg) AsMapInterface(separator string) (initialMP map[string]any) {
+func (er *EventReaderCfg) AsMapInterface() (initialMP map[string]any) {
opts := map[string]any{}
if er.Opts.PartialPath != nil {
@@ -807,7 +807,7 @@ func (er *EventReaderCfg) AsMapInterface(separator string) (initialMP map[string
utils.ConcurrentRequestsCfg: er.ConcurrentReqs,
utils.SourcePathCfg: er.SourcePath,
utils.ProcessedPathCfg: er.ProcessedPath,
- utils.TenantCfg: er.Tenant.GetRule(separator),
+ utils.TenantCfg: er.Tenant.GetRule(),
utils.TimezoneCfg: er.Timezone,
utils.FiltersCfg: er.Filters,
utils.FlagsCfg: []string{},
@@ -833,21 +833,21 @@ func (er *EventReaderCfg) AsMapInterface(separator string) (initialMP map[string
if er.Fields != nil {
fields := make([]map[string]any, len(er.Fields))
for i, item := range er.Fields {
- fields[i] = item.AsMapInterface(separator)
+ fields[i] = item.AsMapInterface()
}
initialMP[utils.FieldsCfg] = fields
}
if er.CacheDumpFields != nil {
cacheDumpFields := make([]map[string]any, len(er.CacheDumpFields))
for i, item := range er.CacheDumpFields {
- cacheDumpFields[i] = item.AsMapInterface(separator)
+ cacheDumpFields[i] = item.AsMapInterface()
}
initialMP[utils.CacheDumpFieldsCfg] = cacheDumpFields
}
if er.PartialCommitFields != nil {
parCFields := make([]map[string]any, len(er.PartialCommitFields))
for i, item := range er.PartialCommitFields {
- parCFields[i] = item.AsMapInterface(separator)
+ parCFields[i] = item.AsMapInterface()
}
initialMP[utils.PartialCommitFieldsCfg] = parCFields
}
@@ -1274,7 +1274,7 @@ func diffEventReaderOptsJsonCfg(d *EventReaderOptsJson, v1, v2 *EventReaderOpts)
return d
}
-func diffEventReaderJsonCfg(d *EventReaderJsonCfg, v1, v2 *EventReaderCfg, separator string) *EventReaderJsonCfg {
+func diffEventReaderJsonCfg(d *EventReaderJsonCfg, v1, v2 *EventReaderCfg) *EventReaderJsonCfg {
if d == nil {
d = new(EventReaderJsonCfg)
}
@@ -1306,8 +1306,8 @@ func diffEventReaderJsonCfg(d *EventReaderJsonCfg, v1, v2 *EventReaderCfg, separ
d.MaxReconnectInterval = utils.StringPointer(v2.MaxReconnectInterval.String())
}
d.Opts = diffEventReaderOptsJsonCfg(d.Opts, v1.Opts, v2.Opts)
- tnt1 := v1.Tenant.GetRule(separator)
- tnt2 := v2.Tenant.GetRule(separator)
+ tnt1 := v1.Tenant.GetRule()
+ tnt2 := v2.Tenant.GetRule()
if tnt1 != tnt2 {
d.Tenant = utils.StringPointer(tnt2)
}
@@ -1332,7 +1332,7 @@ func diffEventReaderJsonCfg(d *EventReaderJsonCfg, v1, v2 *EventReaderCfg, separ
if d.Fields != nil {
flds = *d.Fields
}
- flds = diffFcTemplateJsonCfg(flds, v1.Fields, v2.Fields, separator)
+ flds = diffFcTemplateJsonCfg(flds, v1.Fields, v2.Fields)
if flds != nil {
d.Fields = &flds
}
@@ -1341,7 +1341,7 @@ func diffEventReaderJsonCfg(d *EventReaderJsonCfg, v1, v2 *EventReaderCfg, separ
if d.PartialCommitFields != nil {
pcf = *d.PartialCommitFields
}
- pcf = diffFcTemplateJsonCfg(pcf, v1.PartialCommitFields, v2.PartialCommitFields, separator)
+ pcf = diffFcTemplateJsonCfg(pcf, v1.PartialCommitFields, v2.PartialCommitFields)
if pcf != nil {
d.PartialCommitFields = &pcf
}
@@ -1350,7 +1350,7 @@ func diffEventReaderJsonCfg(d *EventReaderJsonCfg, v1, v2 *EventReaderCfg, separ
if d.CacheDumpFields != nil {
cdf = *d.CacheDumpFields
}
- cdf = diffFcTemplateJsonCfg(cdf, v1.CacheDumpFields, v2.CacheDumpFields, separator)
+ cdf = diffFcTemplateJsonCfg(cdf, v1.CacheDumpFields, v2.CacheDumpFields)
if cdf != nil {
d.CacheDumpFields = &cdf
}
@@ -1378,13 +1378,13 @@ func getEventReaderCfg(d []*EventReaderCfg, id string) *EventReaderCfg {
}
}
-func diffEventReadersJsonCfg(d *[]*EventReaderJsonCfg, v1, v2 []*EventReaderCfg, separator string) *[]*EventReaderJsonCfg {
+func diffEventReadersJsonCfg(d *[]*EventReaderJsonCfg, v1, v2 []*EventReaderCfg) *[]*EventReaderJsonCfg {
if d == nil || *d == nil {
d = &[]*EventReaderJsonCfg{}
}
for _, val := range v2 {
dv, i := getEventReaderJsonCfg(*d, val.ID)
- dv = diffEventReaderJsonCfg(dv, getEventReaderCfg(v1, val.ID), val, separator)
+ dv = diffEventReaderJsonCfg(dv, getEventReaderCfg(v1, val.ID), val)
if i == -1 {
*d = append(*d, dv)
} else {
@@ -1404,7 +1404,7 @@ type ERsJsonCfg struct {
PartialCacheTTL *string `json:"partial_cache_ttl"`
}
-func diffERsJsonCfg(d *ERsJsonCfg, v1, v2 *ERsCfg, separator string) *ERsJsonCfg {
+func diffERsJsonCfg(d *ERsJsonCfg, v1, v2 *ERsCfg) *ERsJsonCfg {
if d == nil {
d = new(ERsJsonCfg)
}
@@ -1420,6 +1420,6 @@ func diffERsJsonCfg(d *ERsJsonCfg, v1, v2 *ERsCfg, separator string) *ERsJsonCfg
if v1.PartialCacheTTL != v2.PartialCacheTTL {
d.PartialCacheTTL = utils.StringPointer(v2.PartialCacheTTL.String())
}
- d.Readers = diffEventReadersJsonCfg(d.Readers, v1.Readers, v2.Readers, separator)
+ d.Readers = diffEventReadersJsonCfg(d.Readers, v1.Readers, v2.Readers)
return d
}
diff --git a/config/erscfg_test.go b/config/erscfg_test.go
index b0dc48760..9f5eed655 100644
--- a/config/erscfg_test.go
+++ b/config/erscfg_test.go
@@ -188,7 +188,7 @@ func TestEventReaderloadFromJsonCfg(t *testing.T) {
jsonCfg := NewDefaultCGRConfig()
eventReader := new(EventReaderCfg)
- if err := eventReader.loadFromJSONCfg(nil, jsonCfg.templates, jsonCfg.generalCfg.RSRSep); err != nil {
+ if err := eventReader.loadFromJSONCfg(nil, jsonCfg.templates); err != nil {
t.Error(err)
}
}
@@ -203,7 +203,7 @@ func TestEventReaderloadFromJsonCase1(t *testing.T) {
}
expected := "time: unknown unit \"ss\" in duration \"1ss\""
jsoncfg := NewDefaultCGRConfig()
- if err := jsoncfg.ersCfg.loadFromJSONCfg(cfgJSON, jsoncfg.templates, jsoncfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := jsoncfg.ersCfg.loadFromJSONCfg(cfgJSON, jsoncfg.templates); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -218,7 +218,7 @@ func TestEventReaderloadFromJsonCase3(t *testing.T) {
}
expected := "invalid converter terminator in rule: "
jsoncfg := NewDefaultCGRConfig()
- if err := jsoncfg.ersCfg.loadFromJSONCfg(cfgJSON, jsoncfg.templates, jsoncfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := jsoncfg.ersCfg.loadFromJSONCfg(cfgJSON, jsoncfg.templates); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -229,7 +229,7 @@ func TestEventReaderloadFromJsonCase2(t *testing.T) {
}
expected := `time: unknown unit "ss" in duration "1ss"`
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.ersCfg.loadFromJSONCfg(cfgJSON, jsonCfg.templates, jsonCfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := jsonCfg.ersCfg.loadFromJSONCfg(cfgJSON, jsonCfg.templates); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -373,11 +373,11 @@ func TestERSloadFromJsonCfg(t *testing.T) {
Readers: nil,
}
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.ersCfg.loadFromJSONCfg(cfgJSON, jsonCfg.templates, jsonCfg.generalCfg.RSRSep); err != nil {
+ if err := jsonCfg.ersCfg.loadFromJSONCfg(cfgJSON, jsonCfg.templates); err != nil {
t.Error(err)
}
cfgJSON = nil
- if err := jsonCfg.ersCfg.loadFromJSONCfg(cfgJSON, jsonCfg.templates, jsonCfg.generalCfg.RSRSep); err != nil {
+ if err := jsonCfg.ersCfg.loadFromJSONCfg(cfgJSON, jsonCfg.templates); err != nil {
t.Error(err)
}
}
@@ -401,7 +401,7 @@ func TestEventReaderloadFromJsonCfgErr1(t *testing.T) {
}
expected := "time: unknown unit \"sa\" in duration \"1sa\""
cfg := NewDefaultCGRConfig()
- if err := erS.loadFromJSONCfg(jsnCfg, cfg.templates, cfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := erS.loadFromJSONCfg(jsnCfg, cfg.templates); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -419,7 +419,7 @@ func TestEventReaderloadFromJsonCfgErr2(t *testing.T) {
}
expected := "invalid converter terminator in rule: "
cfg := NewDefaultCGRConfig()
- if err := erS.loadFromJSONCfg(jsnCfg, cfg.templates, cfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := erS.loadFromJSONCfg(jsnCfg, cfg.templates); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -450,8 +450,7 @@ func TestEventReaderloadFromJsonCfgErr3(t *testing.T) {
},
},
}
- cfg := NewDefaultCGRConfig()
- if err := erS.loadFromJSONCfg(jsnCfg, tmpl, cfg.generalCfg.RSRSep); err != nil {
+ if err := erS.loadFromJSONCfg(jsnCfg, tmpl); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(erS.PartialCommitFields, tmpl["value"]) {
t.Errorf("Expected %v \n but received \n %v", erS.PartialCommitFields, tmpl["value"])
@@ -472,7 +471,7 @@ func TestEventReaderFieldsloadFromJsonCfg(t *testing.T) {
}
expected := "invalid converter terminator in rule: "
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.ersCfg.loadFromJSONCfg(cfgJSON, jsonCfg.templates, jsonCfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := jsonCfg.ersCfg.loadFromJSONCfg(cfgJSON, jsonCfg.templates); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -492,7 +491,7 @@ func TestERSloadFromJsonCase1(t *testing.T) {
}
expected := "no template with id: <>"
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.ersCfg.loadFromJSONCfg(cfgJSON, jsonCfg.templates, jsonCfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := jsonCfg.ersCfg.loadFromJSONCfg(cfgJSON, jsonCfg.templates); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -511,7 +510,7 @@ func TestERSloadFromJsonCase2(t *testing.T) {
}
expected := "no template with id: <>"
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.ersCfg.loadFromJSONCfg(cfgJSON, jsonCfg.templates, jsonCfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := jsonCfg.ersCfg.loadFromJSONCfg(cfgJSON, jsonCfg.templates); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -646,7 +645,7 @@ func TestERSloadFromJsonCase3(t *testing.T) {
v.ComputePath()
}
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.ersCfg.loadFromJSONCfg(cfgJSON, msgTemplates, jsonCfg.generalCfg.RSRSep); err != nil {
+ if err := jsonCfg.ersCfg.loadFromJSONCfg(cfgJSON, msgTemplates); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedERsCfg, jsonCfg.ersCfg) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expectedERsCfg), utils.ToJSON(jsonCfg.ersCfg))
@@ -786,7 +785,7 @@ func TestERSloadFromJsonCase4(t *testing.T) {
v.ComputePath()
}
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.ersCfg.loadFromJSONCfg(cfgJSON, msgTemplates, jsonCfg.generalCfg.RSRSep); err != nil {
+ if err := jsonCfg.ersCfg.loadFromJSONCfg(cfgJSON, msgTemplates); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedERsCfg, jsonCfg.ersCfg) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expectedERsCfg), utils.ToJSON(jsonCfg.ersCfg))
@@ -807,7 +806,7 @@ func TestEventReaderCacheDumpFieldsloadFromJsonCfg(t *testing.T) {
}
expected := "invalid converter terminator in rule: "
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.ersCfg.loadFromJSONCfg(cfgJSON, jsonCfg.templates, jsonCfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := jsonCfg.ersCfg.loadFromJSONCfg(cfgJSON, jsonCfg.templates); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -1045,7 +1044,7 @@ func TestERsCfgAsMapInterfaceCase1(t *testing.T) {
}
if cfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cfg.ersCfg.AsMapInterface(utils.InfieldSep); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cfg.ersCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected: %+v\nReceived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -1186,7 +1185,7 @@ func TestERSCfgAsMapInterfaceCase2(t *testing.T) {
}
if cfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cfg.ersCfg.AsMapInterface(utils.InfieldSep); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cfg.ersCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected: %+v\nReceived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -1320,7 +1319,7 @@ func TestERsloadFromJsonCfg(t *testing.T) {
}
}
cfgCgr := NewDefaultCGRConfig()
- if err := cfgCgr.ersCfg.loadFromJSONCfg(cfgJSON, cfgCgr.templates, cfgCgr.generalCfg.RSRSep); err != nil {
+ if err := cfgCgr.ersCfg.loadFromJSONCfg(cfgJSON, cfgCgr.templates); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(cfgCgr.ersCfg, expectedERsCfg) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expectedERsCfg), utils.ToJSON(cfgCgr.ersCfg))
@@ -1424,7 +1423,7 @@ func TestDiffEventReaderJsonCfg(t *testing.T) {
},
}
- rcv := diffEventReaderJsonCfg(d, v1, v2, ";")
+ rcv := diffEventReaderJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -1484,7 +1483,7 @@ func TestDiffEventReaderJsonCfg(t *testing.T) {
},
},
}
- rcv = diffEventReaderJsonCfg(d, v1, v2, ";")
+ rcv = diffEventReaderJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -1646,7 +1645,7 @@ func TestDiffEventReadersJsonCfg(t *testing.T) {
},
}
- rcv := diffEventReadersJsonCfg(d, v1, v2, ";")
+ rcv := diffEventReadersJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -1657,7 +1656,7 @@ func TestDiffEventReadersJsonCfg(t *testing.T) {
Opts: &EventReaderOptsJson{},
},
}
- rcv = diffEventReadersJsonCfg(d, v1, v2, ";")
+ rcv = diffEventReadersJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -1669,7 +1668,7 @@ func TestDiffEventReadersJsonCfg(t *testing.T) {
},
}
- rcv = diffEventReadersJsonCfg(d, v1, v2, ";")
+ rcv = diffEventReadersJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -1714,7 +1713,7 @@ func TestDiffERsJsonCfg(t *testing.T) {
PartialCacheTTL: utils.StringPointer("12h0m0s"),
}
- rcv := diffERsJsonCfg(d, v1, v2, ";")
+ rcv := diffERsJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %+v \n but received \n %+v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -2097,7 +2096,7 @@ func TestERsAsMapInterface(t *testing.T) {
},
}
- rcv := erCfg.AsMapInterface("")
+ rcv := erCfg.AsMapInterface()
if !reflect.DeepEqual(rcv[utils.OptsCfg], exp[utils.OptsCfg]) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(exp[utils.OptsCfg]), utils.ToJSON(rcv[utils.OptsCfg]))
}
@@ -2295,7 +2294,7 @@ func TestErsCfgAsMapInterface(t *testing.T) {
utils.ConcurrentRequestsCfg: er.ConcurrentReqs,
utils.SourcePathCfg: er.SourcePath,
utils.ProcessedPathCfg: er.ProcessedPath,
- utils.TenantCfg: er.Tenant.GetRule(""),
+ utils.TenantCfg: er.Tenant.GetRule(),
utils.TimezoneCfg: er.Timezone,
utils.FiltersCfg: er.Filters,
utils.FlagsCfg: []string{},
@@ -2305,7 +2304,7 @@ func TestErsCfgAsMapInterface(t *testing.T) {
utils.MaxReconnectIntervalCfg: "0",
utils.OptsCfg: opts,
}
- rcv := er.AsMapInterface("")
+ rcv := er.AsMapInterface()
if !reflect.DeepEqual(exp, rcv) {
t.Errorf("\nexpecting %s\nreceived %s\n", utils.ToJSON(exp), utils.ToJSON(rcv))
diff --git a/config/fctemplate.go b/config/fctemplate.go
index 39c4e9524..2bdbb67d9 100644
--- a/config/fctemplate.go
+++ b/config/fctemplate.go
@@ -28,7 +28,7 @@ import (
)
// NewFCTemplateFromFCTemplateJSONCfg creates a FCTemplate from json
-func NewFCTemplateFromFCTemplateJSONCfg(jsnCfg *FcTemplateJsonCfg, separator string) (*FCTemplate, error) {
+func NewFCTemplateFromFCTemplateJSONCfg(jsnCfg *FcTemplateJsonCfg) (*FCTemplate, error) {
fcTmp := new(FCTemplate)
var err error
if jsnCfg.Type != nil {
@@ -46,7 +46,7 @@ func NewFCTemplateFromFCTemplateJSONCfg(jsnCfg *FcTemplateJsonCfg, separator str
fcTmp.Filters = slices.Clone(*jsnCfg.Filters)
}
if jsnCfg.Value != nil {
- if fcTmp.Value, err = NewRSRParsers(*jsnCfg.Value, separator); err != nil {
+ if fcTmp.Value, err = NewRSRParsers(*jsnCfg.Value, utils.RSRSep); err != nil {
return nil, err
}
}
@@ -118,10 +118,10 @@ type FCTemplate struct {
}
// FCTemplatesFromFCTemplatesJSONCfg will build a list of FCTemplates from json
-func FCTemplatesFromFCTemplatesJSONCfg(jsnCfgFlds []*FcTemplateJsonCfg, separator string) (retFields []*FCTemplate, err error) {
+func FCTemplatesFromFCTemplatesJSONCfg(jsnCfgFlds []*FcTemplateJsonCfg) (retFields []*FCTemplate, err error) {
retFields = make([]*FCTemplate, len(jsnCfgFlds))
for i, jsnFld := range jsnCfgFlds {
- if retFields[i], err = NewFCTemplateFromFCTemplateJSONCfg(jsnFld, separator); err != nil {
+ if retFields[i], err = NewFCTemplateFromFCTemplateJSONCfg(jsnFld); err != nil {
return nil, err
}
}
@@ -202,7 +202,7 @@ func (sCft FCTemplates) Load(ctx *context.Context, jsnCfg ConfigDB, cfg *CGRConf
return
}
for k, val := range jsnTemplateCfg {
- if sCft[k], err = FCTemplatesFromFCTemplatesJSONCfg(val, cfg.generalCfg.RSRSep); err != nil {
+ if sCft[k], err = FCTemplatesFromFCTemplatesJSONCfg(val); err != nil {
return
}
}
@@ -210,12 +210,12 @@ func (sCft FCTemplates) Load(ctx *context.Context, jsnCfg ConfigDB, cfg *CGRConf
}
// AsMapInterface returns the config as a map[string]any
-func (sCft FCTemplates) AsMapInterface(separator string) any {
+func (sCft FCTemplates) AsMapInterface() any {
mp := make(map[string][]map[string]any)
for key, value := range sCft {
mp[key] = make([]map[string]any, len(value))
for i, item := range value {
- mp[key][i] = item.AsMapInterface(separator)
+ mp[key][i] = item.AsMapInterface()
}
}
return mp
@@ -238,7 +238,7 @@ func (sCft FCTemplates) Clone() (cln FCTemplates) {
}
// AsMapInterface returns the config as a map[string]any
-func (fc *FCTemplate) AsMapInterface(separator string) (mp map[string]any) {
+func (fc *FCTemplate) AsMapInterface() (mp map[string]any) {
mp = make(map[string]any)
if fc.Tag != utils.EmptyString {
mp[utils.TagCfg] = fc.Tag
@@ -253,7 +253,7 @@ func (fc *FCTemplate) AsMapInterface(separator string) (mp map[string]any) {
mp[utils.FiltersCfg] = fc.Filters
}
if fc.Value != nil {
- mp[utils.ValueCfg] = fc.Value.GetRule(separator)
+ mp[utils.ValueCfg] = fc.Value.GetRule()
}
if fc.Width != 0 {
mp[utils.WidthCfg] = fc.Width
@@ -366,7 +366,7 @@ func fcTemplatesEqual(v1, v2 []*FCTemplate) bool {
return true
}
-func diffFcTemplateJsonCfg(d []*FcTemplateJsonCfg, v1, v2 []*FCTemplate, separator string) []*FcTemplateJsonCfg {
+func diffFcTemplateJsonCfg(d []*FcTemplateJsonCfg, v1, v2 []*FCTemplate) []*FcTemplateJsonCfg {
if !fcTemplatesEqual(v1, v2) {
d = make([]*FcTemplateJsonCfg, len(v2))
for i, v := range v2 {
@@ -384,7 +384,7 @@ func diffFcTemplateJsonCfg(d []*FcTemplateJsonCfg, v1, v2 []*FCTemplate, separat
d[i].Filters = &v.Filters
}
if v.Value != nil {
- d[i].Value = utils.StringPointer(v.Value.GetRule(separator))
+ d[i].Value = utils.StringPointer(v.Value.GetRule())
}
if v.Width != 0 {
d[i].Width = utils.IntPointer(v.Width)
@@ -430,12 +430,12 @@ func diffFcTemplateJsonCfg(d []*FcTemplateJsonCfg, v1, v2 []*FCTemplate, separat
return d
}
-func diffFcTemplatesJsonCfg(d FcTemplatesJsonCfg, v1, v2 FCTemplates, separator string) FcTemplatesJsonCfg {
+func diffFcTemplatesJsonCfg(d FcTemplatesJsonCfg, v1, v2 FCTemplates) FcTemplatesJsonCfg {
if d == nil {
d = make(FcTemplatesJsonCfg)
}
for k, val := range v2 {
- d[k] = diffFcTemplateJsonCfg(d[k], v1[k], val, separator)
+ d[k] = diffFcTemplateJsonCfg(d[k], v1[k], val)
}
return d
}
diff --git a/config/fctemplate_test.go b/config/fctemplate_test.go
index f2dc8c794..03333d1f7 100644
--- a/config/fctemplate_test.go
+++ b/config/fctemplate_test.go
@@ -42,7 +42,7 @@ func TestNewFCTemplateFromFCTemplateJsonCfg(t *testing.T) {
Layout: time.RFC3339,
}
expected.ComputePath()
- if rcv, err := NewFCTemplateFromFCTemplateJSONCfg(jsonCfg, utils.InfieldSep); err != nil {
+ if rcv, err := NewFCTemplateFromFCTemplateJSONCfg(jsonCfg); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rcv) {
t.Errorf("expected: %s ,received: %s", utils.ToJSON(expected), utils.ToJSON(rcv))
@@ -112,7 +112,7 @@ func TestFCTemplatesFromFCTemplatesJsonCfg(t *testing.T) {
for _, v := range expected {
v.ComputePath()
}
- if rcv, err := FCTemplatesFromFCTemplatesJSONCfg(jsnCfgs, utils.InfieldSep); err != nil {
+ if rcv, err := FCTemplatesFromFCTemplatesJSONCfg(jsnCfgs); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rcv) {
t.Errorf("expected: %s ,received: %s", utils.ToJSON(expected), utils.ToJSON(rcv))
@@ -415,7 +415,7 @@ func TestFCTemplateAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.templates.AsMapInterface(cgrCfg.generalCfg.RSRSep).(map[string][]map[string]any); !reflect.DeepEqual(eMap["custom_template"], rcv["custom_template"]) {
+ } else if rcv := cgrCfg.templates.AsMapInterface().(map[string][]map[string]any); !reflect.DeepEqual(eMap["custom_template"], rcv["custom_template"]) {
t.Errorf("Expected %+v \n, recieved %+v", utils.ToJSON(eMap["custom_template"]), utils.ToJSON(rcv["custom_template"]))
}
}
@@ -474,7 +474,7 @@ func TestFCTemplateAsMapInterface1(t *testing.T) {
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
} else {
- rcv := cgrCfg.templates.AsMapInterface(cgrCfg.generalCfg.RSRSep).(map[string][]map[string]any)
+ rcv := cgrCfg.templates.AsMapInterface().(map[string][]map[string]any)
if !reflect.DeepEqual(eMap[utils.MetaErr], rcv[utils.MetaErr]) {
t.Errorf("Expected %+v \n, recieved %+v", utils.ToJSON(eMap[utils.MetaErr]), utils.ToJSON(rcv[utils.MetaErr]))
} else if !reflect.DeepEqual(eMap[utils.MetaASR], rcv[utils.MetaASR]) {
@@ -669,7 +669,7 @@ func TestDiffFcTemplateJsonCfg(t *testing.T) {
},
}
- rcv := diffFcTemplateJsonCfg(d, v1, v2, ";")
+ rcv := diffFcTemplateJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -686,7 +686,7 @@ func TestDiffFcTemplateJsonCfg(t *testing.T) {
Tag: utils.StringPointer("Tag"),
},
}
- rcv = diffFcTemplateJsonCfg(d, v1, v2, ";")
+ rcv = diffFcTemplateJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -751,7 +751,7 @@ func TestDiffFcTemplatesJsonCfg(t *testing.T) {
},
}
- rcv := diffFcTemplatesJsonCfg(d, v1, v2, ";")
+ rcv := diffFcTemplatesJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -760,7 +760,7 @@ func TestDiffFcTemplatesJsonCfg(t *testing.T) {
expected = FcTemplatesJsonCfg{
"T1": nil,
}
- rcv = diffFcTemplatesJsonCfg(d, v1, v2, ";")
+ rcv = diffFcTemplatesJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
diff --git a/config/filterscfg.go b/config/filterscfg.go
index 61e022ba8..c0d96587f 100644
--- a/config/filterscfg.go
+++ b/config/filterscfg.go
@@ -66,7 +66,7 @@ func (fSCfg *FilterSCfg) loadFromJSONCfg(jsnCfg *FilterSJsonCfg) (err error) {
}
// AsMapInterface returns the config as a map[string]any
-func (fSCfg FilterSCfg) AsMapInterface(string) any {
+func (fSCfg FilterSCfg) AsMapInterface() any {
mp := make(map[string]any)
if fSCfg.StatSConns != nil {
mp[utils.StatSConnsCfg] = getInternalJSONConns(fSCfg.StatSConns)
diff --git a/config/filterscfg_test.go b/config/filterscfg_test.go
index 43e7d8dae..06fccfcd2 100644
--- a/config/filterscfg_test.go
+++ b/config/filterscfg_test.go
@@ -70,7 +70,7 @@ func TestFilterSCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.filterSCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.filterSCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v, received %+v", eMap, rcv)
}
}
@@ -88,7 +88,7 @@ func TestFilterSCfgAsMapInterface2(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.filterSCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.filterSCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v, received %+v", eMap, rcv)
}
}
diff --git a/config/fsagentcfg.go b/config/fsagentcfg.go
index 7381794a9..ea2e68fd0 100644
--- a/config/fsagentcfg.go
+++ b/config/fsagentcfg.go
@@ -166,7 +166,7 @@ func (fscfg *FsAgentCfg) loadFromJSONCfg(jsnCfg *FreeswitchAgentJsonCfg) error {
}
// AsMapInterface returns the config as a map[string]any
-func (fscfg FsAgentCfg) AsMapInterface(separator string) any {
+func (fscfg FsAgentCfg) AsMapInterface() any {
mp := map[string]any{
utils.EnabledCfg: fscfg.Enabled,
utils.SubscribeParkCfg: fscfg.SubscribePark,
diff --git a/config/generalcfg.go b/config/generalcfg.go
index 7dca8f6ae..7028eca79 100644
--- a/config/generalcfg.go
+++ b/config/generalcfg.go
@@ -51,7 +51,6 @@ type GeneralCfg struct {
LockingTimeout time.Duration // locking mechanism timeout to avoid deadlocks
DigestSeparator string //
DigestEqual string //
- RSRSep string // separator used to split RSRParser (by default is used ";")
MaxParallelConns int // the maximum number of connections used by the *parallel strategy
DecimalMaxScale int
@@ -148,9 +147,6 @@ func (gencfg *GeneralCfg) loadFromJSONCfg(jsnGeneralCfg *GeneralJsonCfg) (err er
if jsnGeneralCfg.Digest_equal != nil {
gencfg.DigestEqual = *jsnGeneralCfg.Digest_equal
}
- if jsnGeneralCfg.Rsr_separator != nil {
- gencfg.RSRSep = *jsnGeneralCfg.Rsr_separator
- }
if jsnGeneralCfg.Max_parallel_conns != nil {
gencfg.MaxParallelConns = *jsnGeneralCfg.Max_parallel_conns
}
@@ -174,7 +170,7 @@ func (gencfg *GeneralCfg) loadFromJSONCfg(jsnGeneralCfg *GeneralJsonCfg) (err er
}
// AsMapInterface returns the config as a map[string]any
-func (gencfg GeneralCfg) AsMapInterface(string) any {
+func (gencfg GeneralCfg) AsMapInterface() any {
opts := map[string]any{
utils.MetaExporterIDs: gencfg.Opts.ExporterIDs,
}
@@ -194,7 +190,6 @@ func (gencfg GeneralCfg) AsMapInterface(string) any {
utils.MaxReconnectIntervalCfg: "0",
utils.DigestSeparatorCfg: gencfg.DigestSeparator,
utils.DigestEqualCfg: gencfg.DigestEqual,
- utils.RSRSepCfg: gencfg.RSRSep,
utils.MaxParallelConnsCfg: gencfg.MaxParallelConns,
utils.LockingTimeoutCfg: "0",
utils.ConnectTimeoutCfg: "0",
@@ -261,7 +256,6 @@ func (gencfg GeneralCfg) Clone() *GeneralCfg {
LockingTimeout: gencfg.LockingTimeout,
DigestSeparator: gencfg.DigestSeparator,
DigestEqual: gencfg.DigestEqual,
- RSRSep: gencfg.RSRSep,
MaxParallelConns: gencfg.MaxParallelConns,
DecimalMaxScale: gencfg.DecimalMaxScale,
DecimalMinScale: gencfg.DecimalMinScale,
@@ -295,7 +289,6 @@ type GeneralJsonCfg struct {
Locking_timeout *string
Digest_separator *string
Digest_equal *string
- Rsr_separator *string
Max_parallel_conns *int
Decimal_max_scale *int
@@ -371,9 +364,6 @@ func diffGeneralJsonCfg(d *GeneralJsonCfg, v1, v2 *GeneralCfg) *GeneralJsonCfg {
if v1.DigestEqual != v2.DigestEqual {
d.Digest_equal = utils.StringPointer(v2.DigestEqual)
}
- if v1.RSRSep != v2.RSRSep {
- d.Rsr_separator = utils.StringPointer(v2.RSRSep)
- }
if v1.MaxParallelConns != v2.MaxParallelConns {
d.Max_parallel_conns = utils.IntPointer(v2.MaxParallelConns)
}
diff --git a/config/generalcfg_test.go b/config/generalcfg_test.go
index 87cecc13f..4c70a250c 100644
--- a/config/generalcfg_test.go
+++ b/config/generalcfg_test.go
@@ -61,7 +61,6 @@ func TestGeneralCfgloadFromJsonCfg(t *testing.T) {
DigestSeparator: ",",
DigestEqual: ":",
MaxParallelConns: 100,
- RSRSep: ";",
DefaultCaching: utils.MetaReload,
Opts: &GeneralOpts{
ExporterIDs: []*DynamicStringSliceOpt{},
@@ -126,7 +125,6 @@ func TestGeneralCfgAsMapInterface(t *testing.T) {
"locking_timeout": "1s",
"digest_separator": ",",
"digest_equal": ":",
- "rsr_separator": ";",
"max_parallel_conns": 100,
},
}`
@@ -149,7 +147,6 @@ func TestGeneralCfgAsMapInterface(t *testing.T) {
utils.LockingTimeoutCfg: "1s",
utils.DigestSeparatorCfg: ",",
utils.DigestEqualCfg: ":",
- utils.RSRSepCfg: ";",
utils.MaxParallelConnsCfg: 100,
utils.DecimalMaxScaleCfg: 0,
utils.DecimalMinScaleCfg: 0,
@@ -161,7 +158,7 @@ func TestGeneralCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.generalCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.generalCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, recevied %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -196,7 +193,6 @@ func TestGeneralCfgAsMapInterface1(t *testing.T) {
utils.LockingTimeoutCfg: "0",
utils.DigestSeparatorCfg: ",",
utils.DigestEqualCfg: ":",
- utils.RSRSepCfg: ";",
utils.MaxParallelConnsCfg: 100,
utils.DecimalMaxScaleCfg: 0,
utils.DecimalMinScaleCfg: 0,
@@ -208,7 +204,7 @@ func TestGeneralCfgAsMapInterface1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.generalCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.generalCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, recevied %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -230,7 +226,6 @@ func TestGeneralCfgClone(t *testing.T) {
DigestSeparator: ",",
DigestEqual: ":",
MaxParallelConns: 100,
- RSRSep: ";",
DefaultCaching: utils.MetaReload,
Opts: &GeneralOpts{
ExporterIDs: []*DynamicStringSliceOpt{
@@ -268,7 +263,6 @@ func TestDiffGeneralJsonCfg(t *testing.T) {
DigestSeparator: "",
DigestEqual: "",
MaxParallelConns: 50,
- RSRSep: "",
DefaultCaching: utils.MetaClear,
Opts: &GeneralOpts{
ExporterIDs: []*DynamicStringSliceOpt{
@@ -300,7 +294,6 @@ func TestDiffGeneralJsonCfg(t *testing.T) {
DigestSeparator: ",",
DigestEqual: ":",
MaxParallelConns: 100,
- RSRSep: ";",
DefaultCaching: utils.MetaReload,
LockingTimeout: 2 * time.Second,
Opts: &GeneralOpts{
@@ -333,7 +326,6 @@ func TestDiffGeneralJsonCfg(t *testing.T) {
Reply_timeout: utils.StringPointer("2s"),
Locking_timeout: utils.StringPointer("2s"),
Digest_separator: utils.StringPointer(","),
- Rsr_separator: utils.StringPointer(";"),
Digest_equal: utils.StringPointer(":"),
Max_parallel_conns: utils.IntPointer(100),
Opts: &GeneralOptsJson{
@@ -383,7 +375,6 @@ func TestGeneralCfgCloneSection(t *testing.T) {
DigestSeparator: "",
DigestEqual: "",
MaxParallelConns: 50,
- RSRSep: "",
DefaultCaching: utils.MetaClear,
Opts: &GeneralOpts{},
}
@@ -404,7 +395,6 @@ func TestGeneralCfgCloneSection(t *testing.T) {
DigestSeparator: "",
DigestEqual: "",
MaxParallelConns: 50,
- RSRSep: "",
DefaultCaching: utils.MetaClear,
Opts: &GeneralOpts{
ExporterIDs: []*DynamicStringSliceOpt{},
diff --git a/config/httpagntcfg.go b/config/httpagntcfg.go
index b9bf4017f..b9e5a9c41 100644
--- a/config/httpagntcfg.go
+++ b/config/httpagntcfg.go
@@ -30,14 +30,14 @@ import (
type HTTPAgentCfgs []*HTTPAgentCfg
// loadHTTPAgentCfg loads the HttpAgent section of the configuration
-func (hcfgs *HTTPAgentCfgs) Load(ctx *context.Context, jsnCfg ConfigDB, cfg *CGRConfig) (err error) {
+func (hcfgs *HTTPAgentCfgs) Load(ctx *context.Context, jsnCfg ConfigDB, _ *CGRConfig) (err error) {
jsnHTTPAgntCfg := new([]*HttpAgentJsonCfg)
if err = jsnCfg.GetSection(ctx, HTTPAgentJSON, jsnHTTPAgntCfg); err != nil {
return
}
- return hcfgs.loadFromJSONCfg(jsnHTTPAgntCfg, cfg.generalCfg.RSRSep)
+ return hcfgs.loadFromJSONCfg(jsnHTTPAgntCfg)
}
-func (hcfgs *HTTPAgentCfgs) loadFromJSONCfg(jsnHTTPAgntCfg *[]*HttpAgentJsonCfg, separator string) (err error) {
+func (hcfgs *HTTPAgentCfgs) loadFromJSONCfg(jsnHTTPAgntCfg *[]*HttpAgentJsonCfg) (err error) {
if jsnHTTPAgntCfg == nil {
return nil
}
@@ -54,7 +54,7 @@ func (hcfgs *HTTPAgentCfgs) loadFromJSONCfg(jsnHTTPAgntCfg *[]*HttpAgentJsonCfg,
}
}
- if err := hac.loadFromJSONCfg(jsnCfg, separator); err != nil {
+ if err := hac.loadFromJSONCfg(jsnCfg); err != nil {
return err
}
if !haveID {
@@ -65,10 +65,10 @@ func (hcfgs *HTTPAgentCfgs) loadFromJSONCfg(jsnHTTPAgntCfg *[]*HttpAgentJsonCfg,
}
// AsMapInterface returns the config as a map[string]any
-func (hcfgs HTTPAgentCfgs) AsMapInterface(separator string) any {
+func (hcfgs HTTPAgentCfgs) AsMapInterface() any {
mp := make([]map[string]any, len(hcfgs))
for i, item := range hcfgs {
- mp[i] = item.AsMapInterface(separator)
+ mp[i] = item.AsMapInterface()
}
return mp
}
@@ -95,7 +95,7 @@ type HTTPAgentCfg struct {
RequestProcessors []*RequestProcessor
}
-func (ha *HTTPAgentCfg) loadFromJSONCfg(jsnCfg *HttpAgentJsonCfg, separator string) (err error) {
+func (ha *HTTPAgentCfg) loadFromJSONCfg(jsnCfg *HttpAgentJsonCfg) (err error) {
if jsnCfg == nil {
return nil
}
@@ -122,12 +122,12 @@ func (ha *HTTPAgentCfg) loadFromJSONCfg(jsnCfg *HttpAgentJsonCfg, separator stri
if jsnCfg.Reply_payload != nil {
ha.ReplyPayload = *jsnCfg.Reply_payload
}
- ha.RequestProcessors, err = appendRequestProcessors(ha.RequestProcessors, jsnCfg.Request_processors, separator)
+ ha.RequestProcessors, err = appendRequestProcessors(ha.RequestProcessors, jsnCfg.Request_processors)
return
}
// AsMapInterface returns the config as a map[string]any
-func (ha *HTTPAgentCfg) AsMapInterface(separator string) (initialMP map[string]any) {
+func (ha *HTTPAgentCfg) AsMapInterface() (initialMP map[string]any) {
initialMP = map[string]any{
utils.IDCfg: ha.ID,
utils.URLCfg: ha.URL,
@@ -149,7 +149,7 @@ func (ha *HTTPAgentCfg) AsMapInterface(separator string) (initialMP map[string]a
}
requestProcessors := make([]map[string]any, len(ha.RequestProcessors))
for i, item := range ha.RequestProcessors {
- requestProcessors[i] = item.AsMapInterface(separator)
+ requestProcessors[i] = item.AsMapInterface()
}
initialMP[utils.RequestProcessorsCfg] = requestProcessors
return
@@ -184,7 +184,7 @@ type HttpAgentJsonCfg struct {
Request_processors *[]*ReqProcessorJsnCfg
}
-func diffHttpAgentJsonCfg(d *HttpAgentJsonCfg, v1, v2 *HTTPAgentCfg, separator string) *HttpAgentJsonCfg {
+func diffHttpAgentJsonCfg(d *HttpAgentJsonCfg, v1, v2 *HTTPAgentCfg) *HttpAgentJsonCfg {
if d == nil {
d = new(HttpAgentJsonCfg)
}
@@ -204,7 +204,7 @@ func diffHttpAgentJsonCfg(d *HttpAgentJsonCfg, v1, v2 *HTTPAgentCfg, separator s
d.Sessions_conns = utils.SliceStringPointer(getBiRPCInternalJSONConns(v2.SessionSConns))
}
- d.Request_processors = diffReqProcessorsJsnCfg(d.Request_processors, v1.RequestProcessors, v2.RequestProcessors, separator)
+ d.Request_processors = diffReqProcessorsJsnCfg(d.Request_processors, v1.RequestProcessors, v2.RequestProcessors)
return d
}
@@ -242,14 +242,14 @@ func getHTTPAgentCfg(d HTTPAgentCfgs, id string) *HTTPAgentCfg {
}
return new(HTTPAgentCfg)
}
-func diffHttpAgentsJsonCfg(d *[]*HttpAgentJsonCfg, v1, v2 HTTPAgentCfgs, separator string) *[]*HttpAgentJsonCfg {
+func diffHttpAgentsJsonCfg(d *[]*HttpAgentJsonCfg, v1, v2 HTTPAgentCfgs) *[]*HttpAgentJsonCfg {
if d == nil {
d = new([]*HttpAgentJsonCfg)
}
if !equalsHTTPAgentCfgs(v1, v2) {
for _, val := range v2 {
dv, i := getHttpAgentJsonCfg(*d, val.ID)
- dv = diffHttpAgentJsonCfg(dv, getHTTPAgentCfg(v1, val.ID), val, separator)
+ dv = diffHttpAgentJsonCfg(dv, getHTTPAgentCfg(v1, val.ID), val)
if i == -1 {
*d = append(*d, dv)
} else {
diff --git a/config/httpagntcfg_test.go b/config/httpagntcfg_test.go
index 51b075b31..73f752d89 100644
--- a/config/httpagntcfg_test.go
+++ b/config/httpagntcfg_test.go
@@ -81,7 +81,7 @@ func TestHttpAgentCfgsloadFromJsonCfgCase1(t *testing.T) {
}
expected[0].RequestProcessors[0].ReplyFields[0].ComputePath()
jsnCfg := NewDefaultCGRConfig()
- if err := jsnCfg.httpAgentCfg.loadFromJSONCfg(cfgJSON, jsnCfg.generalCfg.RSRSep); err != nil {
+ if err := jsnCfg.httpAgentCfg.loadFromJSONCfg(cfgJSON); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(&expected, &jsnCfg.httpAgentCfg) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(jsnCfg.httpAgentCfg))
@@ -221,7 +221,7 @@ func TestHttpAgentCfgsloadFromJsonCfgCase2(t *testing.T) {
expected[0].RequestProcessors[1].ReplyFields[0].ComputePath()
expected[0].RequestProcessors[1].RequestFields[0].ComputePath()
cfgJsn := NewDefaultCGRConfig()
- if err := cfgJsn.httpAgentCfg.loadFromJSONCfg(cfgJSON, cfgJsn.generalCfg.RSRSep); err != nil {
+ if err := cfgJsn.httpAgentCfg.loadFromJSONCfg(cfgJSON); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, cfgJsn.httpAgentCfg) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(cfgJsn.httpAgentCfg))
@@ -262,7 +262,7 @@ func TestHttpAgentCfgloadFromJsonCfgCase3(t *testing.T) {
}},
}
var httpcfg HTTPAgentCfg
- if err := httpcfg.loadFromJSONCfg(jsnhttpCfg, utils.InfieldSep); err != nil {
+ if err := httpcfg.loadFromJSONCfg(jsnhttpCfg); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, httpcfg) {
t.Errorf("Expected: %+v \n, received: %+v", utils.ToJSON(expected), utils.ToJSON(httpcfg))
@@ -341,7 +341,7 @@ func TestHttpAgentCfgloadFromJsonCfgCase4(t *testing.T) {
}
expected := "invalid converter terminator in rule: "
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.httpAgentCfg.loadFromJSONCfg(cfgJSON, jsonCfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := jsonCfg.httpAgentCfg.loadFromJSONCfg(cfgJSON); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -354,16 +354,14 @@ func TestHttpAgentCfgloadFromJsonCfgCase5(t *testing.T) {
}
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.httpAgentCfg.loadFromJSONCfg(cfgJSON, jsonCfg.generalCfg.RSRSep); err != nil {
+ if err := jsonCfg.httpAgentCfg.loadFromJSONCfg(cfgJSON); err != nil {
t.Error(err)
}
}
func TestHttpAgentCfgloadFromJsonCfgCase6(t *testing.T) {
- jsonCfg := NewDefaultCGRConfig()
-
httpAgentCfg := new(HTTPAgentCfg)
- if err := httpAgentCfg.loadFromJSONCfg(nil, jsonCfg.generalCfg.RSRSep); err != nil {
+ if err := httpAgentCfg.loadFromJSONCfg(nil); err != nil {
t.Error(err)
}
}
@@ -389,14 +387,14 @@ func TestHttpAgentCfgloadFromJsonCfgCase7(t *testing.T) {
jsnCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr)
if err != nil {
t.Error(err)
- } else if err := jsnCfg.httpAgentCfg.loadFromJSONCfg(cfgJSON, jsnCfg.generalCfg.RSRSep); err != nil {
+ } else if err := jsnCfg.httpAgentCfg.loadFromJSONCfg(cfgJSON); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(&expected, &jsnCfg.httpAgentCfg) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(jsnCfg.httpAgentCfg))
}
cfgJSON = nil
- if err := jsnCfg.httpAgentCfg.loadFromJSONCfg(cfgJSON, jsnCfg.generalCfg.RSRSep); err != nil {
+ if err := jsnCfg.httpAgentCfg.loadFromJSONCfg(cfgJSON); err != nil {
t.Error(err)
}
}
@@ -463,7 +461,7 @@ func TestHttpAgentCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.httpAgentCfg.AsMapInterface(cgrCfg.generalCfg.RSRSep); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cgrCfg.httpAgentCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v, recieved %+v", eMap, rcv)
}
}
@@ -671,7 +669,7 @@ func TestDiffHttpAgentJson(t *testing.T) {
Request_processors: &[]*ReqProcessorJsnCfg{},
}
- rcv := diffHttpAgentJsonCfg(d, v1, v2, ";")
+ rcv := diffHttpAgentJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -680,7 +678,7 @@ func TestDiffHttpAgentJson(t *testing.T) {
expected = &HttpAgentJsonCfg{
Request_processors: &[]*ReqProcessorJsnCfg{},
}
- rcv = diffHttpAgentJsonCfg(d, v1, v2, ";")
+ rcv = diffHttpAgentJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -726,7 +724,7 @@ func TestDiffHttpAgentsJsonCfg(t *testing.T) {
},
}
- rcv := diffHttpAgentsJsonCfg(d, v1, v2, ";")
+ rcv := diffHttpAgentsJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -737,7 +735,7 @@ func TestDiffHttpAgentsJsonCfg(t *testing.T) {
},
}
- rcv = diffHttpAgentsJsonCfg(d, v1, v2, ";")
+ rcv = diffHttpAgentsJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -754,7 +752,7 @@ func TestDiffHttpAgentsJsonCfg(t *testing.T) {
Id: utils.StringPointer("http_agent2"),
},
}
- rcv = diffHttpAgentsJsonCfg(d, v1, v2, ";")
+ rcv = diffHttpAgentsJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
diff --git a/config/httpcfg.go b/config/httpcfg.go
index 7c9044c22..022be4f49 100644
--- a/config/httpcfg.go
+++ b/config/httpcfg.go
@@ -166,7 +166,7 @@ func (httpcfg *HTTPCfg) loadFromJSONCfg(jsnHTTPCfg *HTTPJsonCfg) (err error) {
}
// AsMapInterface returns the config as a map[string]any
-func (httpcfg HTTPCfg) AsMapInterface(string) any {
+func (httpcfg HTTPCfg) AsMapInterface() any {
clientOpts := map[string]any{
utils.HTTPClientSkipTLSVerificationCfg: false,
utils.HTTPClientTLSHandshakeTimeoutCfg: httpcfg.ClientOpts.TLSHandshakeTimeout.String(),
diff --git a/config/httpcfg_test.go b/config/httpcfg_test.go
index ae4bbf896..bb13e91ca 100644
--- a/config/httpcfg_test.go
+++ b/config/httpcfg_test.go
@@ -76,11 +76,11 @@ func TestHTTPCfgloadFromJsonCfg(t *testing.T) {
cfgJsn := NewDefaultCGRConfig()
if err := cfgJsn.httpCfg.loadFromJSONCfg(cfgJSONStr); err != nil {
t.Error(err)
- } else if !reflect.DeepEqual(expected.AsMapInterface(utils.InfieldSep),
- cfgJsn.httpCfg.AsMapInterface(utils.InfieldSep)) {
+ } else if !reflect.DeepEqual(expected.AsMapInterface(),
+ cfgJsn.httpCfg.AsMapInterface()) {
t.Errorf("Expected %+v \n, received %+v",
- expected.AsMapInterface(utils.InfieldSep),
- cfgJsn.httpCfg.AsMapInterface(utils.InfieldSep))
+ expected.AsMapInterface(),
+ cfgJsn.httpCfg.AsMapInterface())
}
cfgJSONStr = nil
@@ -122,7 +122,7 @@ func TestHTTPCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.httpCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.httpCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -168,7 +168,7 @@ func TestHTTPCfgAsMapInterface1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.httpCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.httpCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -208,9 +208,9 @@ func TestHTTPCfgClone(t *testing.T) {
},
}
rcv := ban.Clone()
- if !reflect.DeepEqual(rcv.AsMapInterface(utils.InfieldSep), ban.AsMapInterface(utils.InfieldSep)) {
- t.Errorf("Expected: %+v\nReceived: %+v", ban.AsMapInterface(utils.InfieldSep),
- rcv.AsMapInterface(utils.InfieldSep))
+ if !reflect.DeepEqual(rcv.AsMapInterface(), ban.AsMapInterface()) {
+ t.Errorf("Expected: %+v\nReceived: %+v", ban.AsMapInterface(),
+ rcv.AsMapInterface())
}
if rcv.ClientOpts.MaxIdleConns = 50; ban.ClientOpts.MaxIdleConns != 100 {
t.Errorf("Expected clone to not modify the cloned")
@@ -317,11 +317,10 @@ func TestHttpCfgCloneSection(t *testing.T) {
}
rcv := httpCfg.CloneSection()
- if !reflect.DeepEqual(rcv.AsMapInterface(utils.InfieldSep),
- exp.AsMapInterface(utils.InfieldSep)) {
+ if !reflect.DeepEqual(rcv.AsMapInterface(), exp.AsMapInterface()) {
t.Errorf("Expected %v \n but received \n %v",
- utils.ToJSON(exp.AsMapInterface(utils.InfieldSep)),
- utils.ToJSON(rcv.AsMapInterface(utils.InfieldSep)))
+ utils.ToJSON(exp.AsMapInterface()),
+ utils.ToJSON(rcv.AsMapInterface()))
}
}
diff --git a/config/januscfg.go b/config/januscfg.go
index b5bb3c4ce..ad67c1b44 100644
--- a/config/januscfg.go
+++ b/config/januscfg.go
@@ -42,12 +42,12 @@ type JanusAgentCfg struct {
RequestProcessors []*RequestProcessor
}
-func (jacfg *JanusAgentCfg) Load(ctx *context.Context, jsnCfg ConfigDB, cfg *CGRConfig) (err error) {
+func (jacfg *JanusAgentCfg) Load(ctx *context.Context, jsnCfg ConfigDB, _ *CGRConfig) (err error) {
jsnJACfg := new(JanusAgentJsonCfg)
if err = jsnCfg.GetSection(ctx, JanusAgentJSON, jsnJACfg); err != nil {
return
}
- return jacfg.loadFromJSONCfg(jsnJACfg, cfg.generalCfg.RSRSep)
+ return jacfg.loadFromJSONCfg(jsnJACfg)
}
func (jc *JanusConn) loadFromJSONCfg(jsnCfg *JanusConnJsonCfg) (err error) {
@@ -89,7 +89,7 @@ func (jc *JanusConn) Clone() (cln *JanusConn) {
return
}
-func (jaCfg *JanusAgentCfg) loadFromJSONCfg(jsnCfg *JanusAgentJsonCfg, separator string) (err error) {
+func (jaCfg *JanusAgentCfg) loadFromJSONCfg(jsnCfg *JanusAgentJsonCfg) (err error) {
if jaCfg == nil {
return
}
@@ -115,19 +115,19 @@ func (jaCfg *JanusAgentCfg) loadFromJSONCfg(jsnCfg *JanusAgentJsonCfg, separator
jaCfg.JanusConns[idx] = jc
}
}
- jaCfg.RequestProcessors, err = appendRequestProcessors(jaCfg.RequestProcessors, jsnCfg.Request_processors, separator)
+ jaCfg.RequestProcessors, err = appendRequestProcessors(jaCfg.RequestProcessors, jsnCfg.Request_processors)
return
}
// AsMapInterface returns the config as a map[string]any
-func (jaCfg JanusAgentCfg) AsMapInterface(separator string) any {
+func (jaCfg JanusAgentCfg) AsMapInterface() any {
mp := map[string]any{
utils.EnabledCfg: jaCfg.Enabled,
utils.URLCfg: jaCfg.URL,
}
requestProcessors := make([]map[string]any, len(jaCfg.RequestProcessors))
for i, item := range jaCfg.RequestProcessors {
- requestProcessors[i] = item.AsMapInterface(separator)
+ requestProcessors[i] = item.AsMapInterface()
}
mp[utils.RequestProcessorsCfg] = requestProcessors
if jaCfg.SessionSConns != nil {
@@ -235,7 +235,7 @@ func diffJanusConnsJsonCfg(d *[]*JanusConnJsonCfg, v1, v2 []*JanusConn) *[]*Janu
return d
}
-func diffJanusAgentSJsonCfg(d *JanusAgentJsonCfg, v1, v2 *JanusAgentCfg, separator string) *JanusAgentJsonCfg {
+func diffJanusAgentSJsonCfg(d *JanusAgentJsonCfg, v1, v2 *JanusAgentCfg) *JanusAgentJsonCfg {
if d == nil {
d = new(JanusAgentJsonCfg)
}
@@ -248,7 +248,7 @@ func diffJanusAgentSJsonCfg(d *JanusAgentJsonCfg, v1, v2 *JanusAgentCfg, separat
if !slices.Equal(v1.SessionSConns, v2.SessionSConns) {
d.Sessions_conns = utils.SliceStringPointer(getBiRPCInternalJSONConns(v2.SessionSConns))
}
- d.Request_processors = diffReqProcessorsJsnCfg(d.Request_processors, v1.RequestProcessors, v2.RequestProcessors, separator)
+ d.Request_processors = diffReqProcessorsJsnCfg(d.Request_processors, v1.RequestProcessors, v2.RequestProcessors)
d.Janus_conns = diffJanusConnsJsonCfg(d.Janus_conns, v1.JanusConns, v2.JanusConns)
return d
}
diff --git a/config/kamagentcfg.go b/config/kamagentcfg.go
index 9fe78789f..6dabff2bd 100644
--- a/config/kamagentcfg.go
+++ b/config/kamagentcfg.go
@@ -120,7 +120,7 @@ func (ka *KamAgentCfg) loadFromJSONCfg(jsnCfg *KamAgentJsonCfg) error {
}
// AsMapInterface returns the config as a map[string]any
-func (ka KamAgentCfg) AsMapInterface(string) any {
+func (ka KamAgentCfg) AsMapInterface() any {
mp := map[string]any{
utils.EnabledCfg: ka.Enabled,
utils.CreateCdrCfg: ka.CreateCdr,
diff --git a/config/kamagentcfg_test.go b/config/kamagentcfg_test.go
index b8c548e66..a09e5e40d 100644
--- a/config/kamagentcfg_test.go
+++ b/config/kamagentcfg_test.go
@@ -113,7 +113,7 @@ func TestKamAgentCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.kamAgentCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.kamAgentCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -138,7 +138,7 @@ func TestKamAgentCfgAsMapInterface1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.kamAgentCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.kamAgentCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, received %+v", eMap, rcv)
}
}
diff --git a/config/libdynamics.go b/config/libdynamics.go
index c37c3fd33..2f107efa5 100644
--- a/config/libdynamics.go
+++ b/config/libdynamics.go
@@ -255,7 +255,7 @@ func DynamicStringOptEqual(v1, v2 []*DynamicStringOpt) bool {
if v1[i].value != v2[i].value {
return false
}
- if v1[i].rsVal.GetRule(CgrConfig().GeneralCfg().RSRSep) != v2[i].rsVal.GetRule(CgrConfig().GeneralCfg().RSRSep) {
+ if v1[i].rsVal.GetRule() != v2[i].rsVal.GetRule() {
return false
}
}
@@ -276,7 +276,7 @@ func DynamicBoolOptEqual(v1, v2 []*DynamicBoolOpt) bool {
if v1[i].value != v2[i].value {
return false
}
- if v1[i].rsVal.GetRule(CgrConfig().GeneralCfg().RSRSep) != v2[i].rsVal.GetRule(CgrConfig().GeneralCfg().RSRSep) {
+ if v1[i].rsVal.GetRule() != v2[i].rsVal.GetRule() {
return false
}
}
@@ -297,7 +297,7 @@ func DynamicIntOptEqual(v1, v2 []*DynamicIntOpt) bool {
if v1[i].value != v2[i].value {
return false
}
- if v1[i].rsVal.GetRule(CgrConfig().GeneralCfg().RSRSep) != v2[i].rsVal.GetRule(CgrConfig().GeneralCfg().RSRSep) {
+ if v1[i].rsVal.GetRule() != v2[i].rsVal.GetRule() {
return false
}
}
@@ -318,7 +318,7 @@ func DynamicFloat64OptEqual(v1, v2 []*DynamicFloat64Opt) bool {
if v1[i].value != v2[i].value {
return false
}
- if v1[i].rsVal.GetRule(CgrConfig().GeneralCfg().RSRSep) != v2[i].rsVal.GetRule(CgrConfig().GeneralCfg().RSRSep) {
+ if v1[i].rsVal.GetRule() != v2[i].rsVal.GetRule() {
return false
}
}
@@ -339,7 +339,7 @@ func DynamicDurationOptEqual(v1, v2 []*DynamicDurationOpt) bool {
if v1[i].value != v2[i].value {
return false
}
- if v1[i].rsVal.GetRule(CgrConfig().GeneralCfg().RSRSep) != v2[i].rsVal.GetRule(CgrConfig().GeneralCfg().RSRSep) {
+ if v1[i].rsVal.GetRule() != v2[i].rsVal.GetRule() {
return false
}
}
@@ -358,7 +358,7 @@ func DynamicDecimalOptEqual(v1, v2 []*DynamicDecimalOpt) bool {
v1[i].value.Cmp(v2[i].value) != 0 {
return false
}
- if v1[i].rsVal.GetRule(CgrConfig().GeneralCfg().RSRSep) != v2[i].rsVal.GetRule(CgrConfig().GeneralCfg().RSRSep) {
+ if v1[i].rsVal.GetRule() != v2[i].rsVal.GetRule() {
return false
}
}
@@ -397,7 +397,7 @@ func DynamicIntPointerOptEqual(v1, v2 []*DynamicIntPointerOpt) bool {
if *v1[i].value != *v2[i].value {
return false
}
- if v1[i].rsVal.GetRule(CgrConfig().GeneralCfg().RSRSep) != v2[i].rsVal.GetRule(CgrConfig().GeneralCfg().RSRSep) {
+ if v1[i].rsVal.GetRule() != v2[i].rsVal.GetRule() {
return false
}
}
@@ -418,7 +418,7 @@ func DynamicDurationPointerOptEqual(v1, v2 []*DynamicDurationPointerOpt) bool {
if *v1[i].value != *v2[i].value {
return false
}
- if v1[i].rsVal.GetRule(CgrConfig().GeneralCfg().RSRSep) != v2[i].rsVal.GetRule(CgrConfig().GeneralCfg().RSRSep) {
+ if v1[i].rsVal.GetRule() != v2[i].rsVal.GetRule() {
return false
}
}
@@ -434,7 +434,7 @@ func InterfaceToDynamicStringOpts(strJsOpts []*DynamicInterfaceOpt) (strOpts []*
}
strval := utils.IfaceAsString(opt.Value)
if strings.HasPrefix(strval, utils.DynamicDataPrefix) {
- strOpts[indx].rsVal, err = NewRSRParsers(strval, CgrConfig().GeneralCfg().RSRSep)
+ strOpts[indx].rsVal, err = NewRSRParsers(strval, utils.RSRSep)
if err != nil {
return
}
@@ -453,7 +453,7 @@ func DynamicStringToInterfaceOpts(strOpts []*DynamicStringOpt) (strJsOpts []*Dyn
FilterIDs: opt.FilterIDs,
}
if opt.rsVal != nil {
- strOpts[index].value = opt.rsVal.GetRule(CgrConfig().GeneralCfg().RSRSep)
+ strOpts[index].value = opt.rsVal.GetRule()
continue
}
strJsOpts[index].Value = opt.value
@@ -470,7 +470,7 @@ func InterfaceToFloat64DynamicOpts(strJsOpts []*DynamicInterfaceOpt) (flOpts []*
}
strVal := utils.IfaceAsString(opt.Value)
if strings.HasPrefix(strVal, utils.DynamicDataPrefix) {
- flOpts[index].rsVal, err = NewRSRParsers(strVal, CgrConfig().GeneralCfg().RSRSep)
+ flOpts[index].rsVal, err = NewRSRParsers(strVal, utils.RSRSep)
if err != nil {
return nil, err
}
@@ -507,7 +507,7 @@ func IfaceToIntDynamicOpts(strJsOpts []*DynamicInterfaceOpt) (intPtOpts []*Dynam
}
strval := utils.IfaceAsString(opt.Value)
if strings.HasPrefix(strval, utils.DynamicDataPrefix) {
- intPtOpts[index].rsVal, err = NewRSRParsers(strval, CgrConfig().GeneralCfg().RSRSep)
+ intPtOpts[index].rsVal, err = NewRSRParsers(strval, utils.RSRSep)
if err != nil {
return nil, err
}
@@ -544,7 +544,7 @@ func IfaceToDecimalBigDynamicOpts(strOpts []*DynamicInterfaceOpt) (decOpts []*Dy
}
strVal := utils.IfaceAsString(opt.Value)
if strings.HasPrefix(strVal, utils.DynamicDataPrefix) {
- decOpts[index].rsVal, err = NewRSRParsers(strVal, CgrConfig().GeneralCfg().RSRSep)
+ decOpts[index].rsVal, err = NewRSRParsers(strVal, utils.RSRSep)
if err != nil {
return nil, err
}
@@ -565,7 +565,7 @@ func DecimalToIfaceDynamicOpts(decOpts []*DynamicDecimalOpt) (strOpts []*Dynamic
FilterIDs: opt.FilterIDs,
}
if opt.value == nil {
- strOpts[index].Value = opt.rsVal.GetRule(CgrConfig().GeneralCfg().RSRSep)
+ strOpts[index].Value = opt.rsVal.GetRule()
continue
}
strOpts[index].Value = opt.value.String()
@@ -582,7 +582,7 @@ func IfaceToDurationDynamicOpts(ifOpts []*DynamicInterfaceOpt) (durOpts []*Dynam
}
strVal := utils.IfaceAsString(opt.Value)
if strings.HasPrefix(strVal, utils.DynamicDataPrefix) {
- durOpts[index].rsVal, err = NewRSRParsers(strVal, CgrConfig().GeneralCfg().RSRSep)
+ durOpts[index].rsVal, err = NewRSRParsers(strVal, utils.RSRSep)
if err != nil {
return nil, err
}
@@ -603,7 +603,7 @@ func DurationToIfaceDynamicOpts(durOpts []*DynamicDurationOpt) (strOpts []*Dynam
FilterIDs: opt.FilterIDs,
}
if opt.rsVal != nil {
- strOpts[index].Value = opt.rsVal.GetRule(CgrConfig().GeneralCfg().RSRSep)
+ strOpts[index].Value = opt.rsVal.GetRule()
continue
}
strOpts[index].Value = opt.value
@@ -620,7 +620,7 @@ func IfaceToIntPointerDynamicOpts(ifOpts []*DynamicInterfaceOpt) (intPtOpts []*D
}
strval := utils.IfaceAsString(opt.Value)
if strings.HasPrefix(strval, utils.DynamicDataPrefix) {
- intPtOpts[index].rsVal, err = NewRSRParsers(strval, CgrConfig().GeneralCfg().RSRSep)
+ intPtOpts[index].rsVal, err = NewRSRParsers(strval, utils.RSRSep)
if err != nil {
return nil, err
}
@@ -657,7 +657,7 @@ func IfaceToDurationPointerDynamicOpts(ifOpts []*DynamicInterfaceOpt) (durPtOpts
}
strVal := utils.IfaceAsString(opt.Value)
if strings.HasPrefix(strVal, utils.DynamicDataPrefix) {
- durPtOpts[index].rsVal, err = NewRSRParsers(strVal, CgrConfig().GeneralCfg().RSRSep)
+ durPtOpts[index].rsVal, err = NewRSRParsers(strVal, utils.RSRSep)
if err != nil {
return nil, err
}
@@ -692,7 +692,7 @@ func IfaceToBoolDynamicOpts(strOpts []*DynamicInterfaceOpt) (boolOpts []*Dynamic
Tenant: opt.Tenant,
}
if dynVal := utils.IfaceAsString(opt.Value); strings.HasPrefix(dynVal, utils.DynamicDataPrefix) {
- boolOpts[index].rsVal, err = NewRSRParsers(dynVal, CgrConfig().GeneralCfg().RSRSep)
+ boolOpts[index].rsVal, err = NewRSRParsers(dynVal, utils.RSRSep)
if err != nil {
return
}
diff --git a/config/listencfg.go b/config/listencfg.go
index c29c12c54..db32f066e 100644
--- a/config/listencfg.go
+++ b/config/listencfg.go
@@ -69,7 +69,7 @@ func (lstcfg *ListenCfg) loadFromJSONCfg(jsnListenCfg *ListenJsonCfg) (err error
}
// AsMapInterface returns the config as a map[string]any
-func (lstcfg ListenCfg) AsMapInterface(string) any {
+func (lstcfg ListenCfg) AsMapInterface() any {
return map[string]any{
utils.RPCJSONListenCfg: lstcfg.RPCJSONListen,
utils.RPCGOBListenCfg: lstcfg.RPCGOBListen,
diff --git a/config/listencfg_test.go b/config/listencfg_test.go
index 0fb49c33d..75017c9bf 100644
--- a/config/listencfg_test.go
+++ b/config/listencfg_test.go
@@ -67,7 +67,7 @@ func TestListenCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.listenCfg.AsMapInterface(""); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cgrCfg.listenCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v, received %+v", eMap, rcv)
}
}
@@ -92,7 +92,7 @@ func TestListenCfgAsMapInterface1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.listenCfg.AsMapInterface(""); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cgrCfg.listenCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v, received %+v", eMap, rcv)
}
}
diff --git a/config/loadercgrcfg.go b/config/loadercgrcfg.go
index a3120ce9d..3c3d86266 100644
--- a/config/loadercgrcfg.go
+++ b/config/loadercgrcfg.go
@@ -80,7 +80,7 @@ func (ld *LoaderCgrCfg) loadFromJSONCfg(jsnCfg *LoaderCfgJson) (err error) {
}
// AsMapInterface returns the config as a map[string]any
-func (ld LoaderCgrCfg) AsMapInterface(string) any {
+func (ld LoaderCgrCfg) AsMapInterface() any {
mp := map[string]any{
utils.TpIDCfg: ld.TpID,
utils.DataPathCfg: ld.DataPath,
diff --git a/config/loadercgrcfg_test.go b/config/loadercgrcfg_test.go
index b2e7a3b20..e91e7e7ce 100644
--- a/config/loadercgrcfg_test.go
+++ b/config/loadercgrcfg_test.go
@@ -83,7 +83,7 @@ func TestLoaderCgrCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.loaderCgrCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.loaderCgrCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
diff --git a/config/loaderscfg.go b/config/loaderscfg.go
index 30b895fab..9ac3974fe 100644
--- a/config/loaderscfg.go
+++ b/config/loaderscfg.go
@@ -55,7 +55,7 @@ func (ldrs *LoaderSCfgs) Load(ctx *context.Context, jsnCfg ConfigDB, cfg *CGRCon
*ldrs = append(*ldrs, ldr) // use append so the loaderS profile to be loaded from multiple files
}
- if err = ldr.loadFromJSONCfg(profile, cfg.templates, cfg.generalCfg.RSRSep); err != nil {
+ if err = ldr.loadFromJSONCfg(profile, cfg.templates); err != nil {
return
}
}
@@ -63,10 +63,10 @@ func (ldrs *LoaderSCfgs) Load(ctx *context.Context, jsnCfg ConfigDB, cfg *CGRCon
}
// AsMapInterface returns the config as a map[string]any
-func (ldrs LoaderSCfgs) AsMapInterface(separator string) any {
+func (ldrs LoaderSCfgs) AsMapInterface() any {
mp := make([]map[string]any, len(ldrs))
for i, item := range ldrs {
- mp[i] = item.AsMapInterface(separator)
+ mp[i] = item.AsMapInterface()
}
return mp
}
@@ -144,7 +144,7 @@ func (l *LoaderSOptsCfg) loadFromJSONCfg(jsnCfg *LoaderJsonOptsCfg) {
l.StopOnError = *jsnCfg.StopOnError
}
}
-func (lData *LoaderDataType) loadFromJSONCfg(jsnCfg *LoaderJsonDataType, msgTemplates map[string][]*FCTemplate, separator string) (err error) {
+func (lData *LoaderDataType) loadFromJSONCfg(jsnCfg *LoaderJsonDataType, msgTemplates map[string][]*FCTemplate) (err error) {
if jsnCfg == nil {
return nil
}
@@ -161,7 +161,7 @@ func (lData *LoaderDataType) loadFromJSONCfg(jsnCfg *LoaderJsonDataType, msgTemp
lData.Flags = utils.FlagsWithParamsFromSlice(*jsnCfg.Flags)
}
if jsnCfg.Fields != nil {
- if lData.Fields, err = FCTemplatesFromFCTemplatesJSONCfg(*jsnCfg.Fields, separator); err != nil {
+ if lData.Fields, err = FCTemplatesFromFCTemplatesJSONCfg(*jsnCfg.Fields); err != nil {
return
}
if tpls, err := InflateTemplates(lData.Fields, msgTemplates); err != nil {
@@ -173,7 +173,7 @@ func (lData *LoaderDataType) loadFromJSONCfg(jsnCfg *LoaderJsonDataType, msgTemp
return nil
}
-func (l *LoaderSCfg) loadFromJSONCfg(jsnCfg *LoaderJsonCfg, msgTemplates map[string][]*FCTemplate, separator string) (err error) {
+func (l *LoaderSCfg) loadFromJSONCfg(jsnCfg *LoaderJsonCfg, msgTemplates map[string][]*FCTemplate) (err error) {
if jsnCfg == nil {
return nil
}
@@ -230,7 +230,7 @@ func (l *LoaderSCfg) loadFromJSONCfg(jsnCfg *LoaderJsonCfg, msgTemplates map[str
ldrDataType = new(LoaderDataType)
l.Data = append(l.Data, ldrDataType) // use append so the loaderS profile to be loaded from multiple files
}
- if err := ldrDataType.loadFromJSONCfg(jsnLoCfg, msgTemplates, separator); err != nil {
+ if err := ldrDataType.loadFromJSONCfg(jsnLoCfg, msgTemplates); err != nil {
return err
}
}
@@ -303,7 +303,7 @@ func (l LoaderSCfg) Clone() (cln *LoaderSCfg) {
}
// AsMapInterface returns the config as a map[string]any
-func (lData LoaderDataType) AsMapInterface(separator string) (initialMP map[string]any) {
+func (lData LoaderDataType) AsMapInterface() (initialMP map[string]any) {
initialMP = map[string]any{
utils.TypeCf: lData.Type,
utils.FilenameCfg: lData.Filename,
@@ -312,14 +312,14 @@ func (lData LoaderDataType) AsMapInterface(separator string) (initialMP map[stri
fields := make([]map[string]any, len(lData.Fields))
for i, item := range lData.Fields {
- fields[i] = item.AsMapInterface(separator)
+ fields[i] = item.AsMapInterface()
}
initialMP[utils.FieldsCfg] = fields
return
}
// AsMapInterface returns the config as a map[string]any
-func (l LoaderSCfg) AsMapInterface(separator string) (mp map[string]any) {
+func (l LoaderSCfg) AsMapInterface() (mp map[string]any) {
mp = map[string]any{
utils.IDCfg: l.ID,
utils.TenantCfg: l.Tenant,
@@ -340,7 +340,7 @@ func (l LoaderSCfg) AsMapInterface(separator string) (mp map[string]any) {
if l.Data != nil {
data := make([]map[string]any, len(l.Data))
for i, item := range l.Data {
- data[i] = item.AsMapInterface(separator)
+ data[i] = item.AsMapInterface()
}
mp[utils.DataCfg] = data
}
@@ -424,7 +424,7 @@ func diffLoaderJsonOptsCfg(v1, v2 *LoaderSOptsCfg) (d *LoaderJsonOptsCfg) {
}
return
}
-func diffLoaderJsonCfg(v1, v2 *LoaderSCfg, separator string) (d *LoaderJsonCfg) {
+func diffLoaderJsonCfg(v1, v2 *LoaderSCfg) (d *LoaderJsonCfg) {
d = new(LoaderJsonCfg)
if v1.ID != v2.ID {
d.ID = utils.StringPointer(v2.ID)
@@ -457,7 +457,7 @@ func diffLoaderJsonCfg(v1, v2 *LoaderSCfg, separator string) (d *LoaderJsonCfg)
data := make([]*LoaderJsonDataType, len(v2.Data))
for i, val2 := range v2.Data {
var req []*FcTemplateJsonCfg
- req = diffFcTemplateJsonCfg(req, nil, val2.Fields, separator)
+ req = diffFcTemplateJsonCfg(req, nil, val2.Fields)
data[i] = &LoaderJsonDataType{
Id: utils.StringPointer(val2.ID),
Type: utils.StringPointer(val2.Type),
@@ -501,14 +501,14 @@ func equalsLoadersJsonCfg(v1, v2 LoaderSCfgs) bool {
}
return true
}
-func diffLoadersJsonCfg(d []*LoaderJsonCfg, v1, v2 LoaderSCfgs, separator string) []*LoaderJsonCfg {
+func diffLoadersJsonCfg(d []*LoaderJsonCfg, v1, v2 LoaderSCfgs) []*LoaderJsonCfg {
if equalsLoadersJsonCfg(v1, v2) {
return d
}
d = make([]*LoaderJsonCfg, len(v2))
dft := getDftLoaderCfg()
for i, val2 := range v2 {
- d[i] = diffLoaderJsonCfg(dft, val2, separator)
+ d[i] = diffLoaderJsonCfg(dft, val2)
}
return d
}
diff --git a/config/loaderscfg_test.go b/config/loaderscfg_test.go
index a847007ae..b4591c747 100644
--- a/config/loaderscfg_test.go
+++ b/config/loaderscfg_test.go
@@ -912,7 +912,7 @@ func TestLoaderDataTypeLoadFromJSONNil(t *testing.T) {
},
}
- if err := lData.loadFromJSONCfg(nil, nil, ""); err != nil {
+ if err := lData.loadFromJSONCfg(nil, nil); err != nil {
t.Error(err)
}
}
@@ -930,7 +930,7 @@ func TestLoaderSCfgloadFromJsonCfgCase3(t *testing.T) {
}
expected := "invalid converter terminator in rule: "
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.loaderCfg[0].loadFromJSONCfg(cfg, jsonCfg.templates, jsonCfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := jsonCfg.loaderCfg[0].loadFromJSONCfg(cfg, jsonCfg.templates); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -949,7 +949,7 @@ func TestLoaderSCfgloadFromJsonCfgCase4(t *testing.T) {
}
expected := "no template with id: <>"
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.loaderCfg[0].loadFromJSONCfg(cfg, jsonCfg.templates, jsonCfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := jsonCfg.loaderCfg[0].loadFromJSONCfg(cfg, jsonCfg.templates); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -1000,7 +1000,7 @@ func TestLoaderSCfgloadFromJsonCfgCase5(t *testing.T) {
},
}
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.loaderCfg[0].loadFromJSONCfg(cfg, msgTemplates, jsonCfg.generalCfg.RSRSep); err != nil {
+ if err := jsonCfg.loaderCfg[0].loadFromJSONCfg(cfg, msgTemplates); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(jsonCfg.loaderCfg[0].Data[1].Fields[0], expectedFields[0].Data[0].Fields[0]) {
t.Errorf("Expected %+v,\n received %+v", utils.ToJSON(expectedFields[0].Data[0].Fields[0]), utils.ToJSON(jsonCfg.loaderCfg[0].Data[1].Fields[0]))
@@ -1012,14 +1012,14 @@ func TestLoaderSCfgloadFromJsonCfgCase6(t *testing.T) {
Data: &[]*LoaderJsonDataType{nil},
}
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.loaderCfg[0].loadFromJSONCfg(cfg, jsonCfg.templates, jsonCfg.generalCfg.RSRSep); err != nil {
+ if err := jsonCfg.loaderCfg[0].loadFromJSONCfg(cfg, jsonCfg.templates); err != nil {
t.Error(err)
}
}
func TestLoaderSCfgloadFromJsonCfgCase7(t *testing.T) {
cfg := &LoaderSCfg{}
- if err := cfg.loadFromJSONCfg(nil, nil, ""); err != nil {
+ if err := cfg.loadFromJSONCfg(nil, nil); err != nil {
t.Error(err)
}
}
@@ -2042,7 +2042,7 @@ func TestLoaderCfgAsMapInterfaceCase1(t *testing.T) {
if cfgCgr, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
} else {
- rcv := cfgCgr.loaderCfg.AsMapInterface(cfgCgr.generalCfg.RSRSep)
+ rcv := cfgCgr.loaderCfg.AsMapInterface()
if len(cfgCgr.loaderCfg) != 1 {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", 1, len(cfgCgr.loaderCfg))
} else if !reflect.DeepEqual(rcv, eMap) {
@@ -2113,7 +2113,7 @@ func TestLoaderCfgAsMapInterfaceCase2(t *testing.T) {
}
if jsonCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := jsonCfg.loaderCfg.AsMapInterface(jsonCfg.generalCfg.RSRSep).([]map[string]any); !reflect.DeepEqual(rcv[0][utils.Tenant], eMap[0][utils.Tenant]) {
+ } else if rcv := jsonCfg.loaderCfg.AsMapInterface().([]map[string]any); !reflect.DeepEqual(rcv[0][utils.Tenant], eMap[0][utils.Tenant]) {
t.Errorf("Expected %+v, received %+v", rcv[0][utils.Tenant], eMap[0][utils.Tenant])
}
}
@@ -2297,14 +2297,14 @@ func TestDiffLoaderJsonCfg(t *testing.T) {
Cache: map[string]*CacheParamJsonCfg{},
}
- rcv := diffLoaderJsonCfg(v1, v2, ";")
+ rcv := diffLoaderJsonCfg(v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
v1 = v2
expected = &LoaderJsonCfg{Opts: &LoaderJsonOptsCfg{}, Cache: make(map[string]*CacheParamJsonCfg)}
- rcv = diffLoaderJsonCfg(v1, v2, ";")
+ rcv = diffLoaderJsonCfg(v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -2458,14 +2458,14 @@ func TestDiffLoadersJsonCfg(t *testing.T) {
},
}
- rcv := diffLoadersJsonCfg(d, v1, v2, ";")
+ rcv := diffLoadersJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
v1 = v2
expected = nil
- rcv = diffLoadersJsonCfg(d, v1, v2, ";")
+ rcv = diffLoadersJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -2488,7 +2488,7 @@ func TestLockFolderRelativePath(t *testing.T) {
Tp_out_dir: utils.StringPointer("/var/spool/cgrates/loader/out/"),
}
expPath := path.Join(ldr.LockFilePath)
- if err := ldr.loadFromJSONCfg(jsonCfg, map[string][]*FCTemplate{}, utils.InfieldSep); err != nil {
+ if err := ldr.loadFromJSONCfg(jsonCfg, map[string][]*FCTemplate{}); err != nil {
t.Error(err)
} else if ldr.LockFilePath != expPath {
t.Errorf("Expected %v \n but received \n %v", expPath, ldr.LockFilePath)
@@ -2511,7 +2511,7 @@ func TestLockFolderNonRelativePath(t *testing.T) {
Tp_out_dir: utils.StringPointer("/var/spool/cgrates/loader/out/"),
}
expPath := path.Join("/tmp/", utils.ResourcesCsv)
- if err := ldr.loadFromJSONCfg(jsonCfg, map[string][]*FCTemplate{}, utils.InfieldSep); err != nil {
+ if err := ldr.loadFromJSONCfg(jsonCfg, map[string][]*FCTemplate{}); err != nil {
t.Error(err)
} else if ldr.LockFilePath != expPath {
t.Errorf("Expected %v \n but received \n %v", expPath, ldr.LockFilePath)
@@ -2534,7 +2534,7 @@ func TestLockFolderIsDir(t *testing.T) {
}
expPath := path.Join("/tmp")
- if err := ldr.loadFromJSONCfg(jsonCfg, map[string][]*FCTemplate{}, utils.InfieldSep); err != nil {
+ if err := ldr.loadFromJSONCfg(jsonCfg, map[string][]*FCTemplate{}); err != nil {
t.Error(err)
} else if ldr.LockFilePath != expPath {
t.Errorf("Expected %v \n but received \n %v", expPath, ldr.LockFilePath)
@@ -2616,7 +2616,7 @@ func TestLoaderDataTypeLoadFromJSONId(t *testing.T) {
Id: utils.StringPointer("IdTest"),
}
- if err := lData.loadFromJSONCfg(jsnCfg, nil, ""); err != nil {
+ if err := lData.loadFromJSONCfg(jsnCfg, nil); err != nil {
t.Errorf("Expected error <%v>, Received error <%v>", nil, err)
}
}
@@ -2630,7 +2630,7 @@ func TestLoaderSCfgloadFromJSONCfgDataId(t *testing.T) {
},
},
}
- if err := l.loadFromJSONCfg(jsnCfg, nil, ""); err != nil {
+ if err := l.loadFromJSONCfg(jsnCfg, nil); err != nil {
t.Errorf("Expected error <%v>, Received error <%v>", nil, err)
}
@@ -2646,7 +2646,7 @@ func TestLoaderSCfgloadFromJSONCacheErr(t *testing.T) {
}
expErr := `time: invalid duration "invalid"`
- if err := l.loadFromJSONCfg(jsnCfg, nil, ""); err.Error() != expErr {
+ if err := l.loadFromJSONCfg(jsnCfg, nil); err.Error() != expErr {
t.Errorf("Expected error <%v>, Received error <%v>", expErr, err.Error())
}
}
diff --git a/config/loggercfg.go b/config/loggercfg.go
index 98d83baca..46b087c52 100644
--- a/config/loggercfg.go
+++ b/config/loggercfg.go
@@ -62,7 +62,7 @@ func (loggCfg *LoggerCfg) loadFromJSONCfg(jsnLoggerCfg *LoggerJsonCfg) (err erro
}
// AsMapInterface returns the config of logger as a map[string]any
-func (loggCfg *LoggerCfg) AsMapInterface(string) any {
+func (loggCfg *LoggerCfg) AsMapInterface() any {
mp := map[string]any{
utils.TypeCfg: loggCfg.Type,
utils.LevelCfg: loggCfg.Level,
diff --git a/config/migratorcfg.go b/config/migratorcfg.go
index b68a2d351..88f363f9f 100644
--- a/config/migratorcfg.go
+++ b/config/migratorcfg.go
@@ -89,7 +89,7 @@ func (mg *MigratorCgrCfg) loadFromJSONCfg(jsnCfg *MigratorCfgJson) (err error) {
}
// AsMapInterface returns the config as a map[string]any
-func (mg MigratorCgrCfg) AsMapInterface(string) any {
+func (mg MigratorCgrCfg) AsMapInterface() any {
outDataDBOpts := map[string]any{
utils.RedisMaxConnsCfg: mg.OutDataDBOpts.RedisMaxConns,
utils.RedisConnectAttemptsCfg: mg.OutDataDBOpts.RedisConnectAttempts,
diff --git a/config/migratorcfg_test.go b/config/migratorcfg_test.go
index 903ecaad0..10eed6841 100644
--- a/config/migratorcfg_test.go
+++ b/config/migratorcfg_test.go
@@ -121,7 +121,7 @@ func TestMigratorCgrCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.migratorCgrCfg.AsMapInterface(""); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cgrCfg.migratorCgrCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -167,7 +167,7 @@ func TestMigratorCgrCfgAsMapInterface1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.migratorCgrCfg.AsMapInterface(""); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cgrCfg.migratorCgrCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -209,7 +209,7 @@ func TestMigratorCgrCfgAsMapInterface2(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.migratorCgrCfg.AsMapInterface(""); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cgrCfg.migratorCgrCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
diff --git a/config/multifiles_it_test.go b/config/multifiles_it_test.go
index cc187e0c7..544db5248 100644
--- a/config/multifiles_it_test.go
+++ b/config/multifiles_it_test.go
@@ -71,7 +71,6 @@ func TestMfEnvReaderITRead(t *testing.T) {
LockingTimeout: 0,
DigestSeparator: ",",
DigestEqual: ":",
- RSRSep: ";",
MaxParallelConns: 100,
Opts: &GeneralOpts{
ExporterIDs: []*DynamicStringSliceOpt{},
diff --git a/config/radiuscfg.go b/config/radiuscfg.go
index d3bd30b73..e246ccdb8 100644
--- a/config/radiuscfg.go
+++ b/config/radiuscfg.go
@@ -38,15 +38,15 @@ type RadiusAgentCfg struct {
}
// loadRadiusAgentCfg loads the RadiusAgent section of the configuration
-func (ra *RadiusAgentCfg) Load(ctx *context.Context, jsnCfg ConfigDB, cfg *CGRConfig) (err error) {
+func (ra *RadiusAgentCfg) Load(ctx *context.Context, jsnCfg ConfigDB, _ *CGRConfig) (err error) {
jsnRACfg := new(RadiusAgentJsonCfg)
if err = jsnCfg.GetSection(ctx, RadiusAgentJSON, jsnRACfg); err != nil {
return
}
- return ra.loadFromJSONCfg(jsnRACfg, cfg.generalCfg.RSRSep)
+ return ra.loadFromJSONCfg(jsnRACfg)
}
-func (ra *RadiusAgentCfg) loadFromJSONCfg(jsnCfg *RadiusAgentJsonCfg, separator string) (err error) {
+func (ra *RadiusAgentCfg) loadFromJSONCfg(jsnCfg *RadiusAgentJsonCfg) (err error) {
if jsnCfg == nil {
return nil
}
@@ -75,12 +75,12 @@ func (ra *RadiusAgentCfg) loadFromJSONCfg(jsnCfg *RadiusAgentJsonCfg, separator
if jsnCfg.Sessions_conns != nil {
ra.SessionSConns = updateBiRPCInternalConns(*jsnCfg.Sessions_conns, utils.MetaSessionS)
}
- ra.RequestProcessors, err = appendRequestProcessors(ra.RequestProcessors, jsnCfg.Request_processors, separator)
+ ra.RequestProcessors, err = appendRequestProcessors(ra.RequestProcessors, jsnCfg.Request_processors)
return
}
// AsMapInterface returns the config as a map[string]any
-func (ra RadiusAgentCfg) AsMapInterface(separator string) any {
+func (ra RadiusAgentCfg) AsMapInterface() any {
mp := map[string]any{
utils.EnabledCfg: ra.Enabled,
utils.ListenNetCfg: ra.ListenNet,
@@ -90,7 +90,7 @@ func (ra RadiusAgentCfg) AsMapInterface(separator string) any {
requestProcessors := make([]map[string]any, len(ra.RequestProcessors))
for i, item := range ra.RequestProcessors {
- requestProcessors[i] = item.AsMapInterface(separator)
+ requestProcessors[i] = item.AsMapInterface()
}
mp[utils.RequestProcessorsCfg] = requestProcessors
@@ -153,7 +153,7 @@ type RadiusAgentJsonCfg struct {
Request_processors *[]*ReqProcessorJsnCfg
}
-func diffRadiusAgentJsonCfg(d *RadiusAgentJsonCfg, v1, v2 *RadiusAgentCfg, separator string) *RadiusAgentJsonCfg {
+func diffRadiusAgentJsonCfg(d *RadiusAgentJsonCfg, v1, v2 *RadiusAgentCfg) *RadiusAgentJsonCfg {
if d == nil {
d = new(RadiusAgentJsonCfg)
}
@@ -174,7 +174,7 @@ func diffRadiusAgentJsonCfg(d *RadiusAgentJsonCfg, v1, v2 *RadiusAgentCfg, separ
if !slices.Equal(v1.SessionSConns, v2.SessionSConns) {
d.Sessions_conns = utils.SliceStringPointer(getBiRPCInternalJSONConns(v2.SessionSConns))
}
- d.Request_processors = diffReqProcessorsJsnCfg(d.Request_processors, v1.RequestProcessors, v2.RequestProcessors, separator)
+ d.Request_processors = diffReqProcessorsJsnCfg(d.Request_processors, v1.RequestProcessors, v2.RequestProcessors)
return d
}
diff --git a/config/radiuscfg_test.go b/config/radiuscfg_test.go
index f3d5d9456..996088cd4 100644
--- a/config/radiuscfg_test.go
+++ b/config/radiuscfg_test.go
@@ -89,13 +89,13 @@ func TestRadiusAgentCfgloadFromJsonCfgCase1(t *testing.T) {
r.ComputePath()
}
cfg := NewDefaultCGRConfig()
- if err := cfg.radiusAgentCfg.loadFromJSONCfg(cfgJSON, cfg.generalCfg.RSRSep); err != nil {
+ if err := cfg.radiusAgentCfg.loadFromJSONCfg(cfgJSON); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, cfg.radiusAgentCfg) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(cfg.radiusAgentCfg))
}
cfgJSON = nil
- if err := cfg.radiusAgentCfg.loadFromJSONCfg(cfgJSON, cfg.generalCfg.RSRSep); err != nil {
+ if err := cfg.radiusAgentCfg.loadFromJSONCfg(cfgJSON); err != nil {
t.Error(err)
}
}
@@ -126,7 +126,7 @@ func TestRadiusAgentCfgloadFromJsonCfgCase2(t *testing.T) {
}
if jsonCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if err := jsonCfg.radiusAgentCfg.loadFromJSONCfg(cfgJSON, jsonCfg.generalCfg.RSRSep); err != nil {
+ } else if err := jsonCfg.radiusAgentCfg.loadFromJSONCfg(cfgJSON); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(jsonCfg.radiusAgentCfg.RequestProcessors[0].ID, expected.RequestProcessors[0].ID) {
t.Errorf("Expected %+v, received %+v", utils.ToJSON(jsonCfg.radiusAgentCfg.RequestProcessors[0].ID),
@@ -144,7 +144,7 @@ func TestRadiusAgentCfgloadFromJsonCfgCase3(t *testing.T) {
}
expected := "invalid converter terminator in rule: "
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.radiusAgentCfg.loadFromJSONCfg(cfgJSON, jsonCfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := jsonCfg.radiusAgentCfg.loadFromJSONCfg(cfgJSON); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -202,7 +202,7 @@ func TestRadiusAgentCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.radiusAgentCfg.AsMapInterface(cgrCfg.generalCfg.RSRSep); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.radiusAgentCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -227,7 +227,7 @@ func TestRadiusAgentCfgAsMapInterface1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.radiusAgentCfg.AsMapInterface(cgrCfg.generalCfg.RSRSep); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.radiusAgentCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -334,7 +334,7 @@ func TestDiffRadiusAgentJsonCfg(t *testing.T) {
},
}
- rcv := diffRadiusAgentJsonCfg(d, v1, v2, ";")
+ rcv := diffRadiusAgentJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -347,7 +347,7 @@ func TestDiffRadiusAgentJsonCfg(t *testing.T) {
{},
},
}
- rcv = diffRadiusAgentJsonCfg(d, v1, v2, ";")
+ rcv = diffRadiusAgentJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
diff --git a/config/rankingscfg.go b/config/rankingscfg.go
index c56257818..fcb28f62c 100644
--- a/config/rankingscfg.go
+++ b/config/rankingscfg.go
@@ -73,7 +73,7 @@ func (rnk *RankingSCfg) loadFromJSONCfg(jsnCfg *RankingSJsonCfg) (err error) {
return
}
-func (rnk *RankingSCfg) AsMapInterface(string) any {
+func (rnk *RankingSCfg) AsMapInterface() any {
mp := map[string]any{
utils.EnabledCfg: rnk.Enabled,
utils.StoreIntervalCfg: utils.EmptyString,
diff --git a/config/rankingscfg_test.go b/config/rankingscfg_test.go
index 1b86e6331..fe7401333 100644
--- a/config/rankingscfg_test.go
+++ b/config/rankingscfg_test.go
@@ -352,7 +352,7 @@ func TestRankingSCfgAsMapInterfaceStoreInterval(t *testing.T) {
rnk := &RankingSCfg{
StoreInterval: 30 * time.Second,
}
- result := rnk.AsMapInterface("")
+ result := rnk.AsMapInterface()
resultMap, ok := result.(map[string]any)
if !ok {
t.Fatalf("Expected result to be of type map[string]any, got %T", result)
diff --git a/config/ratescfg.go b/config/ratescfg.go
index ebc8b64aa..bfb66680a 100644
--- a/config/ratescfg.go
+++ b/config/ratescfg.go
@@ -174,7 +174,7 @@ func (rCfg *RateSCfg) loadFromJSONCfg(jsnCfg *RateSJsonCfg) (err error) {
}
// AsMapInterface returns the config as a map[string]any
-func (rCfg RateSCfg) AsMapInterface(string) any {
+func (rCfg RateSCfg) AsMapInterface() any {
opts := map[string]any{
utils.MetaProfileIDs: rCfg.Opts.ProfileIDs,
utils.MetaStartTime: rCfg.Opts.StartTime,
diff --git a/config/ratescfg_test.go b/config/ratescfg_test.go
index c82095474..3b68bd643 100644
--- a/config/ratescfg_test.go
+++ b/config/ratescfg_test.go
@@ -111,7 +111,7 @@ func TestRatesCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.rateSCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.rateSCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -163,7 +163,7 @@ func TestRatesCfgAsMapInterface1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.rateSCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.rateSCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
diff --git a/config/registrarccfg.go b/config/registrarccfg.go
index 8806d72fc..2800f970f 100644
--- a/config/registrarccfg.go
+++ b/config/registrarccfg.go
@@ -48,7 +48,7 @@ func (dps *RegistrarCCfgs) loadFromJSONCfg(jsnCfg *RegistrarCJsonCfgs) (err erro
}
// AsMapInterface returns the config as a map[string]any
-func (dps RegistrarCCfgs) AsMapInterface(string) any {
+func (dps RegistrarCCfgs) AsMapInterface() any {
return map[string]any{
utils.RPCCfg: dps.RPC.AsMapInterface(),
}
diff --git a/config/reqprocessorcfg.go b/config/reqprocessorcfg.go
index 9ef75b7ac..04d5309ca 100644
--- a/config/reqprocessorcfg.go
+++ b/config/reqprocessorcfg.go
@@ -35,7 +35,7 @@ type RequestProcessor struct {
ReplyFields []*FCTemplate
}
-func (rp *RequestProcessor) loadFromJSONCfg(jsnCfg *ReqProcessorJsnCfg, sep string) (err error) {
+func (rp *RequestProcessor) loadFromJSONCfg(jsnCfg *ReqProcessorJsnCfg) (err error) {
if jsnCfg == nil {
return nil
}
@@ -52,17 +52,17 @@ func (rp *RequestProcessor) loadFromJSONCfg(jsnCfg *ReqProcessorJsnCfg, sep stri
rp.Timezone = *jsnCfg.Timezone
}
if jsnCfg.Tenant != nil {
- if rp.Tenant, err = NewRSRParsers(*jsnCfg.Tenant, sep); err != nil {
+ if rp.Tenant, err = NewRSRParsers(*jsnCfg.Tenant, utils.RSRSep); err != nil {
return
}
}
if jsnCfg.Request_fields != nil {
- if rp.RequestFields, err = FCTemplatesFromFCTemplatesJSONCfg(*jsnCfg.Request_fields, sep); err != nil {
+ if rp.RequestFields, err = FCTemplatesFromFCTemplatesJSONCfg(*jsnCfg.Request_fields); err != nil {
return
}
}
if jsnCfg.Reply_fields != nil {
- if rp.ReplyFields, err = FCTemplatesFromFCTemplatesJSONCfg(*jsnCfg.Reply_fields, sep); err != nil {
+ if rp.ReplyFields, err = FCTemplatesFromFCTemplatesJSONCfg(*jsnCfg.Reply_fields); err != nil {
return
}
}
@@ -70,7 +70,7 @@ func (rp *RequestProcessor) loadFromJSONCfg(jsnCfg *ReqProcessorJsnCfg, sep stri
}
// AsMapInterface returns the config as a map[string]any
-func (rp *RequestProcessor) AsMapInterface(separator string) (initialMP map[string]any) {
+func (rp *RequestProcessor) AsMapInterface() (initialMP map[string]any) {
initialMP = map[string]any{
utils.IDCfg: rp.ID,
utils.FiltersCfg: slices.Clone(rp.Filters),
@@ -78,19 +78,19 @@ func (rp *RequestProcessor) AsMapInterface(separator string) (initialMP map[stri
utils.TimezoneCfg: rp.Timezone,
}
if rp.Tenant != nil {
- initialMP[utils.TenantCfg] = rp.Tenant.GetRule(separator)
+ initialMP[utils.TenantCfg] = rp.Tenant.GetRule()
}
if rp.RequestFields != nil {
requestFields := make([]map[string]any, len(rp.RequestFields))
for i, item := range rp.RequestFields {
- requestFields[i] = item.AsMapInterface(separator)
+ requestFields[i] = item.AsMapInterface()
}
initialMP[utils.RequestFieldsCfg] = requestFields
}
if rp.ReplyFields != nil {
replyFields := make([]map[string]any, len(rp.ReplyFields))
for i, item := range rp.ReplyFields {
- replyFields[i] = item.AsMapInterface(separator)
+ replyFields[i] = item.AsMapInterface()
}
initialMP[utils.ReplyFieldsCfg] = replyFields
}
@@ -133,15 +133,15 @@ type ReqProcessorJsnCfg struct {
Reply_fields *[]*FcTemplateJsonCfg
}
-func diffReqProcessorJsnCfg(d *ReqProcessorJsnCfg, v1, v2 *RequestProcessor, separator string) *ReqProcessorJsnCfg {
+func diffReqProcessorJsnCfg(d *ReqProcessorJsnCfg, v1, v2 *RequestProcessor) *ReqProcessorJsnCfg {
if d == nil {
d = new(ReqProcessorJsnCfg)
}
if v1.ID != v2.ID {
d.ID = utils.StringPointer(v2.ID)
}
- tnt1 := v1.Tenant.GetRule(separator)
- tnt2 := v2.Tenant.GetRule(separator)
+ tnt1 := v1.Tenant.GetRule()
+ tnt2 := v2.Tenant.GetRule()
if tnt1 != tnt2 {
d.Tenant = utils.StringPointer(tnt2)
}
@@ -160,7 +160,7 @@ func diffReqProcessorJsnCfg(d *ReqProcessorJsnCfg, v1, v2 *RequestProcessor, sep
if d.Request_fields != nil {
req = *d.Request_fields
}
- req = diffFcTemplateJsonCfg(req, v1.RequestFields, v2.RequestFields, separator)
+ req = diffFcTemplateJsonCfg(req, v1.RequestFields, v2.RequestFields)
if req != nil {
d.Request_fields = &req
}
@@ -168,7 +168,7 @@ func diffReqProcessorJsnCfg(d *ReqProcessorJsnCfg, v1, v2 *RequestProcessor, sep
if d.Reply_fields != nil {
rply = *d.Reply_fields
}
- rply = diffFcTemplateJsonCfg(rply, v1.ReplyFields, v2.ReplyFields, separator)
+ rply = diffFcTemplateJsonCfg(rply, v1.ReplyFields, v2.ReplyFields)
if rply != nil {
d.Reply_fields = &rply
}
@@ -192,13 +192,13 @@ func getRequestProcessor(d []*RequestProcessor, id string) *RequestProcessor {
return new(RequestProcessor)
}
-func diffReqProcessorsJsnCfg(d *[]*ReqProcessorJsnCfg, v1, v2 []*RequestProcessor, separator string) *[]*ReqProcessorJsnCfg {
+func diffReqProcessorsJsnCfg(d *[]*ReqProcessorJsnCfg, v1, v2 []*RequestProcessor) *[]*ReqProcessorJsnCfg {
if d == nil || *d == nil {
d = &[]*ReqProcessorJsnCfg{}
}
for _, val := range v2 {
dv, i := getReqProcessorJsnCfg(*d, val.ID)
- dv = diffReqProcessorJsnCfg(dv, getRequestProcessor(v1, val.ID), val, separator)
+ dv = diffReqProcessorJsnCfg(dv, getRequestProcessor(v1, val.ID), val)
if i == -1 {
*d = append(*d, dv)
} else {
@@ -208,7 +208,7 @@ func diffReqProcessorsJsnCfg(d *[]*ReqProcessorJsnCfg, v1, v2 []*RequestProcesso
return d
}
-func appendRequestProcessors(to []*RequestProcessor, from *[]*ReqProcessorJsnCfg, separator string) (_ []*RequestProcessor, err error) {
+func appendRequestProcessors(to []*RequestProcessor, from *[]*ReqProcessorJsnCfg) (_ []*RequestProcessor, err error) {
if from == nil {
return to, nil
}
@@ -224,7 +224,7 @@ func appendRequestProcessors(to []*RequestProcessor, from *[]*ReqProcessorJsnCfg
}
}
}
- if err = rp.loadFromJSONCfg(rpJsn, separator); err != nil {
+ if err = rp.loadFromJSONCfg(rpJsn); err != nil {
return
}
if !haveID {
diff --git a/config/reqprocessorcfg_test.go b/config/reqprocessorcfg_test.go
index 31e15f394..79a8106c9 100644
--- a/config/reqprocessorcfg_test.go
+++ b/config/reqprocessorcfg_test.go
@@ -107,7 +107,7 @@ func TestDiffReqProcessorJsnCfg(t *testing.T) {
},
}
- rcv := diffReqProcessorJsnCfg(d, v1, v2, ";")
+ rcv := diffReqProcessorJsnCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -143,7 +143,7 @@ func TestDiffReqProcessorJsnCfg(t *testing.T) {
}
v1 = v2
- rcv = diffReqProcessorJsnCfg(d, v1, v2, ";")
+ rcv = diffReqProcessorJsnCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -236,7 +236,7 @@ func TestDiffReqProcessorsJsnCfg(t *testing.T) {
},
}
- rcv := diffReqProcessorsJsnCfg(d, v1, v2, ";")
+ rcv := diffReqProcessorsJsnCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -267,7 +267,7 @@ func TestDiffReqProcessorsJsnCfg(t *testing.T) {
},
},
}
- rcv = diffReqProcessorsJsnCfg(d, v1, v2, ";")
+ rcv = diffReqProcessorsJsnCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -278,7 +278,7 @@ func TestDiffReqProcessorsJsnCfg(t *testing.T) {
expected = &[]*ReqProcessorJsnCfg{
{},
}
- rcv = diffReqProcessorsJsnCfg(d, v1, v2, ";")
+ rcv = diffReqProcessorsJsnCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
diff --git a/config/resourcescfg.go b/config/resourcescfg.go
index 2056e1e88..817a62e03 100644
--- a/config/resourcescfg.go
+++ b/config/resourcescfg.go
@@ -130,7 +130,7 @@ func (rlcfg *ResourceSConfig) loadFromJSONCfg(jsnCfg *ResourceSJsonCfg) (err err
}
// AsMapInterface returns the config as a map[string]any
-func (rlcfg ResourceSConfig) AsMapInterface(string) any {
+func (rlcfg ResourceSConfig) AsMapInterface() any {
opts := map[string]any{
utils.MetaUsageIDCfg: rlcfg.Opts.UsageID,
utils.MetaUsageTTLCfg: rlcfg.Opts.UsageTTL,
diff --git a/config/resourcescfg_test.go b/config/resourcescfg_test.go
index 0aa050dd3..c206381a7 100644
--- a/config/resourcescfg_test.go
+++ b/config/resourcescfg_test.go
@@ -149,7 +149,7 @@ func TestResourceSConfigAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.resourceSCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.resourceSCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -188,7 +188,7 @@ func TestResourceSConfigAsMapInterface1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.resourceSCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.resourceSCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
diff --git a/config/routescfg.go b/config/routescfg.go
index c557f7a0c..fe3fea7e0 100644
--- a/config/routescfg.go
+++ b/config/routescfg.go
@@ -228,7 +228,7 @@ func (rts *RoutesOpts) Clone() (cln *RoutesOpts) {
}
// AsMapInterface returns the config as a map[string]any
-func (rts RouteSCfg) AsMapInterface(string) any {
+func (rts RouteSCfg) AsMapInterface() any {
opts := map[string]any{
utils.OptsContext: rts.Opts.Context,
utils.MetaProfileCountCfg: rts.Opts.ProfileCount,
diff --git a/config/routescfg_test.go b/config/routescfg_test.go
index 41949a047..ea24a9a6c 100644
--- a/config/routescfg_test.go
+++ b/config/routescfg_test.go
@@ -131,7 +131,7 @@ func TestRouteSCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.routeSCfg.AsMapInterface(""); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cgrCfg.routeSCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -183,7 +183,7 @@ func TestRouteSCfgAsMapInterface1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.routeSCfg.AsMapInterface(""); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cgrCfg.routeSCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
diff --git a/config/rpcconn.go b/config/rpcconn.go
index 0cd6e3d3f..703e2449c 100644
--- a/config/rpcconn.go
+++ b/config/rpcconn.go
@@ -83,7 +83,7 @@ func (rC RPCConns) loadFromJSONCfg(jsn RPCConnsJson) {
}
// AsMapInterface returns the config as a map[string]any
-func (rC RPCConns) AsMapInterface(string) any {
+func (rC RPCConns) AsMapInterface() any {
rpcConns := make(map[string]any)
for key, value := range rC {
rpcConns[key] = value.AsMapInterface()
diff --git a/config/rpcconn_test.go b/config/rpcconn_test.go
index 701f0032e..87b758b6e 100644
--- a/config/rpcconn_test.go
+++ b/config/rpcconn_test.go
@@ -305,7 +305,7 @@ func TestRPCConnsAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.rpcConns.AsMapInterface(""); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cgrCfg.rpcConns.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -365,7 +365,7 @@ func TestRpcConnAsMapInterface1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.rpcConns.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.rpcConns.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
diff --git a/config/rsrparser.go b/config/rsrparser.go
index 489242b3c..0aea22242 100644
--- a/config/rsrparser.go
+++ b/config/rsrparser.go
@@ -32,7 +32,7 @@ var (
)
// NewRSRParsers creates a new RSRParsers by spliting the rule using the separator
-func NewRSRParsers(parsersRules string, rsrSeparator string) (prsrs RSRParsers, err error) {
+func NewRSRParsers(parsersRules, sep string) (prsrs RSRParsers, err error) {
if parsersRules == utils.EmptyString {
return
}
@@ -82,7 +82,7 @@ func NewRSRParsers(parsersRules string, rsrSeparator string) (prsrs RSRParsers,
}
return NewRSRParsersFromSlice(splitedRule)
}
- return NewRSRParsersFromSlice(strings.Split(parsersRules, rsrSeparator))
+ return NewRSRParsersFromSlice(strings.Split(parsersRules, sep))
}
// NewRSRParsersFromSlice creates a new RSRParsers from a slice
@@ -111,9 +111,9 @@ func NewRSRParsersMustCompile(parsersRules string, rsrSeparator string) (prsrs R
type RSRParsers []*RSRParser
// GetRule returns the original string from which the rules were composed
-func (prsrs RSRParsers) GetRule(sep string) (out string) {
+func (prsrs RSRParsers) GetRule() (out string) {
for _, prsr := range prsrs {
- out += sep + prsr.Rules
+ out += utils.RSRSep + prsr.Rules
}
if len(out) != 0 {
out = out[1:]
@@ -263,7 +263,7 @@ func (prsr *RSRParser) Compile() (err error) {
if dynIdxEnd := strings.IndexByte(parserRules[dynIdxStart:], utils.RSRDynEndChar); dynIdxEnd != -1 {
var dynrules RSRParsers
if dynrules, err = NewRSRParsers(parserRules[dynIdxStart+1:dynIdxStart+dynIdxEnd],
- CgrConfig().GeneralCfg().RSRSep); err != nil {
+ utils.RSRSep); err != nil {
return
}
prsr.dynRules = dynrules
diff --git a/config/rsrparser_test.go b/config/rsrparser_test.go
index 02fae3348..96408bfc3 100644
--- a/config/rsrparser_test.go
+++ b/config/rsrparser_test.go
@@ -235,7 +235,7 @@ func TestRSRParserGetRule(t *testing.T) {
ruleStr := "constant;~*req.Account"
if rsrParsers, err := NewRSRParsers(ruleStr, utils.InfieldSep); err != nil {
t.Error("Unexpected error: ", err.Error())
- } else if rule := rsrParsers.GetRule(utils.InfieldSep); rule != ruleStr {
+ } else if rule := rsrParsers.GetRule(); rule != ruleStr {
t.Errorf("Expected: %q received: %q", ruleStr, rule)
}
}
diff --git a/config/sentrypeercfg.go b/config/sentrypeercfg.go
index 9826a64f4..cb458248e 100644
--- a/config/sentrypeercfg.go
+++ b/config/sentrypeercfg.go
@@ -68,7 +68,7 @@ func (sentrypeer *SentryPeerCfg) loadFromJSONCfg(jsnCfg *SentryPeerJsonCfg) (err
}
return
}
-func (sentrypeer SentryPeerCfg) AsMapInterface(string) any {
+func (sentrypeer SentryPeerCfg) AsMapInterface() any {
return map[string]any{
utils.ClientIDCfg: sentrypeer.ClientID,
utils.ClientSecretCfg: sentrypeer.ClientSecret,
diff --git a/config/sentrypeercfg_test.go b/config/sentrypeercfg_test.go
index 3f63ae2e4..1b5a90e0b 100644
--- a/config/sentrypeercfg_test.go
+++ b/config/sentrypeercfg_test.go
@@ -90,7 +90,7 @@ func TestSentryPeerCfgAsMapInterface(t *testing.T) {
t.Error(err)
} else if err = sp.Load(context.Background(), jsnCfg, nil); err != nil {
t.Error(err)
- } else if rcv := sp.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := sp.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected: %+v ,received: %+v", eMap, rcv)
}
}
diff --git a/config/sessionscfg.go b/config/sessionscfg.go
index c3f870022..cdb5c7b70 100644
--- a/config/sessionscfg.go
+++ b/config/sessionscfg.go
@@ -424,7 +424,7 @@ func (scfg SessionSCfg) GetDefaultUsage(tor string) time.Duration {
}
// AsMapInterface returns the config as a map[string]any
-func (scfg SessionSCfg) AsMapInterface(string) any {
+func (scfg SessionSCfg) AsMapInterface() any {
maxComputed := make(map[string]string)
for key, item := range scfg.DefaultUsage {
if key == utils.MetaAny || key == utils.MetaVoice {
diff --git a/config/sessionscfg_test.go b/config/sessionscfg_test.go
index 6193fa5cb..71ca52d8c 100644
--- a/config/sessionscfg_test.go
+++ b/config/sessionscfg_test.go
@@ -564,7 +564,7 @@ func TestSessionSCfgAsMapInterfaceCase1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.sessionSCfg.AsMapInterface(""); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cgrCfg.sessionSCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -699,7 +699,7 @@ func TestSessionSCfgAsMapInterfaceCase2(t *testing.T) {
if err != nil {
t.Error(err)
}
- rcv := cgrCfg.sessionSCfg.AsMapInterface("").(map[string]any)
+ rcv := cgrCfg.sessionSCfg.AsMapInterface().(map[string]any)
sort.Strings(rcv[utils.STIRCfg].(map[string]any)[utils.AllowedAtestCfg].([]string))
if !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
@@ -726,7 +726,7 @@ func TestSessionSCfgAsMapInterfaceCase3(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.sessionSCfg.AsMapInterface("").(map[string]any); !reflect.DeepEqual(eMap[utils.STIRCfg], rcv[utils.STIRCfg]) {
+ } else if rcv := cgrCfg.sessionSCfg.AsMapInterface().(map[string]any); !reflect.DeepEqual(eMap[utils.STIRCfg], rcv[utils.STIRCfg]) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap[utils.STIRCfg]), utils.ToJSON(rcv[utils.STIRCfg]))
}
}
@@ -832,7 +832,7 @@ func TestFsAgentCfgAsMapInterfaceCase1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.fsAgentCfg.AsMapInterface(cgrCfg.generalCfg.RSRSep); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.fsAgentCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, recevied %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -874,7 +874,7 @@ func TestFsAgentCfgAsMapInterfaceCase2(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.fsAgentCfg.AsMapInterface(cgrCfg.generalCfg.RSRSep); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.fsAgentCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, recevied %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -911,7 +911,7 @@ func TestFsAgentCfgAsMapInterfaceCase3(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.fsAgentCfg.AsMapInterface(cgrCfg.generalCfg.RSRSep); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.fsAgentCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, recevied %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
@@ -1033,7 +1033,7 @@ func TestAsteriskAgentCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.asteriskAgentCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.asteriskAgentCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected: %+v\nReceived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -1067,7 +1067,7 @@ func TestAsteriskAgentCfgAsMapInterface1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.asteriskAgentCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.asteriskAgentCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected: %+v\nReceived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
diff --git a/config/sipagentcfg.go b/config/sipagentcfg.go
index 4b3ba5cca..636176113 100644
--- a/config/sipagentcfg.go
+++ b/config/sipagentcfg.go
@@ -38,15 +38,15 @@ type SIPAgentCfg struct {
}
// loadSIPAgentCfg loads the sip_agent section of the configuration
-func (sa *SIPAgentCfg) Load(ctx *context.Context, jsnCfg ConfigDB, cfg *CGRConfig) (err error) {
+func (sa *SIPAgentCfg) Load(ctx *context.Context, jsnCfg ConfigDB, _ *CGRConfig) (err error) {
jsnSIPAgentCfg := new(SIPAgentJsonCfg)
if err = jsnCfg.GetSection(ctx, SIPAgentJSON, jsnSIPAgentCfg); err != nil {
return
}
- return sa.loadFromJSONCfg(jsnSIPAgentCfg, cfg.generalCfg.RSRSep)
+ return sa.loadFromJSONCfg(jsnSIPAgentCfg)
}
-func (sa *SIPAgentCfg) loadFromJSONCfg(jsnCfg *SIPAgentJsonCfg, sep string) (err error) {
+func (sa *SIPAgentCfg) loadFromJSONCfg(jsnCfg *SIPAgentJsonCfg) (err error) {
if jsnCfg == nil {
return nil
}
@@ -70,12 +70,12 @@ func (sa *SIPAgentCfg) loadFromJSONCfg(jsnCfg *SIPAgentJsonCfg, sep string) (err
return err
}
}
- sa.RequestProcessors, err = appendRequestProcessors(sa.RequestProcessors, jsnCfg.Request_processors, sep)
+ sa.RequestProcessors, err = appendRequestProcessors(sa.RequestProcessors, jsnCfg.Request_processors)
return
}
// AsMapInterface returns the config as a map[string]any
-func (sa SIPAgentCfg) AsMapInterface(separator string) any {
+func (sa SIPAgentCfg) AsMapInterface() any {
mp := map[string]any{
utils.EnabledCfg: sa.Enabled,
utils.ListenCfg: sa.Listen,
@@ -86,7 +86,7 @@ func (sa SIPAgentCfg) AsMapInterface(separator string) any {
requestProcessors := make([]map[string]any, len(sa.RequestProcessors))
for i, item := range sa.RequestProcessors {
- requestProcessors[i] = item.AsMapInterface(separator)
+ requestProcessors[i] = item.AsMapInterface()
}
mp[utils.RequestProcessorsCfg] = requestProcessors
@@ -131,7 +131,7 @@ type SIPAgentJsonCfg struct {
Request_processors *[]*ReqProcessorJsnCfg
}
-func diffSIPAgentJsonCfg(d *SIPAgentJsonCfg, v1, v2 *SIPAgentCfg, separator string) *SIPAgentJsonCfg {
+func diffSIPAgentJsonCfg(d *SIPAgentJsonCfg, v1, v2 *SIPAgentCfg) *SIPAgentJsonCfg {
if d == nil {
d = new(SIPAgentJsonCfg)
}
@@ -153,6 +153,6 @@ func diffSIPAgentJsonCfg(d *SIPAgentJsonCfg, v1, v2 *SIPAgentCfg, separator stri
if v1.RetransmissionTimer != v2.RetransmissionTimer {
d.Retransmission_timer = utils.StringPointer(v2.RetransmissionTimer.String())
}
- d.Request_processors = diffReqProcessorsJsnCfg(d.Request_processors, v1.RequestProcessors, v2.RequestProcessors, separator)
+ d.Request_processors = diffReqProcessorsJsnCfg(d.Request_processors, v1.RequestProcessors, v2.RequestProcessors)
return d
}
diff --git a/config/sipagentcfg_test.go b/config/sipagentcfg_test.go
index 488baa1a1..071f825eb 100644
--- a/config/sipagentcfg_test.go
+++ b/config/sipagentcfg_test.go
@@ -81,13 +81,13 @@ func TestSIPAgentCfgloadFromJsonCfgCase1(t *testing.T) {
r.ComputePath()
}
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.sipAgentCfg.loadFromJSONCfg(cfgJSONS, jsonCfg.generalCfg.RSRSep); err != nil {
+ if err := jsonCfg.sipAgentCfg.loadFromJSONCfg(cfgJSONS); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, jsonCfg.sipAgentCfg) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(jsonCfg.sipAgentCfg))
}
cfgJSONS = nil
- if err := jsonCfg.sipAgentCfg.loadFromJSONCfg(cfgJSONS, jsonCfg.generalCfg.RSRSep); err != nil {
+ if err := jsonCfg.sipAgentCfg.loadFromJSONCfg(cfgJSONS); err != nil {
t.Error(err)
}
}
@@ -98,7 +98,7 @@ func TestSIPAgentCfgloadFromJsonCfgCase2(t *testing.T) {
}
expected := "time: unknown unit \"ss\" in duration \"1ss\""
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.sipAgentCfg.loadFromJSONCfg(cfgJSON, jsonCfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := jsonCfg.sipAgentCfg.loadFromJSONCfg(cfgJSON); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -127,7 +127,7 @@ func TestSIPAgentCfgloadFromJsonCfgCase4(t *testing.T) {
}
if jsonCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if err := jsonCfg.sipAgentCfg.loadFromJSONCfg(sipAgent, jsonCfg.generalCfg.RSRSep); err != nil {
+ } else if err := jsonCfg.sipAgentCfg.loadFromJSONCfg(sipAgent); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected.RequestProcessors[0].ID, jsonCfg.sipAgentCfg.RequestProcessors[0].ID) {
t.Errorf("Expected %+v, received %+v", expected.RequestProcessors[0].ID, jsonCfg.sipAgentCfg.RequestProcessors[0].ID)
@@ -142,7 +142,7 @@ func TestSIPAgentCfgloadFromJsonCfgCase5(t *testing.T) {
}
expected := "invalid converter terminator in rule: "
jsonCfg := NewDefaultCGRConfig()
- if err := jsonCfg.sipAgentCfg.loadFromJSONCfg(sipAgent, jsonCfg.generalCfg.RSRSep); err == nil || err.Error() != expected {
+ if err := jsonCfg.sipAgentCfg.loadFromJSONCfg(sipAgent); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
@@ -171,7 +171,7 @@ func TestSIPAgentCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.sipAgentCfg.AsMapInterface(cgrCfg.generalCfg.RSRSep); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cgrCfg.sipAgentCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v, received %+v", eMap, rcv)
}
}
@@ -237,7 +237,7 @@ func TestSIPAgentCfgAsMapInterface1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.sipAgentCfg.AsMapInterface(cgrCfg.generalCfg.RSRSep); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.sipAgentCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, received %+v", eMap, rcv)
}
}
@@ -287,7 +287,7 @@ func TestSIPAgentCfgAsMapInterface2(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.sipAgentCfg.AsMapInterface(cgrCfg.generalCfg.RSRSep); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.sipAgentCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, received %+v", eMap, rcv)
}
}
@@ -368,7 +368,7 @@ func TestDiffSIPAgentJsonCfg(t *testing.T) {
Request_processors: &[]*ReqProcessorJsnCfg{},
}
- rcv := diffSIPAgentJsonCfg(d, v1, v2, ";")
+ rcv := diffSIPAgentJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
@@ -377,7 +377,7 @@ func TestDiffSIPAgentJsonCfg(t *testing.T) {
expected = &SIPAgentJsonCfg{
Request_processors: &[]*ReqProcessorJsnCfg{},
}
- rcv = diffSIPAgentJsonCfg(d, v1, v2, ";")
+ rcv = diffSIPAgentJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
diff --git a/config/statscfg.go b/config/statscfg.go
index 2da880d3b..60f26e645 100644
--- a/config/statscfg.go
+++ b/config/statscfg.go
@@ -142,7 +142,7 @@ func (st *StatSCfg) loadFromJSONCfg(jsnCfg *StatServJsonCfg) (err error) {
}
// AsMapInterface returns the config as a map[string]any
-func (st StatSCfg) AsMapInterface(string) any {
+func (st StatSCfg) AsMapInterface() any {
opts := map[string]any{
utils.MetaProfileIDs: st.Opts.ProfileIDs,
utils.MetaProfileIgnoreFilters: st.Opts.ProfileIgnoreFilters,
diff --git a/config/statscfg_test.go b/config/statscfg_test.go
index c9d7ea42d..d1feb3d0e 100644
--- a/config/statscfg_test.go
+++ b/config/statscfg_test.go
@@ -141,7 +141,7 @@ func TestStatSCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.statsCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.statsCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, received %+v", eMap, rcv)
}
}
@@ -185,7 +185,7 @@ func TestStatSCfgAsMapInterface1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.statsCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.statsCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, received %+v", eMap, rcv)
}
}
diff --git a/config/stordbcfg.go b/config/stordbcfg.go
index 5e9d2ec6c..be36b5a0e 100644
--- a/config/stordbcfg.go
+++ b/config/stordbcfg.go
@@ -245,7 +245,7 @@ func (dbcfg StorDbCfg) Clone() (cln *StorDbCfg) {
}
// AsMapInterface returns the config as a map[string]any
-func (dbcfg StorDbCfg) AsMapInterface(string) any {
+func (dbcfg StorDbCfg) AsMapInterface() any {
opts := map[string]any{
utils.SQLMaxOpenConnsCfg: dbcfg.Opts.SQLMaxOpenConns,
utils.SQLMaxIdleConnsCfg: dbcfg.Opts.SQLMaxIdleConns,
diff --git a/config/stordbcfg_test.go b/config/stordbcfg_test.go
index ec0647382..c5fa5fd8b 100644
--- a/config/stordbcfg_test.go
+++ b/config/stordbcfg_test.go
@@ -261,7 +261,7 @@ func TestStorDbCfgAsMapInterface(t *testing.T) {
if cfgCgr, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
} else {
- rcv := cfgCgr.storDbCfg.AsMapInterface("").(map[string]any)
+ rcv := cfgCgr.storDbCfg.AsMapInterface().(map[string]any)
if !reflect.DeepEqual(eMap[utils.ItemsCfg].(map[string]any)[utils.SessionSConnsCfg],
rcv[utils.ItemsCfg].(map[string]any)[utils.SessionSConnsCfg]) {
t.Errorf("Expected %+v, received %+v", utils.ToJSON(eMap[utils.ItemsCfg].(map[string]any)[utils.SessionSConnsCfg]),
diff --git a/config/suretaxcfg.go b/config/suretaxcfg.go
index 5113c52bf..4978477ce 100644
--- a/config/suretaxcfg.go
+++ b/config/suretaxcfg.go
@@ -185,7 +185,7 @@ func (st *SureTaxCfg) loadFromJSONCfg(jsnCfg *SureTaxJsonCfg) (err error) {
}
// AsMapInterface returns the config as a map[string]any
-func (st SureTaxCfg) AsMapInterface(separator string) any {
+func (st SureTaxCfg) AsMapInterface() any {
return map[string]any{
utils.URLCfg: st.URL,
utils.ClientNumberCfg: st.ClientNumber,
@@ -198,22 +198,22 @@ func (st SureTaxCfg) AsMapInterface(separator string) any {
utils.ResponseTypeCfg: st.ResponseType,
utils.RegulatoryCodeCfg: st.RegulatoryCode,
- utils.ClientTrackingCfg: st.ClientTracking.GetRule(separator),
- utils.CustomerNumberCfg: st.CustomerNumber.GetRule(separator),
- utils.OrigNumberCfg: st.OrigNumber.GetRule(separator),
- utils.TermNumberCfg: st.TermNumber.GetRule(separator),
- utils.BillToNumberCfg: st.BillToNumber.GetRule(separator),
- utils.ZipcodeCfg: st.Zipcode.GetRule(separator),
- utils.Plus4Cfg: st.Plus4.GetRule(separator),
- utils.P2PZipcodeCfg: st.P2PZipcode.GetRule(separator),
- utils.P2PPlus4Cfg: st.P2PPlus4.GetRule(separator),
- utils.UnitsCfg: st.Units.GetRule(separator),
- utils.UnitTypeCfg: st.UnitType.GetRule(separator),
- utils.TaxIncludedCfg: st.TaxIncluded.GetRule(separator),
- utils.TaxSitusRuleCfg: st.TaxSitusRule.GetRule(separator),
- utils.TransTypeCodeCfg: st.TransTypeCode.GetRule(separator),
- utils.SalesTypeCodeCfg: st.SalesTypeCode.GetRule(separator),
- utils.TaxExemptionCodeListCfg: st.TaxExemptionCodeList.GetRule(separator),
+ utils.ClientTrackingCfg: st.ClientTracking.GetRule(),
+ utils.CustomerNumberCfg: st.CustomerNumber.GetRule(),
+ utils.OrigNumberCfg: st.OrigNumber.GetRule(),
+ utils.TermNumberCfg: st.TermNumber.GetRule(),
+ utils.BillToNumberCfg: st.BillToNumber.GetRule(),
+ utils.ZipcodeCfg: st.Zipcode.GetRule(),
+ utils.Plus4Cfg: st.Plus4.GetRule(),
+ utils.P2PZipcodeCfg: st.P2PZipcode.GetRule(),
+ utils.P2PPlus4Cfg: st.P2PPlus4.GetRule(),
+ utils.UnitsCfg: st.Units.GetRule(),
+ utils.UnitTypeCfg: st.UnitType.GetRule(),
+ utils.TaxIncludedCfg: st.TaxIncluded.GetRule(),
+ utils.TaxSitusRuleCfg: st.TaxSitusRule.GetRule(),
+ utils.TransTypeCodeCfg: st.TransTypeCode.GetRule(),
+ utils.SalesTypeCodeCfg: st.SalesTypeCode.GetRule(),
+ utils.TaxExemptionCodeListCfg: st.TaxExemptionCodeList.GetRule(),
}
}
@@ -287,7 +287,7 @@ type SureTaxJsonCfg struct {
Tax_exemption_code_list *string
}
-func diffSureTaxJsonCfg(d *SureTaxJsonCfg, v1, v2 *SureTaxCfg, separator string) *SureTaxJsonCfg {
+func diffSureTaxJsonCfg(d *SureTaxJsonCfg, v1, v2 *SureTaxCfg) *SureTaxJsonCfg {
if d == nil {
d = new(SureTaxJsonCfg)
}
@@ -321,83 +321,83 @@ func diffSureTaxJsonCfg(d *SureTaxJsonCfg, v1, v2 *SureTaxCfg, separator string)
if v1.RegulatoryCode != v2.RegulatoryCode {
d.Regulatory_code = utils.StringPointer(v2.RegulatoryCode)
}
- rs1 := v1.ClientTracking.GetRule(separator)
- rs2 := v2.ClientTracking.GetRule(separator)
+ rs1 := v1.ClientTracking.GetRule()
+ rs2 := v2.ClientTracking.GetRule()
if rs1 != rs2 {
d.Client_tracking = utils.StringPointer(rs2)
}
- rs1 = v1.CustomerNumber.GetRule(separator)
- rs2 = v2.CustomerNumber.GetRule(separator)
+ rs1 = v1.CustomerNumber.GetRule()
+ rs2 = v2.CustomerNumber.GetRule()
if rs1 != rs2 {
d.Customer_number = utils.StringPointer(rs2)
}
- rs1 = v1.OrigNumber.GetRule(separator)
- rs2 = v2.OrigNumber.GetRule(separator)
+ rs1 = v1.OrigNumber.GetRule()
+ rs2 = v2.OrigNumber.GetRule()
if rs1 != rs2 {
d.Orig_number = utils.StringPointer(rs2)
}
- rs1 = v1.TermNumber.GetRule(separator)
- rs2 = v2.TermNumber.GetRule(separator)
+ rs1 = v1.TermNumber.GetRule()
+ rs2 = v2.TermNumber.GetRule()
if rs1 != rs2 {
d.Term_number = utils.StringPointer(rs2)
}
- rs1 = v1.BillToNumber.GetRule(separator)
- rs2 = v2.BillToNumber.GetRule(separator)
+ rs1 = v1.BillToNumber.GetRule()
+ rs2 = v2.BillToNumber.GetRule()
if rs1 != rs2 {
d.Bill_to_number = utils.StringPointer(rs2)
}
- rs1 = v1.Zipcode.GetRule(separator)
- rs2 = v2.Zipcode.GetRule(separator)
+ rs1 = v1.Zipcode.GetRule()
+ rs2 = v2.Zipcode.GetRule()
if rs1 != rs2 {
d.Zipcode = utils.StringPointer(rs2)
}
- rs1 = v1.Plus4.GetRule(separator)
- rs2 = v2.Plus4.GetRule(separator)
+ rs1 = v1.Plus4.GetRule()
+ rs2 = v2.Plus4.GetRule()
if rs1 != rs2 {
d.Plus4 = utils.StringPointer(rs2)
}
- rs1 = v1.P2PZipcode.GetRule(separator)
- rs2 = v2.P2PZipcode.GetRule(separator)
+ rs1 = v1.P2PZipcode.GetRule()
+ rs2 = v2.P2PZipcode.GetRule()
if rs1 != rs2 {
d.P2PZipcode = utils.StringPointer(rs2)
}
- rs1 = v1.P2PPlus4.GetRule(separator)
- rs2 = v2.P2PPlus4.GetRule(separator)
+ rs1 = v1.P2PPlus4.GetRule()
+ rs2 = v2.P2PPlus4.GetRule()
if rs1 != rs2 {
d.P2PPlus4 = utils.StringPointer(rs2)
}
- rs1 = v1.Units.GetRule(separator)
- rs2 = v2.Units.GetRule(separator)
+ rs1 = v1.Units.GetRule()
+ rs2 = v2.Units.GetRule()
if rs1 != rs2 {
d.Units = utils.StringPointer(rs2)
}
- rs1 = v1.UnitType.GetRule(separator)
- rs2 = v2.UnitType.GetRule(separator)
+ rs1 = v1.UnitType.GetRule()
+ rs2 = v2.UnitType.GetRule()
if rs1 != rs2 {
d.Unit_type = utils.StringPointer(rs2)
}
- rs1 = v1.TaxIncluded.GetRule(separator)
- rs2 = v2.TaxIncluded.GetRule(separator)
+ rs1 = v1.TaxIncluded.GetRule()
+ rs2 = v2.TaxIncluded.GetRule()
if rs1 != rs2 {
d.Tax_included = utils.StringPointer(rs2)
}
- rs1 = v1.TaxSitusRule.GetRule(separator)
- rs2 = v2.TaxSitusRule.GetRule(separator)
+ rs1 = v1.TaxSitusRule.GetRule()
+ rs2 = v2.TaxSitusRule.GetRule()
if rs1 != rs2 {
d.Tax_situs_rule = utils.StringPointer(rs2)
}
- rs1 = v1.TransTypeCode.GetRule(separator)
- rs2 = v2.TransTypeCode.GetRule(separator)
+ rs1 = v1.TransTypeCode.GetRule()
+ rs2 = v2.TransTypeCode.GetRule()
if rs1 != rs2 {
d.Trans_type_code = utils.StringPointer(rs2)
}
- rs1 = v1.SalesTypeCode.GetRule(separator)
- rs2 = v2.SalesTypeCode.GetRule(separator)
+ rs1 = v1.SalesTypeCode.GetRule()
+ rs2 = v2.SalesTypeCode.GetRule()
if rs1 != rs2 {
d.Sales_type_code = utils.StringPointer(rs2)
}
- rs1 = v1.TaxExemptionCodeList.GetRule(separator)
- rs2 = v2.TaxExemptionCodeList.GetRule(separator)
+ rs1 = v1.TaxExemptionCodeList.GetRule()
+ rs2 = v2.TaxExemptionCodeList.GetRule()
if rs1 != rs2 {
d.Tax_exemption_code_list = utils.StringPointer(rs2)
}
diff --git a/config/suretaxcfg_test.go b/config/suretaxcfg_test.go
index 09008e939..da580af4b 100644
--- a/config/suretaxcfg_test.go
+++ b/config/suretaxcfg_test.go
@@ -344,7 +344,7 @@ func TestSureTaxCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.sureTaxCfg.AsMapInterface(cgrCfg.generalCfg.RSRSep); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.sureTaxCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -484,14 +484,14 @@ func TestDiffSureTaxJson(t *testing.T) {
Tax_exemption_code_list: utils.StringPointer(utils.EmptyString),
}
- rcv := diffSureTaxJsonCfg(d, v1, v2, ";")
+ rcv := diffSureTaxJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
v1 = v2
expected = &SureTaxJsonCfg{}
- rcv = diffSureTaxJsonCfg(d, v1, v2, ";")
+ rcv = diffSureTaxJsonCfg(d, v1, v2)
if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
}
diff --git a/config/thresholdscfg.go b/config/thresholdscfg.go
index 247092f90..5119a8931 100644
--- a/config/thresholdscfg.go
+++ b/config/thresholdscfg.go
@@ -120,7 +120,7 @@ func (t *ThresholdSCfg) loadFromJSONCfg(jsnCfg *ThresholdSJsonCfg) (err error) {
}
// AsMapInterface returns the config as a map[string]any
-func (t ThresholdSCfg) AsMapInterface(string) any {
+func (t ThresholdSCfg) AsMapInterface() any {
opts := map[string]any{
utils.MetaProfileIDs: t.Opts.ProfileIDs,
utils.MetaProfileIgnoreFilters: t.Opts.ProfileIgnoreFilters,
diff --git a/config/thresholdscfg_test.go b/config/thresholdscfg_test.go
index 249734112..868046ab3 100644
--- a/config/thresholdscfg_test.go
+++ b/config/thresholdscfg_test.go
@@ -137,7 +137,7 @@ func TestThresholdSCfgAsMapInterfaceCase1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.thresholdSCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.thresholdSCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expextec %+v \n, recevied %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -177,7 +177,7 @@ func TestThresholdSCfgAsMapInterfaceCase2(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.thresholdSCfg.AsMapInterface(""); !reflect.DeepEqual(rcv, eMap) {
+ } else if rcv := cgrCfg.thresholdSCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v \n, recevied %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
diff --git a/config/tlscfg.go b/config/tlscfg.go
index 174147277..0853db323 100644
--- a/config/tlscfg.go
+++ b/config/tlscfg.go
@@ -72,7 +72,7 @@ func (tls *TLSCfg) loadFromJSONCfg(jsnCfg *TlsJsonCfg) (err error) {
}
// AsMapInterface returns the config as a map[string]any
-func (tls TLSCfg) AsMapInterface(string) any {
+func (tls TLSCfg) AsMapInterface() any {
return map[string]any{
utils.ServerCerificateCfg: tls.ServerCerificate,
utils.ServerKeyCfg: tls.ServerKey,
diff --git a/config/tlscfg_test.go b/config/tlscfg_test.go
index 2ef275b04..d7f84db8b 100644
--- a/config/tlscfg_test.go
+++ b/config/tlscfg_test.go
@@ -71,7 +71,7 @@ func TestTlsCfgAsMapInterface(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.tlsCfg.AsMapInterface(""); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cgrCfg.tlsCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
@@ -99,7 +99,7 @@ func TestTlsCfgAsMapInterface1(t *testing.T) {
}
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
- } else if rcv := cgrCfg.tlsCfg.AsMapInterface(""); !reflect.DeepEqual(eMap, rcv) {
+ } else if rcv := cgrCfg.tlsCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
diff --git a/config/tpes.go b/config/tpes.go
index 3fa7df5e3..c6be05a80 100644
--- a/config/tpes.go
+++ b/config/tpes.go
@@ -45,7 +45,7 @@ func (tp *TpeSCfg) Load(ctx *context.Context, db ConfigDB, _ *CGRConfig) (err er
return
}
-func (tp TpeSCfg) AsMapInterface(string) any {
+func (tp TpeSCfg) AsMapInterface() any {
return map[string]any{
utils.EnabledCfg: tp.Enabled,
}
diff --git a/config/trendscfg.go b/config/trendscfg.go
index d29116ada..6454ab09d 100644
--- a/config/trendscfg.go
+++ b/config/trendscfg.go
@@ -78,7 +78,7 @@ func (t *TrendSCfg) loadFromJSONCfg(jsnCfg *TrendSJsonCfg) (err error) {
return
}
-func (t *TrendSCfg) AsMapInterface(string) any {
+func (t *TrendSCfg) AsMapInterface() any {
mp := map[string]any{
utils.EnabledCfg: t.Enabled,
utils.StoreIntervalCfg: utils.EmptyString,
diff --git a/config/trendscfg_test.go b/config/trendscfg_test.go
index 1c124b18b..046624c82 100644
--- a/config/trendscfg_test.go
+++ b/config/trendscfg_test.go
@@ -167,13 +167,13 @@ func TestTrendSCfgAsMapInterface(t *testing.T) {
utils.EEsConnsCfg: getInternalJSONConns(eesConns),
utils.EEsExporterIDsCfg: eesExporterIDs,
}
- result := trendCfg.AsMapInterface("").(map[string]any)
+ result := trendCfg.AsMapInterface().(map[string]any)
if !reflect.DeepEqual(result, expectedMap) {
t.Errorf("Expected: %+v, got: %+v", expectedMap, result)
}
trendCfg.StoreInterval = 0
expectedMap[utils.StoreIntervalCfg] = utils.EmptyString
- result = trendCfg.AsMapInterface("").(map[string]any)
+ result = trendCfg.AsMapInterface().(map[string]any)
if result[utils.StoreIntervalCfg] != utils.EmptyString {
t.Errorf("Expected StoreInterval to be '%s', but got: %v", utils.EmptyString, result[utils.StoreIntervalCfg])
}
diff --git a/data/conf/cgrates/cgrates.json b/data/conf/cgrates/cgrates.json
index 169d80c96..42f2a3f94 100755
--- a/data/conf/cgrates/cgrates.json
+++ b/data/conf/cgrates/cgrates.json
@@ -27,7 +27,6 @@
// "locking_timeout": "0", // timeout internal locks to avoid deadlocks
// "digest_separator": ",", // separator to use in replies containing data digests
// "digest_equal": ":", // equal symbol used in case of digests
-// "rsr_separator": ";", // separator used within RSR fields
// "max_parallel_conns": 100, // the maximum number of connection used by the *parallel strategy
// "decimal_max_scale": 0, // the maximum scale for decimal numbers
// "decimal_min_scale": 0, // the minimum scale for decimal numbers
diff --git a/engine/actionprofile.go b/engine/actionprofile.go
index ac0e1e204..08bd9dc38 100644
--- a/engine/actionprofile.go
+++ b/engine/actionprofile.go
@@ -81,11 +81,11 @@ type APDiktat struct {
}
// RSRValues returns the Value as RSRParsers
-func (dk *APDiktat) RSRValues(sep string) (_ config.RSRParsers, err error) {
+func (dk *APDiktat) RSRValues() (config.RSRParsers, error) {
if dk.valRSR == nil {
- dk.valRSR, err = config.NewRSRParsers(dk.Value, sep)
+ return config.NewRSRParsers(dk.Value, utils.RSRSep)
}
- return dk.valRSR, err
+ return dk.valRSR, nil
}
// ActionProfileWithAPIOpts is used in API calls
@@ -94,7 +94,7 @@ type ActionProfileWithAPIOpts struct {
APIOpts map[string]any
}
-func (aP *ActionProfile) Set(path []string, val any, newBranch bool, _ string) (err error) {
+func (aP *ActionProfile) Set(path []string, val any, newBranch bool) (err error) {
switch len(path) {
case 0:
return utils.ErrWrongPath
diff --git a/engine/actionprofile_test.go b/engine/actionprofile_test.go
index edc2978fc..a265d5f1a 100644
--- a/engine/actionprofile_test.go
+++ b/engine/actionprofile_test.go
@@ -111,7 +111,7 @@ func TestActionAPDiktatRSRValues(t *testing.T) {
},
},
}
- rsrPars, err := apdDiktat.RSRValues(";")
+ rsrPars, err := apdDiktat.RSRValues()
if err != nil {
t.Error(err)
}
@@ -131,7 +131,7 @@ func TestActionAPDiktatRSRValues(t *testing.T) {
func TestActionAPDiktatRSRValuesNil(t *testing.T) {
apdDiktat := APDiktat{}
- rsrPars, err := apdDiktat.RSRValues(";")
+ rsrPars, err := apdDiktat.RSRValues()
if err != nil {
t.Error(err)
}
@@ -147,7 +147,7 @@ func TestActionAPDiktatRSRValuesError(t *testing.T) {
Value: "val`val2val3",
}
expErr := "Closed unspilit syntax"
- _, err := apdDiktat.RSRValues(";")
+ _, err := apdDiktat.RSRValues()
if err == nil || err.Error() != expErr {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expErr, err)
}
@@ -155,7 +155,7 @@ func TestActionAPDiktatRSRValuesError(t *testing.T) {
}
func TestAPDiktatRSRValues(t *testing.T) {
dk := &APDiktat{Value: "1001"}
- if rply, err := dk.RSRValues(utils.InfieldSep); err != nil {
+ if rply, err := dk.RSRValues(); err != nil {
return
} else if exp := config.NewRSRParsersMustCompile("1001", utils.InfieldSep); !reflect.DeepEqual(exp, rply) {
t.Errorf("Expected: %+v ,received: %+v", exp, rply)
@@ -200,85 +200,85 @@ func TestActionProfileSet(t *testing.T) {
}},
}},
}
- if err := ap.Set([]string{}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := ap.Set([]string{}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := ap.Set([]string{"NotAField"}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := ap.Set([]string{"NotAField"}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := ap.Set([]string{"NotAField", "1"}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := ap.Set([]string{"NotAField", "1"}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := ap.Set([]string{utils.Tenant}, "cgrates.org", false, utils.EmptyString); err != nil {
+ if err := ap.Set([]string{utils.Tenant}, "cgrates.org", false); err != nil {
t.Error(err)
}
- if err := ap.Set([]string{utils.ID}, "ID", false, utils.EmptyString); err != nil {
+ if err := ap.Set([]string{utils.ID}, "ID", false); err != nil {
t.Error(err)
}
- if err := ap.Set([]string{utils.FilterIDs}, "fltr1;*string:~*req.Account:1001", false, utils.EmptyString); err != nil {
+ if err := ap.Set([]string{utils.FilterIDs}, "fltr1;*string:~*req.Account:1001", false); err != nil {
t.Error(err)
}
- if err := ap.Set([]string{utils.Schedule}, utils.MetaNow, false, utils.EmptyString); err != nil {
+ if err := ap.Set([]string{utils.Schedule}, utils.MetaNow, false); err != nil {
t.Error(err)
}
- if err := ap.Set([]string{utils.Weights}, ";10", false, utils.EmptyString); err != nil {
+ if err := ap.Set([]string{utils.Weights}, ";10", false); err != nil {
t.Error(err)
}
- if err := ap.Set([]string{utils.Targets + "[" + utils.MetaAccounts + "]"}, "1001;1002", false, utils.EmptyString); err != nil {
+ if err := ap.Set([]string{utils.Targets + "[" + utils.MetaAccounts + "]"}, "1001;1002", false); err != nil {
t.Error(err)
}
- if err := ap.Set([]string{utils.Targets, utils.MetaThresholds}, "TH1;TH2", false, utils.EmptyString); err != nil {
+ if err := ap.Set([]string{utils.Targets, utils.MetaThresholds}, "TH1;TH2", false); err != nil {
t.Error(err)
}
- if err := ap.Set([]string{utils.Actions + "[acc1]", utils.ID}, "acc1", false, utils.EmptyString); err != nil {
+ if err := ap.Set([]string{utils.Actions + "[acc1]", utils.ID}, "acc1", false); err != nil {
t.Error(err)
}
- if err := ap.Set([]string{utils.Actions, "acc1", "Wrong", "path", "2"}, "acc1", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := ap.Set([]string{utils.Actions, "acc1", "Wrong", "path", "2"}, "acc1", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := ap.Set([]string{utils.Actions, "acc1", "Wrong", "path"}, "acc1", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := ap.Set([]string{utils.Actions, "acc1", "Wrong", "path"}, "acc1", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := ap.Set([]string{utils.Actions, "acc1", "Wrong"}, "acc1", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := ap.Set([]string{utils.Actions, "acc1", "Wrong"}, "acc1", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := ap.Set([]string{utils.Actions, "acc1", utils.Opts}, "opt0:val1", false, utils.EmptyString); err != nil {
+ if err := ap.Set([]string{utils.Actions, "acc1", utils.Opts}, "opt0:val1", false); err != nil {
t.Error(err)
}
- if err := ap.Set([]string{utils.Actions, "acc1", utils.Opts + "[opt1]"}, "val1", false, utils.EmptyString); err != nil {
+ if err := ap.Set([]string{utils.Actions, "acc1", utils.Opts + "[opt1]"}, "val1", false); err != nil {
t.Error(err)
}
- if err := ap.Set([]string{utils.Actions, "acc1", utils.Opts, "opt2"}, "val1", false, utils.EmptyString); err != nil {
+ if err := ap.Set([]string{utils.Actions, "acc1", utils.Opts, "opt2"}, "val1", false); err != nil {
t.Error(err)
}
- if err := ap.Set([]string{utils.Actions, "acc1", utils.Opts, "opt3", "opt4"}, "val1", false, utils.EmptyString); err != nil {
+ if err := ap.Set([]string{utils.Actions, "acc1", utils.Opts, "opt3", "opt4"}, "val1", false); err != nil {
t.Error(err)
}
- if err := ap.Set([]string{utils.Actions, "acc1", utils.Type}, "val1", false, utils.EmptyString); err != nil {
+ if err := ap.Set([]string{utils.Actions, "acc1", utils.Type}, "val1", false); err != nil {
t.Error(err)
}
- if err := ap.Set([]string{utils.Actions, "acc1", utils.FilterIDs}, "fltr1", false, utils.EmptyString); err != nil {
+ if err := ap.Set([]string{utils.Actions, "acc1", utils.FilterIDs}, "fltr1", false); err != nil {
t.Error(err)
}
- if err := ap.Set([]string{utils.Actions, "acc1", utils.TTL}, "10", false, utils.EmptyString); err != nil {
+ if err := ap.Set([]string{utils.Actions, "acc1", utils.TTL}, "10", false); err != nil {
t.Error(err)
}
- if err := ap.Set([]string{utils.Actions, "acc1", utils.Diktats, utils.Path}, "path", false, utils.EmptyString); err != nil {
+ if err := ap.Set([]string{utils.Actions, "acc1", utils.Diktats, utils.Path}, "path", false); err != nil {
t.Error(err)
}
- if err := ap.Set([]string{utils.Actions, "acc1", utils.Diktats, utils.Value}, "val1", false, utils.EmptyString); err != nil {
+ if err := ap.Set([]string{utils.Actions, "acc1", utils.Diktats, utils.Value}, "val1", false); err != nil {
t.Error(err)
}
if err := ap.Actions[0].Set(nil, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := ap.Set([]string{utils.Blockers}, ";true", false, utils.EmptyString); err != nil {
+ if err := ap.Set([]string{utils.Blockers}, ";true", false); err != nil {
t.Error(err)
}
if !reflect.DeepEqual(exp, ap) {
diff --git a/engine/attributes.go b/engine/attributes.go
index 14d67a04c..23ad560e3 100644
--- a/engine/attributes.go
+++ b/engine/attributes.go
@@ -191,7 +191,7 @@ func (alS *AttributeS) processEvent(ctx *context.Context, tnt string, args *util
}
}
var out any
- if out, err = ParseAttribute(dynDP, utils.FirstNonEmpty(attribute.Type, utils.MetaVariable), utils.DynamicDataPrefix+attribute.Path, attribute.Value, alS.cfg.GeneralCfg().RoundingDecimals, alS.cfg.GeneralCfg().DefaultTimezone, time.RFC3339, alS.cfg.GeneralCfg().RSRSep); err != nil {
+ if out, err = ParseAttribute(dynDP, utils.FirstNonEmpty(attribute.Type, utils.MetaVariable), utils.DynamicDataPrefix+attribute.Path, attribute.Value, alS.cfg.GeneralCfg().RoundingDecimals, alS.cfg.GeneralCfg().DefaultTimezone, time.RFC3339); err != nil {
rply = nil
return
}
@@ -364,7 +364,7 @@ func (alS *AttributeS) V1ProcessEvent(ctx *context.Context, args *utils.CGREvent
return
}
-func ParseAttribute(dp utils.DataProvider, attrType, path string, value config.RSRParsers, roundingDec int, timeZone, layout, rsrSep string) (
+func ParseAttribute(dp utils.DataProvider, attrType, path string, value config.RSRParsers, roundingDec int, timeZone, layout string) (
out any, err error) {
switch attrType {
case utils.MetaNone:
@@ -468,7 +468,7 @@ func ParseAttribute(dp utils.DataProvider, attrType, path string, value config.R
out = dtFld.Format(layout)
case utils.MetaPrefix:
var pathRsr config.RSRParsers
- pathRsr, err = config.NewRSRParsers(path, rsrSep)
+ pathRsr, err = config.NewRSRParsers(path, utils.RSRSep)
if err != nil {
return
}
@@ -483,7 +483,7 @@ func ParseAttribute(dp utils.DataProvider, attrType, path string, value config.R
out = val + pathVal
case utils.MetaSuffix:
var pathRsr config.RSRParsers
- pathRsr, err = config.NewRSRParsers(path, rsrSep)
+ pathRsr, err = config.NewRSRParsers(path, utils.RSRSep)
if err != nil {
return
}
diff --git a/engine/attributes_test.go b/engine/attributes_test.go
index bce4344d6..610678f7e 100644
--- a/engine/attributes_test.go
+++ b/engine/attributes_test.go
@@ -39,7 +39,7 @@ func TestParseAtributeUsageDiffVal1(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaUsageDifference, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.wrong;~*req.usage2", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
if err == nil || err != utils.ErrNotFound {
t.Errorf("Expected %v\n but received %v", utils.ErrNotFound, err)
}
@@ -54,7 +54,7 @@ func TestParseAtributeUsageDiffVal2(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaUsageDifference, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.usage1;~*req.wrong", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
if err == nil || err != utils.ErrNotFound {
t.Errorf("Expected %v\n but received %v", utils.ErrNotFound, err)
}
@@ -68,7 +68,7 @@ func TestParseAtributeUsageDiffTimeVal1(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaUsageDifference, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.usage1;~*req.usage2", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
errExp := "Unsupported time format"
if err == nil || err.Error() != errExp {
t.Errorf("Expected %v\n but received %v", errExp, err)
@@ -83,7 +83,7 @@ func TestParseAtributeUsageDiffTimeVal2(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaUsageDifference, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.usage1;~*req.usage2", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
errExp := "Unsupported time format"
if err == nil || err.Error() != errExp {
t.Errorf("Expected %v\n but received %v", errExp, err)
@@ -97,7 +97,7 @@ func TestParseAtributeSum(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaSum, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.valid", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
if err == nil || err != utils.ErrNotFound {
t.Errorf("Expected %v\n but received %v", utils.ErrNotFound, err)
}
@@ -110,7 +110,7 @@ func TestParseAtributeDifference(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaDifference, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.valid", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
if err == nil || err != utils.ErrNotFound {
t.Errorf("Expected %v\n but received %v", utils.ErrNotFound, err)
}
@@ -123,7 +123,7 @@ func TestParseAtributeMultiply(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaMultiply, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.valid", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
if err == nil || err != utils.ErrNotFound {
t.Errorf("Expected %v\n but received %v", utils.ErrNotFound, err)
}
@@ -136,7 +136,7 @@ func TestParseAtributeDivide(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaDivide, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.valid", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
if err == nil || err != utils.ErrNotFound {
t.Errorf("Expected %v\n but received %v", utils.ErrNotFound, err)
}
@@ -150,7 +150,7 @@ func TestParseAtributeExponentVal1(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaValueExponent, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.wrong;~*req.exponent", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
if err == nil || err != utils.ErrNotFound {
t.Errorf("Expected %v\n but received %v", utils.ErrNotFound, err)
}
@@ -164,7 +164,7 @@ func TestParseAtributeExponentVal2(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaValueExponent, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.number;~*req.wrong", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
if err == nil || err != utils.ErrNotFound {
t.Errorf("Expected %v\n but received %v", utils.ErrNotFound, err)
}
@@ -178,7 +178,7 @@ func TestParseAtributeExponentWrongNumber(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaValueExponent, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.number;~*req.exponent", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
errExp := "invalid value to *valueExponent"
if err == nil || err.Error() != errExp {
t.Errorf("Expected %v\n but received %v", errExp, err)
@@ -193,7 +193,7 @@ func TestParseAtributeExponentWrongExponent(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaValueExponent, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.number;~*req.exponent", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
errExp := `strconv.Atoi: parsing "NaN": invalid syntax`
if err == nil || err.Error() != errExp {
t.Errorf("Expected %v\n but received %v", errExp, err)
@@ -207,7 +207,7 @@ func TestParseAtributeUnixTimestampWrongField(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaUnixTimestamp, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.wrong", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
if err == nil || err != utils.ErrNotFound {
t.Errorf("Expected %v\n but received %v", utils.ErrNotFound, err)
}
@@ -220,7 +220,7 @@ func TestParseAtributeUnixTimestampWrongVal(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaUnixTimestamp, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.unix_timestamp", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
errExp := "Unsupported time format"
if err == nil || err.Error() != errExp {
t.Errorf("Expected %v\n but received %v", errExp, err)
@@ -234,7 +234,7 @@ func TestParseAtributePrefixPath(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaPrefix, "```", config.NewRSRParsersMustCompile("~*req.prefix", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
errExp := "Closed unspilit syntax"
if err == nil || err.Error() != errExp {
t.Errorf("Expected %v\n but received %v", errExp, err)
@@ -248,7 +248,7 @@ func TestParseAtributePrefixField(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaPrefix, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.wrong", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
if err == nil || err != utils.ErrNotFound {
t.Errorf("Expected %v\n but received %v", utils.ErrNotFound, err)
}
@@ -261,7 +261,7 @@ func TestParseAtributeSuffixPath(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaSuffix, "```", config.NewRSRParsersMustCompile("~*req.suffix", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
errExp := "Closed unspilit syntax"
if err == nil || err.Error() != errExp {
t.Errorf("Expected %v\n but received %v", errExp, err)
@@ -275,7 +275,7 @@ func TestParseAtributeSuffixField(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaSuffix, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.wrong", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
if err == nil || err != utils.ErrNotFound {
t.Errorf("Expected %v\n but received %v", utils.ErrNotFound, err)
}
@@ -290,7 +290,7 @@ func TestParseAtributeCCUsageLessThanTwo(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaCCUsage, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cc1;~*req.cc2", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
errExp := `invalid arguments <[{"Rules":"~*req.cc1"},{"Rules":"~*req.cc2"}]> to *ccUsage`
if err == nil || err.Error() != errExp {
t.Errorf("Expected %v\n but received %v", errExp, err)
@@ -306,7 +306,7 @@ func TestParseAtributeCCUsageField1(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaCCUsage, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.wrong;~*req.cc2;~*req.cc3", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
if err == nil || err != utils.ErrNotFound {
t.Errorf("Expected %v\n but received %v", utils.ErrNotFound, err)
}
@@ -321,7 +321,7 @@ func TestParseAtributeCCUsageVal1(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaCCUsage, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cc1;~*req.cc2;~*req.cc3", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
errExp := `invalid requestNumber to *ccUsage`
if err == nil || err.Error() != errExp {
t.Errorf("Expected %v\n but received %v", errExp, err)
@@ -337,7 +337,7 @@ func TestParseAtributeCCUsageField2(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaCCUsage, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cc1;~*req.wrong;~*req.cc3", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
if err == nil || err != utils.ErrNotFound {
t.Errorf("Expected %v\n but received %v", utils.ErrNotFound, err)
}
@@ -352,7 +352,7 @@ func TestParseAtributeCCUsageVal2(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaCCUsage, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cc1;~*req.cc2;~*req.cc3", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
errExp := `invalid usedCCTime to *ccUsage`
if err == nil || err.Error() != errExp {
t.Errorf("Expected %v\n but received %v", errExp, err)
@@ -368,7 +368,7 @@ func TestParseAtributeCCUsageField3(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaCCUsage, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cc1;~*req.cc2;~*req.wrong", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
if err == nil || err != utils.ErrNotFound {
t.Errorf("Expected %v\n but received %v", utils.ErrNotFound, err)
}
@@ -383,7 +383,7 @@ func TestParseAtributeCCUsageVal3(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaCCUsage, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cc1;~*req.cc2;~*req.cc3", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
errExp := `invalid debitInterval to *ccUsage`
if err == nil || err.Error() != errExp {
t.Errorf("Expected %v\n but received %v", errExp, err)
@@ -399,7 +399,7 @@ func TestParseAtributeCCUsageNoErr(t *testing.T) {
},
}
out, err := ParseAttribute(dp, utils.MetaCCUsage, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cc1;~*req.cc2;~*req.cc3", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
if err != nil {
t.Error(err)
}
@@ -442,7 +442,7 @@ func TestAttributeProfileForEventWeightFromDynamicsErr(t *testing.T) {
t.Fatal(err)
}
- value := config.NewRSRParsersMustCompile("abcd123", config.CgrConfig().GeneralCfg().RSRSep)
+ value := config.NewRSRParsersMustCompile("abcd123", utils.RSRSep)
attrPrf := &AttributeProfile{
Tenant: "cgrates.org",
@@ -506,7 +506,7 @@ func TestAttributeProcessEventBlockerFromDynamicsErr(t *testing.T) {
filterS := NewFilterS(cfg, nil, dm)
attrS := NewAttributeService(dm, filterS, cfg)
- value := config.NewRSRParsersMustCompile("abcd123", config.CgrConfig().GeneralCfg().RSRSep)
+ value := config.NewRSRParsersMustCompile("abcd123", utils.RSRSep)
attrPrf := &AttributeProfile{
Tenant: "cgrates.org",
@@ -587,7 +587,7 @@ func TestAttributeSProcessEventPassErr(t *testing.T) {
FilterIDs: []string{"*apiban:~*req.<~*req.IP>{*}:*all"},
Path: "*req.Password",
Type: utils.MetaPassword,
- Value: config.NewRSRParsersMustCompile("abcd123", config.CgrConfig().GeneralCfg().RSRSep),
+ Value: config.NewRSRParsersMustCompile("abcd123", utils.RSRSep),
},
},
Weights: utils.DynamicWeights{
@@ -654,7 +654,7 @@ func TestAttributeSProcessAttrBlockerFromDynamicsErr(t *testing.T) {
}},
Path: "*req.Password",
Type: utils.MetaPassword,
- Value: config.NewRSRParsersMustCompile("abcd123", config.CgrConfig().GeneralCfg().RSRSep),
+ Value: config.NewRSRParsersMustCompile("abcd123", utils.RSRSep),
},
},
Weights: utils.DynamicWeights{
@@ -712,7 +712,7 @@ func TestAttributeSProcessSubstituteRmvBlockerTrue(t *testing.T) {
{
Path: utils.MetaRemove,
Type: utils.MetaVariable,
- Value: config.NewRSRParsersMustCompile(utils.MetaRemove, config.CgrConfig().GeneralCfg().RSRSep),
+ Value: config.NewRSRParsersMustCompile(utils.MetaRemove, utils.RSRSep),
},
{
Blockers: utils.DynamicBlockers{{
@@ -720,7 +720,7 @@ func TestAttributeSProcessSubstituteRmvBlockerTrue(t *testing.T) {
}},
Path: "*req.Password",
Type: utils.MetaPassword,
- Value: config.NewRSRParsersMustCompile("abcd123", config.CgrConfig().GeneralCfg().RSRSep),
+ Value: config.NewRSRParsersMustCompile("abcd123", utils.RSRSep),
},
},
Weights: utils.DynamicWeights{
@@ -881,7 +881,7 @@ func TestParseAtributeUsageDiffDetectLayoutErr2(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaUsageDifference, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.UnixTimeStamp;~*req.usage2", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
errExp := "Unsupported time format"
if err == nil || err.Error() != errExp {
t.Errorf("Expected %v\n but received %v", errExp, err)
@@ -892,7 +892,7 @@ func TestParseAtributeMetaPrefixParseDPErr(t *testing.T) {
dp := utils.MapStorage{}
_, err := ParseAttribute(dp, utils.MetaPrefix, "constant;`>;q=0.7;expires=3600`;~*req.Account", config.NewRSRParsersMustCompile("~*req.UnixTimeStamp;~*req.usage2", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
if err != utils.ErrNotFound {
t.Errorf("Expected %v\n but received %v", utils.ErrNotFound, err)
}
@@ -902,7 +902,7 @@ func TestParseAtributeMetaSuffixParseDPErr(t *testing.T) {
dp := utils.MapStorage{}
_, err := ParseAttribute(dp, utils.MetaSuffix, "constant;`>;q=0.7;expires=3600`;~*req.Account", config.NewRSRParsersMustCompile("~*req.UnixTimeStamp;~*req.usage2", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
if err != utils.ErrNotFound {
t.Errorf("Expected %v\n but received %v", utils.ErrNotFound, err)
}
@@ -917,7 +917,7 @@ func TestParseAtributeCCUsageNegativeReqNr(t *testing.T) {
},
}
out, err := ParseAttribute(dp, utils.MetaCCUsage, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cc1;~*req.cc2;~*req.cc3", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
if err != nil {
t.Error(err)
}
@@ -965,7 +965,7 @@ func TestAttributeFromHTTP(t *testing.T) {
attr := attrPrf.Attributes[0]
if out, err := ParseAttribute(dp, attr.Type, attr.Path, attr.Value,
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err != nil {
+ 0, utils.EmptyString, utils.EmptyString); err != nil {
t.Fatal(err)
} else if exp != out {
t.Errorf("Expected %q, Received %q", exp, out)
diff --git a/engine/datamanager.go b/engine/datamanager.go
index bbe0b50d1..cf7696244 100644
--- a/engine/datamanager.go
+++ b/engine/datamanager.go
@@ -1875,11 +1875,11 @@ func (dm *DataManager) SetAttributeProfile(ctx *context.Context, ap *AttributePr
}
for _, attribute := range ap.Attributes {
if attribute.Type == utils.MetaPassword {
- password := attribute.Value.GetRule(config.CgrConfig().GeneralCfg().RSRSep)
+ password := attribute.Value.GetRule()
if password, err = utils.ComputeHash(password); err != nil {
return
}
- if attribute.Value, err = config.NewRSRParsers(password, config.CgrConfig().GeneralCfg().RSRSep); err != nil {
+ if attribute.Value, err = config.NewRSRParsers(password, utils.RSRSep); err != nil {
return
}
attribute.Type = utils.MetaConstant
diff --git a/engine/datamanager_test.go b/engine/datamanager_test.go
index 2191d9ce3..0d1a1fd43 100644
--- a/engine/datamanager_test.go
+++ b/engine/datamanager_test.go
@@ -7546,7 +7546,7 @@ func TestDMSetAttributeProfileComputeHashErr(t *testing.T) {
}
cM := NewConnManager(cfg)
dm := NewDataManager(data, cfg.CacheCfg(), cM)
- value := config.NewRSRParsersMustCompile("31 0a 0a 32 0a 0a 33 0a 0a 34 0a 0a 35 0a 0a 36 0a 0a 37 0a 0a 38 0a 0a 39 0a 0a 31 30 0a 0a 31", config.CgrConfig().GeneralCfg().RSRSep)
+ value := config.NewRSRParsersMustCompile("31 0a 0a 32 0a 0a 33 0a 0a 34 0a 0a 35 0a 0a 36 0a 0a 37 0a 0a 38 0a 0a 39 0a 0a 31 30 0a 0a 31", utils.RSRSep)
attrPrfl := &AttributeProfile{
Tenant: "cgrates.org",
ID: "ATTR_ID",
diff --git a/engine/dispatcherprfl.go b/engine/dispatcherprfl.go
index 23da2c5d3..c3c6d275a 100644
--- a/engine/dispatcherprfl.go
+++ b/engine/dispatcherprfl.go
@@ -161,7 +161,7 @@ func (dHPrflIDs DispatcherHostIDs) Clone() (cln DispatcherHostIDs) {
return
}
-func (dH *DispatcherHost) Set(path []string, val any, newBranch bool, _ string) (err error) {
+func (dH *DispatcherHost) Set(path []string, val any, newBranch bool) (err error) {
if len(path) != 1 {
return utils.ErrWrongPath
}
diff --git a/engine/dispatcherprfl_test.go b/engine/dispatcherprfl_test.go
index e49772499..55cb98e31 100644
--- a/engine/dispatcherprfl_test.go
+++ b/engine/dispatcherprfl_test.go
@@ -245,54 +245,54 @@ func TestDispatcherHostSet(t *testing.T) {
CaCertificate: "ca",
},
}
- if err := dp.Set([]string{}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := dp.Set([]string{}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := dp.Set([]string{"NotAField"}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := dp.Set([]string{"NotAField"}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := dp.Set([]string{"NotAField", "1"}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := dp.Set([]string{"NotAField", "1"}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := dp.Set([]string{utils.Tenant}, "cgrates.org", false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.Tenant}, "cgrates.org", false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.ID}, "ID", false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.ID}, "ID", false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.Address}, "127.0.0.1", false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.Address}, "127.0.0.1", false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.Transport}, utils.MetaJSON, false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.Transport}, utils.MetaJSON, false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.ConnectAttempts}, 1, false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.ConnectAttempts}, 1, false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.Reconnects}, 1, false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.Reconnects}, 1, false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.MaxReconnectInterval}, 1, false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.MaxReconnectInterval}, 1, false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.ConnectTimeout}, 1, false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.ConnectTimeout}, 1, false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.ReplyTimeout}, 1, false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.ReplyTimeout}, 1, false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.TLS}, true, false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.TLS}, true, false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.ClientKey}, "key", false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.ClientKey}, "key", false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.ClientCertificate}, "ce", false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.ClientCertificate}, "ce", false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.CaCertificate}, "ca", false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.CaCertificate}, "ca", false); err != nil {
t.Error(err)
}
diff --git a/engine/exportrequest.go b/engine/exportrequest.go
index 652bd9ef2..015d40826 100644
--- a/engine/exportrequest.go
+++ b/engine/exportrequest.go
@@ -177,7 +177,7 @@ func (eeR *ExportRequest) ParseField(
case utils.MetaGroup:
tmpType = utils.MetaVariable
}
- out, err = ParseAttribute(eeR, tmpType, cfgFld.Path, cfgFld.Value, config.CgrConfig().GeneralCfg().RoundingDecimals, utils.FirstNonEmpty(cfgFld.Timezone, config.CgrConfig().GeneralCfg().DefaultTimezone), cfgFld.Layout, config.CgrConfig().GeneralCfg().RSRSep)
+ out, err = ParseAttribute(eeR, tmpType, cfgFld.Path, cfgFld.Value, config.CgrConfig().GeneralCfg().RoundingDecimals, utils.FirstNonEmpty(cfgFld.Timezone, config.CgrConfig().GeneralCfg().DefaultTimezone), cfgFld.Layout)
if err != nil &&
!strings.HasPrefix(err.Error(), "Could not find") {
diff --git a/engine/filters.go b/engine/filters.go
index f1c5f5194..8ac11243e 100644
--- a/engine/filters.go
+++ b/engine/filters.go
@@ -816,7 +816,7 @@ func (fltr *FilterRule) passHttp(dDP utils.DataProvider) (bool, error) {
}
-func (fltr *Filter) Set(path []string, val any, newBranch bool, _ string) (err error) {
+func (fltr *Filter) Set(path []string, val any, newBranch bool) (err error) {
switch len(path) {
default:
return utils.ErrWrongPath
diff --git a/engine/filters_test.go b/engine/filters_test.go
index c7e1377a1..c4dc2e23c 100644
--- a/engine/filters_test.go
+++ b/engine/filters_test.go
@@ -1437,42 +1437,42 @@ func TestFilterSet(t *testing.T) {
Values: []string{"1001", "1002"},
}},
}
- if err := fltr.Set([]string{}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := fltr.Set([]string{}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := fltr.Set([]string{"NotAField"}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := fltr.Set([]string{"NotAField"}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := fltr.Set([]string{"NotAField", "1"}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := fltr.Set([]string{"NotAField", "1"}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := fltr.Set([]string{utils.Tenant}, "cgrates.org", false, utils.EmptyString); err != nil {
+ if err := fltr.Set([]string{utils.Tenant}, "cgrates.org", false); err != nil {
t.Error(err)
}
- if err := fltr.Set([]string{utils.ID}, "ID", false, utils.EmptyString); err != nil {
+ if err := fltr.Set([]string{utils.ID}, "ID", false); err != nil {
t.Error(err)
}
- if err := fltr.Set([]string{utils.Rules, utils.Type}, utils.MetaString, false, utils.EmptyString); err != nil {
+ if err := fltr.Set([]string{utils.Rules, utils.Type}, utils.MetaString, false); err != nil {
t.Error(err)
}
- if err := fltr.Set([]string{utils.Rules, utils.Element}, "~*req.Account", false, utils.EmptyString); err != nil {
+ if err := fltr.Set([]string{utils.Rules, utils.Element}, "~*req.Account", false); err != nil {
t.Error(err)
}
- if err := fltr.Set([]string{utils.Rules, utils.Values}, "1001", false, utils.EmptyString); err != nil {
+ if err := fltr.Set([]string{utils.Rules, utils.Values}, "1001", false); err != nil {
t.Error(err)
}
- if err := fltr.Set([]string{utils.Rules, utils.Type}, utils.MetaString, true, utils.EmptyString); err != nil {
+ if err := fltr.Set([]string{utils.Rules, utils.Type}, utils.MetaString, true); err != nil {
t.Error(err)
}
- if err := fltr.Set([]string{utils.Rules, utils.Element}, "~*req.Account", false, utils.EmptyString); err != nil {
+ if err := fltr.Set([]string{utils.Rules, utils.Element}, "~*req.Account", false); err != nil {
t.Error(err)
}
- if err := fltr.Set([]string{utils.Rules, utils.Values}, "1002", false, utils.EmptyString); err != nil {
+ if err := fltr.Set([]string{utils.Rules, utils.Values}, "1002", false); err != nil {
t.Error(err)
}
- if err := fltr.Set([]string{utils.Rules, "Wrong"}, "1002", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := fltr.Set([]string{utils.Rules, "Wrong"}, "1002", false); err != utils.ErrWrongPath {
t.Error(err)
}
diff --git a/engine/libattributes.go b/engine/libattributes.go
index 7e2f22ad7..732aee986 100644
--- a/engine/libattributes.go
+++ b/engine/libattributes.go
@@ -127,7 +127,7 @@ func NewAPIAttributeProfile(attr *AttributeProfile) (ext *APIAttributeProfile) {
Blockers: at.Blockers,
Path: at.Path,
Type: at.Type,
- Value: at.Value.GetRule(utils.InfieldSep),
+ Value: at.Value.GetRule(),
}
}
return
@@ -199,7 +199,7 @@ func externalAttributeAPI(httpType string, dDP utils.DataProvider) (string, erro
return externalAPI(urlS, bytes.NewReader([]byte(dDP.String())))
}
-func (ap *AttributeProfile) Set(path []string, val any, newBranch bool, rsrSep string) (err error) {
+func (ap *AttributeProfile) Set(path []string, val any, newBranch bool) (err error) {
switch len(path) {
case 1:
switch path[0] {
@@ -243,7 +243,7 @@ func (ap *AttributeProfile) Set(path []string, val any, newBranch bool, rsrSep s
case utils.Type:
ap.Attributes[len(ap.Attributes)-1].Type = utils.IfaceAsString(val)
case utils.Value:
- ap.Attributes[len(ap.Attributes)-1].Value, err = config.NewRSRParsers(utils.IfaceAsString(val), rsrSep)
+ ap.Attributes[len(ap.Attributes)-1].Value, err = config.NewRSRParsers(utils.IfaceAsString(val), utils.RSRSep)
default:
return utils.ErrWrongPath
}
@@ -359,6 +359,6 @@ func (at *Attribute) FieldAsInterface(fldPath []string) (_ any, err error) {
case utils.Type:
return at.Type, nil
case utils.Value:
- return at.Value.GetRule(config.CgrConfig().GeneralCfg().RSRSep), nil
+ return at.Value.GetRule(), nil
}
}
diff --git a/engine/libattributes_test.go b/engine/libattributes_test.go
index 7302d853d..1b465e99e 100644
--- a/engine/libattributes_test.go
+++ b/engine/libattributes_test.go
@@ -266,47 +266,47 @@ func TestAttributeProfileSet(t *testing.T) {
exp.Weights[0] = &utils.DynamicWeight{
Weight: 10,
}
- if err := dp.Set([]string{}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := dp.Set([]string{}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := dp.Set([]string{"NotAField"}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := dp.Set([]string{"NotAField"}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := dp.Set([]string{"NotAField", "1"}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := dp.Set([]string{"NotAField", "1"}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := dp.Set([]string{utils.Tenant}, "cgrates.org", false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.Tenant}, "cgrates.org", false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.ID}, "ID", false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.ID}, "ID", false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.FilterIDs}, "fltr1;*string:~*req.Account:1001", false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.FilterIDs}, "fltr1;*string:~*req.Account:1001", false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.Weights}, ";10", false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.Weights}, ";10", false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.Blockers}, ";true", false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.Blockers}, ";true", false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.Attributes, utils.Path}, "*req.Account", false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.Attributes, utils.Path}, "*req.Account", false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.Attributes, utils.Type}, utils.MetaConstant, false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.Attributes, utils.Type}, utils.MetaConstant, false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.Attributes, utils.Value}, "10", false, utils.InfieldSep); err != nil {
+ if err := dp.Set([]string{utils.Attributes, utils.Value}, "10", false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.Attributes, utils.FilterIDs}, "fltr1", false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.Attributes, utils.FilterIDs}, "fltr1", false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.Attributes, utils.Blockers}, ";true", false, utils.EmptyString); err != nil {
+ if err := dp.Set([]string{utils.Attributes, utils.Blockers}, ";true", false); err != nil {
t.Error(err)
}
- if err := dp.Set([]string{utils.Attributes, "Wrong"}, true, false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := dp.Set([]string{utils.Attributes, "Wrong"}, true, false); err != utils.ErrWrongPath {
t.Error(err)
}
diff --git a/engine/libchargers.go b/engine/libchargers.go
index 0013af7bc..b5ea39f63 100644
--- a/engine/libchargers.go
+++ b/engine/libchargers.go
@@ -54,7 +54,7 @@ func (cps ChargerProfiles) Sort() {
sort.Slice(cps, func(i, j int) bool { return cps[i].weight > cps[j].weight })
}
-func (cp *ChargerProfile) Set(path []string, val any, newBranch bool, _ string) (err error) {
+func (cp *ChargerProfile) Set(path []string, val any, newBranch bool) (err error) {
if len(path) != 1 {
return utils.ErrWrongPath
}
diff --git a/engine/libchargers_test.go b/engine/libchargers_test.go
index 3c9d2aa51..f165e9d94 100644
--- a/engine/libchargers_test.go
+++ b/engine/libchargers_test.go
@@ -39,32 +39,32 @@ func TestChargerProfileSet(t *testing.T) {
RunID: utils.MetaDefault,
AttributeIDs: []string{"attr1"},
}
- if err := cp.Set([]string{}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := cp.Set([]string{}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := cp.Set([]string{"NotAField"}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := cp.Set([]string{"NotAField"}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := cp.Set([]string{"NotAField", "1"}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := cp.Set([]string{"NotAField", "1"}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := cp.Set([]string{utils.Tenant}, "cgrates.org", false, utils.EmptyString); err != nil {
+ if err := cp.Set([]string{utils.Tenant}, "cgrates.org", false); err != nil {
t.Error(err)
}
- if err := cp.Set([]string{utils.ID}, "ID", false, utils.EmptyString); err != nil {
+ if err := cp.Set([]string{utils.ID}, "ID", false); err != nil {
t.Error(err)
}
- if err := cp.Set([]string{utils.FilterIDs}, "fltr1;*string:~*req.Account:1001", false, utils.EmptyString); err != nil {
+ if err := cp.Set([]string{utils.FilterIDs}, "fltr1;*string:~*req.Account:1001", false); err != nil {
t.Error(err)
}
- if err := cp.Set([]string{utils.Weights}, ";10", false, utils.EmptyString); err != nil {
+ if err := cp.Set([]string{utils.Weights}, ";10", false); err != nil {
t.Error(err)
}
- if err := cp.Set([]string{utils.RunID}, utils.MetaDefault, false, utils.EmptyString); err != nil {
+ if err := cp.Set([]string{utils.RunID}, utils.MetaDefault, false); err != nil {
t.Error(err)
}
- if err := cp.Set([]string{utils.AttributeIDs}, "attr1", false, utils.EmptyString); err != nil {
+ if err := cp.Set([]string{utils.AttributeIDs}, "attr1", false); err != nil {
t.Error(err)
}
@@ -208,7 +208,7 @@ func TestChargerProfileSetBlockers(t *testing.T) {
},
}
- err := cp.Set([]string{utils.Blockers}, ";true", false, "")
+ err := cp.Set([]string{utils.Blockers}, ";true", false)
if err != nil {
t.Errorf("unexpected error: %v", err)
} else if !reflect.DeepEqual(exp, cp) {
diff --git a/engine/libindex_test.go b/engine/libindex_test.go
index 29a04f095..e34186994 100644
--- a/engine/libindex_test.go
+++ b/engine/libindex_test.go
@@ -191,7 +191,7 @@ func TestLibIndexSetUpdateRemAttributeProfile(t *testing.T) {
{
Type: utils.MetaConstant,
Path: "~*req.Account",
- Value: config.NewRSRParsersMustCompile("1002", cfg.GeneralCfg().RSRSep),
+ Value: config.NewRSRParsersMustCompile("1002", utils.RSRSep),
},
},
}
@@ -222,7 +222,7 @@ func TestLibIndexSetUpdateRemAttributeProfile(t *testing.T) {
{
Type: utils.MetaConstant,
Path: "~*req.Account",
- Value: config.NewRSRParsersMustCompile("1002", cfg.GeneralCfg().RSRSep),
+ Value: config.NewRSRParsersMustCompile("1002", utils.RSRSep),
},
},
}
@@ -248,7 +248,7 @@ func TestLibIndexSetUpdateRemAttributeProfile(t *testing.T) {
{
Type: utils.MetaConstant,
Path: "~*req.Account",
- Value: config.NewRSRParsersMustCompile("1002", cfg.GeneralCfg().RSRSep),
+ Value: config.NewRSRParsersMustCompile("1002", utils.RSRSep),
},
},
}
@@ -279,7 +279,7 @@ func TestLibIndexSetUpdateRemAttributeProfile(t *testing.T) {
{
Type: utils.MetaConstant,
Path: "~*req.Account",
- Value: config.NewRSRParsersMustCompile("1002", cfg.GeneralCfg().RSRSep),
+ Value: config.NewRSRParsersMustCompile("1002", utils.RSRSep),
},
},
}
@@ -313,7 +313,7 @@ func TestLibIndexSetUpdateRemAttributeProfile(t *testing.T) {
{
Type: utils.MetaConstant,
Path: "~*req.Account",
- Value: config.NewRSRParsersMustCompile("1002", cfg.GeneralCfg().RSRSep),
+ Value: config.NewRSRParsersMustCompile("1002", utils.RSRSep),
},
},
}
@@ -378,7 +378,7 @@ func TestLibIndexModifyAttrPrfFilter(t *testing.T) {
{
Type: utils.MetaConstant,
Path: "~*req.Account",
- Value: config.NewRSRParsersMustCompile("1002", cfg.GeneralCfg().RSRSep),
+ Value: config.NewRSRParsersMustCompile("1002", utils.RSRSep),
},
},
}
diff --git a/engine/librankings.go b/engine/librankings.go
index 4ef55439d..669c63700 100644
--- a/engine/librankings.go
+++ b/engine/librankings.go
@@ -305,7 +305,7 @@ type RankingSummary struct {
SortedStatIDs []string
}
-func (tp *RankingProfile) Set(path []string, val any, _ bool, _ string) (err error) {
+func (tp *RankingProfile) Set(path []string, val any, _ bool) (err error) {
if len(path) != 1 {
return utils.ErrWrongPath
}
diff --git a/engine/libstats.go b/engine/libstats.go
index 503c64dbb..98505518d 100644
--- a/engine/libstats.go
+++ b/engine/libstats.go
@@ -588,7 +588,7 @@ func (ssq *StatQueueWithAPIOpts) UnmarshalJSON(data []byte) (err error) {
return
}
-func (sqp *StatQueueProfile) Set(path []string, val any, newBranch bool, _ string) (err error) {
+func (sqp *StatQueueProfile) Set(path []string, val any, newBranch bool) (err error) {
switch len(path) {
default:
return utils.ErrWrongPath
diff --git a/engine/libstats_test.go b/engine/libstats_test.go
index f5be5b8cc..8fa63d755 100644
--- a/engine/libstats_test.go
+++ b/engine/libstats_test.go
@@ -1404,58 +1404,58 @@ func TestStatQueueProfileSet(t *testing.T) {
FilterIDs: []string{"fltr1"},
}},
}
- if err := sq.Set([]string{}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := sq.Set([]string{}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := sq.Set([]string{""}, "", false, utils.EmptyString); err != nil {
+ if err := sq.Set([]string{""}, "", false); err != nil {
t.Error(err)
}
- if err := sq.Set([]string{"NotAField"}, ";", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := sq.Set([]string{"NotAField"}, ";", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := sq.Set([]string{"NotAField", "1"}, ";", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := sq.Set([]string{"NotAField", "1"}, ";", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := sq.Set([]string{utils.Tenant}, "cgrates.org", false, utils.EmptyString); err != nil {
+ if err := sq.Set([]string{utils.Tenant}, "cgrates.org", false); err != nil {
t.Error(err)
}
- if err := sq.Set([]string{utils.ID}, "ID", false, utils.EmptyString); err != nil {
+ if err := sq.Set([]string{utils.ID}, "ID", false); err != nil {
t.Error(err)
}
- if err := sq.Set([]string{utils.FilterIDs}, "fltr1;*string:~*req.Account:1001", false, utils.EmptyString); err != nil {
+ if err := sq.Set([]string{utils.FilterIDs}, "fltr1;*string:~*req.Account:1001", false); err != nil {
t.Error(err)
}
- if err := sq.Set([]string{utils.Weights}, ";10", false, utils.EmptyString); err != nil {
+ if err := sq.Set([]string{utils.Weights}, ";10", false); err != nil {
t.Error(err)
}
- if err := sq.Set([]string{utils.QueueLength}, 10, false, utils.EmptyString); err != nil {
+ if err := sq.Set([]string{utils.QueueLength}, 10, false); err != nil {
t.Error(err)
}
- if err := sq.Set([]string{utils.TTL}, 10, false, utils.EmptyString); err != nil {
+ if err := sq.Set([]string{utils.TTL}, 10, false); err != nil {
t.Error(err)
}
- if err := sq.Set([]string{utils.MinItems}, 10, false, utils.EmptyString); err != nil {
+ if err := sq.Set([]string{utils.MinItems}, 10, false); err != nil {
t.Error(err)
}
- if err := sq.Set([]string{utils.Stored}, true, false, utils.EmptyString); err != nil {
+ if err := sq.Set([]string{utils.Stored}, true, false); err != nil {
t.Error(err)
}
- if err := sq.Set([]string{utils.Blockers}, ";true", false, utils.EmptyString); err != nil {
+ if err := sq.Set([]string{utils.Blockers}, ";true", false); err != nil {
t.Error(err)
}
- if err := sq.Set([]string{utils.ThresholdIDs}, "TH1", false, utils.EmptyString); err != nil {
+ if err := sq.Set([]string{utils.ThresholdIDs}, "TH1", false); err != nil {
t.Error(err)
}
- if err := sq.Set([]string{utils.Metrics, utils.MetricID}, "*tcd;*acd", false, utils.EmptyString); err != nil {
+ if err := sq.Set([]string{utils.Metrics, utils.MetricID}, "*tcd;*acd", false); err != nil {
t.Error(err)
}
- if err := sq.Set([]string{utils.Metrics, utils.FilterIDs}, "fltr1", false, utils.EmptyString); err != nil {
+ if err := sq.Set([]string{utils.Metrics, utils.FilterIDs}, "fltr1", false); err != nil {
t.Error(err)
}
- if err := sq.Set([]string{utils.Metrics, "wrong"}, "fltr1", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := sq.Set([]string{utils.Metrics, "wrong"}, "fltr1", false); err != utils.ErrWrongPath {
t.Error(err)
}
if !reflect.DeepEqual(exp, sq) {
@@ -1702,7 +1702,6 @@ func TestStatQueueProfile_Set(t *testing.T) {
path []string
val any
newBranch bool
- in3 string
}
tests := []struct {
name string
@@ -1728,7 +1727,7 @@ func TestStatQueueProfile_Set(t *testing.T) {
ThresholdIDs: tt.fields.ThresholdIDs,
lkID: tt.fields.lkID,
}
- if err := sqp.Set(tt.args.path, tt.args.val, tt.args.newBranch, tt.args.in3); err != nil != tt.wantErr {
+ if err := sqp.Set(tt.args.path, tt.args.val, tt.args.newBranch); err != nil != tt.wantErr {
t.Errorf("StatQueueProfile.Set() error = %v, wantErr %v", err, tt.wantErr)
}
})
@@ -1824,7 +1823,7 @@ func TestStatQueueProfileSetBlockersErr(t *testing.T) {
sq := StatQueueProfile{}
expErr := "invalid DynamicBlocker format for string "
- if err := sq.Set([]string{utils.Metrics, utils.Blockers}, "incorrect input", false, utils.EmptyString); err == nil || err.Error() != expErr {
+ if err := sq.Set([]string{utils.Metrics, utils.Blockers}, "incorrect input", false); err == nil || err.Error() != expErr {
t.Errorf("Expected error <%v>, Received error <%v>", expErr, err)
}
@@ -1851,7 +1850,7 @@ func TestStatQueueProfileSetBlockersOK(t *testing.T) {
},
}
- if err := sq.Set([]string{utils.Metrics, utils.Blockers}, "*string:~*opts.*cost:0;false;*suffix:~*req.Destination:+4432&eq:~*opts.*usage:10s;false;*notstring:~*req.RequestType:*prepaid;true;;false", false, utils.EmptyString); err != nil {
+ if err := sq.Set([]string{utils.Metrics, utils.Blockers}, "*string:~*opts.*cost:0;false;*suffix:~*req.Destination:+4432&eq:~*opts.*usage:10s;false;*notstring:~*req.RequestType:*prepaid;true;;false", false); err != nil {
t.Error(err)
}
diff --git a/engine/libtrends.go b/engine/libtrends.go
index ffbea50b7..127eecd0a 100644
--- a/engine/libtrends.go
+++ b/engine/libtrends.go
@@ -309,7 +309,7 @@ type TrendSummary struct {
Metrics map[string]*MetricWithTrend
}
-func (tp *TrendProfile) Set(path []string, val any, _ bool, _ string) (err error) {
+func (tp *TrendProfile) Set(path []string, val any, _ bool) (err error) {
if len(path) != 1 {
return utils.ErrWrongPath
}
diff --git a/engine/model_helpers.go b/engine/model_helpers.go
index 40d69c197..8e05dc47e 100644
--- a/engine/model_helpers.go
+++ b/engine/model_helpers.go
@@ -1503,7 +1503,7 @@ func APItoAttributeProfile(tpAttr *utils.TPAttributeProfile, timezone string) (a
err = fmt.Errorf("empty path in AttributeProfile <%s>", attrPrf.TenantID())
return
}
- sbstPrsr, err := config.NewRSRParsers(reqAttr.Value, config.CgrConfig().GeneralCfg().RSRSep)
+ sbstPrsr, err := config.NewRSRParsers(reqAttr.Value, utils.RSRSep)
if err != nil {
return nil, err
}
@@ -1538,7 +1538,7 @@ func AttributeProfileToAPI(attrPrf *AttributeProfile) (tpAttr *utils.TPAttribute
Blockers: attr.Blockers.String(utils.InfieldSep, utils.ANDSep),
Path: attr.Path,
Type: attr.Type,
- Value: attr.Value.GetRule(utils.InfieldSep),
+ Value: attr.Value.GetRule(),
}
}
return
diff --git a/engine/resources.go b/engine/resources.go
index 24175648f..4d4d15022 100644
--- a/engine/resources.go
+++ b/engine/resources.go
@@ -1023,7 +1023,7 @@ func (rS *ResourceS) V1GetResourceWithConfig(ctx *context.Context, arg *utils.Te
return
}
-func (rp *ResourceProfile) Set(path []string, val any, _ bool, _ string) (err error) {
+func (rp *ResourceProfile) Set(path []string, val any, _ bool) (err error) {
if len(path) != 1 {
return utils.ErrWrongPath
}
diff --git a/engine/routes.go b/engine/routes.go
index 77824dd17..41974c1d2 100644
--- a/engine/routes.go
+++ b/engine/routes.go
@@ -485,7 +485,7 @@ func (rpS *RouteS) V1GetRoutesList(ctx *context.Context, args *utils.CGREvent, r
return
}
-func (rp *RouteProfile) Set(path []string, val any, newBranch bool, _ string) (err error) {
+func (rp *RouteProfile) Set(path []string, val any, newBranch bool) (err error) {
switch len(path) {
default:
return utils.ErrWrongPath
diff --git a/engine/routes_test.go b/engine/routes_test.go
index 0d34eb042..98692a227 100644
--- a/engine/routes_test.go
+++ b/engine/routes_test.go
@@ -875,73 +875,73 @@ func TestRouteProfileSet(t *testing.T) {
RouteParameters: "params",
}},
}
- if err := rp.Set([]string{}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := rp.Set([]string{}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := rp.Set([]string{"", ""}, "", false, utils.EmptyString); err != nil {
+ if err := rp.Set([]string{"", ""}, "", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{"NotAField"}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := rp.Set([]string{"NotAField"}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := rp.Set([]string{"NotAField", "1"}, ":", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := rp.Set([]string{"NotAField", "1"}, ":", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := rp.Set([]string{utils.Tenant}, "cgrates.org", false, utils.EmptyString); err != nil {
+ if err := rp.Set([]string{utils.Tenant}, "cgrates.org", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{utils.ID}, "ID", false, utils.EmptyString); err != nil {
+ if err := rp.Set([]string{utils.ID}, "ID", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{utils.FilterIDs}, "fltr1;*string:~*req.Account:1001", false, utils.EmptyString); err != nil {
+ if err := rp.Set([]string{utils.FilterIDs}, "fltr1;*string:~*req.Account:1001", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{utils.Weights}, ";0", false, utils.EmptyString); err != nil {
+ if err := rp.Set([]string{utils.Weights}, ";0", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{utils.Blockers}, ";false", false, utils.EmptyString); err != nil {
+ if err := rp.Set([]string{utils.Blockers}, ";false", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{utils.Sorting}, utils.MetaQOS, false, utils.EmptyString); err != nil {
+ if err := rp.Set([]string{utils.Sorting}, utils.MetaQOS, false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{utils.SortingParameters}, "param", false, utils.EmptyString); err != nil {
+ if err := rp.Set([]string{utils.SortingParameters}, "param", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{utils.Routes, utils.ID}, "RT1", false, utils.EmptyString); err != nil {
+ if err := rp.Set([]string{utils.Routes, utils.ID}, "RT1", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{utils.Routes, utils.FilterIDs}, "fltr1", false, utils.EmptyString); err != nil {
+ if err := rp.Set([]string{utils.Routes, utils.FilterIDs}, "fltr1", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{utils.Routes, utils.AccountIDs}, "acc1", false, utils.EmptyString); err != nil {
+ if err := rp.Set([]string{utils.Routes, utils.AccountIDs}, "acc1", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{utils.Routes, utils.RateProfileIDs}, "rp1", false, utils.EmptyString); err != nil {
+ if err := rp.Set([]string{utils.Routes, utils.RateProfileIDs}, "rp1", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{utils.Routes, utils.ResourceIDs}, "res1", false, utils.EmptyString); err != nil {
+ if err := rp.Set([]string{utils.Routes, utils.ResourceIDs}, "res1", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{utils.Routes, utils.StatIDs}, "stat1", false, utils.EmptyString); err != nil {
+ if err := rp.Set([]string{utils.Routes, utils.StatIDs}, "stat1", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{utils.Routes, utils.Weights}, ";0", false, utils.EmptyString); err != nil {
+ if err := rp.Set([]string{utils.Routes, utils.Weights}, ";0", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{utils.Routes, utils.Blockers}, ";true", false, utils.EmptyString); err != nil {
+ if err := rp.Set([]string{utils.Routes, utils.Blockers}, ";true", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{utils.Routes, utils.RouteParameters}, "params", false, utils.EmptyString); err != nil {
+ if err := rp.Set([]string{utils.Routes, utils.RouteParameters}, "params", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{utils.SortingParameters, "wrong"}, "param", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := rp.Set([]string{utils.SortingParameters, "wrong"}, "param", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := rp.Set([]string{utils.Routes, "wrong"}, "param", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := rp.Set([]string{utils.Routes, "wrong"}, "param", false); err != utils.ErrWrongPath {
t.Error(err)
}
diff --git a/engine/thresholds.go b/engine/thresholds.go
index 6cf989d53..d958a2abf 100644
--- a/engine/thresholds.go
+++ b/engine/thresholds.go
@@ -600,7 +600,7 @@ func (tS *ThresholdS) V1ResetThreshold(ctx *context.Context, tntID *utils.Tenant
return
}
-func (tp *ThresholdProfile) Set(path []string, val any, _ bool, _ string) (err error) {
+func (tp *ThresholdProfile) Set(path []string, val any, _ bool) (err error) {
if len(path) != 1 {
return utils.ErrWrongPath
}
diff --git a/engine/thresholds_test.go b/engine/thresholds_test.go
index fe10bf1cc..6ee1736cc 100644
--- a/engine/thresholds_test.go
+++ b/engine/thresholds_test.go
@@ -3129,45 +3129,45 @@ func TestThresholdProfileSet(t *testing.T) {
Async: true,
ActionProfileIDs: []string{"acc1"},
}
- if err := th.Set([]string{}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := th.Set([]string{}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := th.Set([]string{"NotAField"}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := th.Set([]string{"NotAField"}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := th.Set([]string{"NotAField", "1"}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := th.Set([]string{"NotAField", "1"}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := th.Set([]string{utils.Tenant}, "cgrates.org", false, utils.EmptyString); err != nil {
+ if err := th.Set([]string{utils.Tenant}, "cgrates.org", false); err != nil {
t.Error(err)
}
- if err := th.Set([]string{utils.ID}, "ID", false, utils.EmptyString); err != nil {
+ if err := th.Set([]string{utils.ID}, "ID", false); err != nil {
t.Error(err)
}
- if err := th.Set([]string{utils.FilterIDs}, "fltr1;*string:~*req.Account:1001", false, utils.EmptyString); err != nil {
+ if err := th.Set([]string{utils.FilterIDs}, "fltr1;*string:~*req.Account:1001", false); err != nil {
t.Error(err)
}
- if err := th.Set([]string{utils.Weights}, ";10", false, utils.EmptyString); err != nil {
+ if err := th.Set([]string{utils.Weights}, ";10", false); err != nil {
t.Error(err)
}
- if err := th.Set([]string{utils.MaxHits}, 10, false, utils.EmptyString); err != nil {
+ if err := th.Set([]string{utils.MaxHits}, 10, false); err != nil {
t.Error(err)
}
- if err := th.Set([]string{utils.MinHits}, 10, false, utils.EmptyString); err != nil {
+ if err := th.Set([]string{utils.MinHits}, 10, false); err != nil {
t.Error(err)
}
- if err := th.Set([]string{utils.MinSleep}, 10, false, utils.EmptyString); err != nil {
+ if err := th.Set([]string{utils.MinSleep}, 10, false); err != nil {
t.Error(err)
}
- if err := th.Set([]string{utils.Blocker}, true, false, utils.EmptyString); err != nil {
+ if err := th.Set([]string{utils.Blocker}, true, false); err != nil {
t.Error(err)
}
- if err := th.Set([]string{utils.Async}, true, false, utils.EmptyString); err != nil {
+ if err := th.Set([]string{utils.Async}, true, false); err != nil {
t.Error(err)
}
- if err := th.Set([]string{utils.ActionProfileIDs}, "acc1", false, utils.EmptyString); err != nil {
+ if err := th.Set([]string{utils.ActionProfileIDs}, "acc1", false); err != nil {
t.Error(err)
}
if !reflect.DeepEqual(exp, th) {
diff --git a/engine/z_attributes_test.go b/engine/z_attributes_test.go
index 059f195fc..3ed9f24c2 100644
--- a/engine/z_attributes_test.go
+++ b/engine/z_attributes_test.go
@@ -4256,7 +4256,7 @@ func TestAttributesParseAttributeSIPCID(t *testing.T) {
},
}
if out, err := ParseAttribute(dp, utils.MetaSIPCID, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.to;~*req.from", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err != nil {
+ 0, utils.EmptyString, utils.EmptyString); err != nil {
t.Fatal(err)
} else if exp != out {
t.Errorf("Expected %q, Received %q", exp, out)
@@ -4270,7 +4270,7 @@ func TestAttributesParseAttributeSIPCID(t *testing.T) {
},
}
if out, err := ParseAttribute(dp, utils.MetaSIPCID, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.to;~*req.from", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err != nil {
+ 0, utils.EmptyString, utils.EmptyString); err != nil {
t.Fatal(err)
} else if exp != out {
t.Errorf("Expected %q, Received %q", exp, out)
@@ -4286,7 +4286,7 @@ func TestAttributesParseAttributeSIPCID(t *testing.T) {
},
}
if out, err := ParseAttribute(dp, utils.MetaSIPCID, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.to;~*req.extra;~*req.from",
- utils.InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err != nil {
+ utils.InfieldSep), 0, utils.EmptyString, utils.EmptyString); err != nil {
t.Fatal(err)
} else if exp != out {
t.Errorf("Expected %q, Received %q", exp, out)
@@ -4301,7 +4301,7 @@ func TestAttributesParseAttributeSIPCID(t *testing.T) {
},
}
if out, err := ParseAttribute(dp, utils.MetaSIPCID, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra;~*req.to;~*req.from",
- utils.InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err != nil {
+ utils.InfieldSep), 0, utils.EmptyString, utils.EmptyString); err != nil {
t.Fatal(err)
} else if exp != out {
t.Errorf("Expected %q, Received %q", exp, out)
@@ -4313,7 +4313,7 @@ func TestAttributesParseAttributeSIPCID(t *testing.T) {
},
}
if _, err := ParseAttribute(dp, utils.MetaSIPCID, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra;~*req.to;~*req.from", utils.
- InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err != utils.ErrNotFound {
+ InfieldSep), 0, utils.EmptyString, utils.EmptyString); err != utils.ErrNotFound {
t.Errorf("Expected <%+v>, received <%+v>", utils.ErrNotFound, err)
}
}
@@ -4329,7 +4329,7 @@ func TestAttributesParseAttributeSIPCIDWrongPathErr(t *testing.T) {
}
value := config.NewRSRParsersMustCompile("~*req.cid;~*req.to;~*req.from;~*opts.WrongPath", utils.InfieldSep)
if _, err := ParseAttribute(dp, utils.MetaSIPCID, utils.EmptyString, value,
- 0, time.UTC.String(), utils.EmptyString, utils.InfieldSep); err == nil ||
+ 0, time.UTC.String(), utils.EmptyString); err == nil ||
err.Error() != utils.ErrWrongPath.Error() {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrWrongPath, err)
}
@@ -4344,7 +4344,7 @@ func TestAttributesParseAttributeSIPCIDNotFoundErr(t *testing.T) {
}
value := config.NewRSRParsersMustCompile("~*req.cid;~*req.to;~*req.from", utils.InfieldSep)
if _, err := ParseAttribute(dp, utils.MetaSIPCID, utils.EmptyString, value,
- 0, time.UTC.String(), utils.EmptyString, utils.InfieldSep); err == nil ||
+ 0, time.UTC.String(), utils.EmptyString); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
}
@@ -4360,7 +4360,7 @@ func TestAttributesParseAttributeSIPCIDInvalidArguments(t *testing.T) {
value := config.RSRParsers{}
experr := `invalid number of arguments <[]> to *sipcid`
if _, err := ParseAttribute(dp, utils.MetaSIPCID, utils.EmptyString, value,
- 0, time.UTC.String(), utils.EmptyString, utils.InfieldSep); err == nil ||
+ 0, time.UTC.String(), utils.EmptyString); err == nil ||
err.Error() != experr {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err)
}
@@ -5176,7 +5176,7 @@ func TestAttributesParseAttributeMetaNone(t *testing.T) {
},
}
if out, err := ParseAttribute(dp, utils.MetaNone, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.to;~*req.from", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err != nil {
+ 0, utils.EmptyString, utils.EmptyString); err != nil {
t.Fatal(err)
} else if out != nil {
t.Errorf("Expected %+v, Received %+v", nil, out)
@@ -5191,7 +5191,7 @@ func TestAttributesParseAttributeMetaUsageDifferenceBadValError(t *testing.T) {
"from": "1002",
},
}
- _, err := ParseAttribute(dp, utils.MetaUsageDifference, utils.EmptyString, config.NewRSRParsersMustCompile("", utils.InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ _, err := ParseAttribute(dp, utils.MetaUsageDifference, utils.EmptyString, config.NewRSRParsersMustCompile("", utils.InfieldSep), 0, utils.EmptyString, utils.EmptyString)
if err == nil || err.Error() != "invalid arguments to *usageDifference" {
t.Fatal(err)
@@ -5207,7 +5207,7 @@ func TestAttributesParseAttributeMetaCCUsageError(t *testing.T) {
},
}
_, err := ParseAttribute(dp, utils.MetaCCUsage, utils.EmptyString, config.NewRSRParsersMustCompile("::;~*req.to;~*req.from", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep)
+ 0, utils.EmptyString, utils.EmptyString)
if err == nil || err.Error() != "invalid requestNumber <::> to *ccUsage" {
t.Fatal(err)
}
@@ -5369,7 +5369,7 @@ func TestAttributesParseAttributeMetaGeneric(t *testing.T) {
},
}
if out, err := ParseAttribute(dp, utils.MetaGeneric, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.to;~*req.from", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err != nil {
+ 0, utils.EmptyString, utils.EmptyString); err != nil {
t.Fatal(err)
} else if exp != out {
t.Errorf("Expected %q, Received %q", exp, out)
@@ -5385,7 +5385,7 @@ func TestAttributesParseAttributeError(t *testing.T) {
},
}
if _, err := ParseAttribute(dp, "badType", utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.to;~*req.from", utils.InfieldSep),
- 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil || err.Error() != "unsupported type: " {
+ 0, utils.EmptyString, utils.EmptyString); err == nil || err.Error() != "unsupported type: " {
t.Errorf("Expected %q, Received %q", "unsupported type: ", err)
}
}
@@ -5405,7 +5405,7 @@ func TestAttributesProcessEventPasswordAttribute(t *testing.T) {
filterS := NewFilterS(cfg, nil, dm)
attrS := NewAttributeService(dm, filterS, cfg)
- value := config.NewRSRParsersMustCompile("abcd123", config.CgrConfig().GeneralCfg().RSRSep)
+ value := config.NewRSRParsersMustCompile("abcd123", utils.RSRSep)
attrPrf := &AttributeProfile{
Tenant: "cgrates.org",
@@ -5471,7 +5471,7 @@ func TestAttributesProcessEventPasswordAttribute(t *testing.T) {
}
}
- value = config.NewRSRParsersMustCompile(hashedPw, config.CgrConfig().GeneralCfg().RSRSep)
+ value = config.NewRSRParsersMustCompile(hashedPw, utils.RSRSep)
expAttrPrf := &AttributeProfile{
Tenant: "cgrates.org",
ID: "ATTR_TEST",
@@ -5509,7 +5509,7 @@ func TestAttributesSetAttributeProfilePasswordAttr(t *testing.T) {
dm := NewDataManager(data, cfg.CacheCfg(), nil)
Cache = NewCacheS(cfg, dm, nil, nil)
- value := config.NewRSRParsersMustCompile("abcd123", config.CgrConfig().GeneralCfg().RSRSep)
+ value := config.NewRSRParsersMustCompile("abcd123", utils.RSRSep)
attrPrf := &AttributeProfile{
Tenant: "cgrates.org",
ID: "ATTR_TEST",
@@ -5549,7 +5549,7 @@ func TestAttributesSetAttributeProfilePasswordAttr(t *testing.T) {
if rcv, err := dm.GetAttributeProfile(context.Background(), attrPrf.Tenant, attrPrf.ID, true, true,
utils.NonTransactional); err != nil {
t.Error(err)
- } else if hashedPw := rcv.Attributes[0].Value.GetRule(cfg.GeneralCfg().RSRSep); !utils.VerifyHash(hashedPw, "abcd123") {
+ } else if hashedPw := rcv.Attributes[0].Value.GetRule(); !utils.VerifyHash(hashedPw, "abcd123") {
t.Errorf("Received an incorrect password")
} else {
rcv.Attributes[0].Value = nil
diff --git a/engine/z_resources_test.go b/engine/z_resources_test.go
index 3792c430d..11a40a5df 100644
--- a/engine/z_resources_test.go
+++ b/engine/z_resources_test.go
@@ -6913,44 +6913,44 @@ func TestResourceProfileSet(t *testing.T) {
Stored: true,
ThresholdIDs: []string{"TH1"},
}
- if err := cp.Set([]string{}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := cp.Set([]string{}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := cp.Set([]string{"NotAField"}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := cp.Set([]string{"NotAField"}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := cp.Set([]string{"NotAField", "1"}, "", false, utils.EmptyString); err != utils.ErrWrongPath {
+ if err := cp.Set([]string{"NotAField", "1"}, "", false); err != utils.ErrWrongPath {
t.Error(err)
}
- if err := cp.Set([]string{utils.Tenant}, "cgrates.org", false, utils.EmptyString); err != nil {
+ if err := cp.Set([]string{utils.Tenant}, "cgrates.org", false); err != nil {
t.Error(err)
}
- if err := cp.Set([]string{utils.ID}, "ID", false, utils.EmptyString); err != nil {
+ if err := cp.Set([]string{utils.ID}, "ID", false); err != nil {
t.Error(err)
}
- if err := cp.Set([]string{utils.FilterIDs}, "fltr1;*string:~*req.Account:1001", false, utils.EmptyString); err != nil {
+ if err := cp.Set([]string{utils.FilterIDs}, "fltr1;*string:~*req.Account:1001", false); err != nil {
t.Error(err)
}
- if err := cp.Set([]string{utils.Weights}, ";10", false, utils.EmptyString); err != nil {
+ if err := cp.Set([]string{utils.Weights}, ";10", false); err != nil {
t.Error(err)
}
- if err := cp.Set([]string{utils.UsageTTL}, 10, false, utils.EmptyString); err != nil {
+ if err := cp.Set([]string{utils.UsageTTL}, 10, false); err != nil {
t.Error(err)
}
- if err := cp.Set([]string{utils.Limit}, 10, false, utils.EmptyString); err != nil {
+ if err := cp.Set([]string{utils.Limit}, 10, false); err != nil {
t.Error(err)
}
- if err := cp.Set([]string{utils.AllocationMessage}, "new", false, utils.EmptyString); err != nil {
+ if err := cp.Set([]string{utils.AllocationMessage}, "new", false); err != nil {
t.Error(err)
}
- if err := cp.Set([]string{utils.Blocker}, true, false, utils.EmptyString); err != nil {
+ if err := cp.Set([]string{utils.Blocker}, true, false); err != nil {
t.Error(err)
}
- if err := cp.Set([]string{utils.Stored}, true, false, utils.EmptyString); err != nil {
+ if err := cp.Set([]string{utils.Stored}, true, false); err != nil {
t.Error(err)
}
- if err := cp.Set([]string{utils.ThresholdIDs}, "TH1", false, utils.EmptyString); err != nil {
+ if err := cp.Set([]string{utils.ThresholdIDs}, "TH1", false); err != nil {
t.Error(err)
}
diff --git a/ers/ers.go b/ers/ers.go
index c2ff16bff..3bc1b8d76 100644
--- a/ers/ers.go
+++ b/ers/ers.go
@@ -298,8 +298,7 @@ func (erS *ERService) processPartialEvent(ev *utils.CGREvent, rdrCfg *config.Eve
var cgrEv *utils.CGREvent
if cgrEv, err = mergePartialEvents(cgrEvs.events, cgrEvs.rdrCfg, erS.filterS, // merge the events
erS.cfg.GeneralCfg().DefaultTenant,
- erS.cfg.GeneralCfg().DefaultTimezone,
- erS.cfg.GeneralCfg().RSRSep); err != nil {
+ erS.cfg.GeneralCfg().DefaultTimezone); err != nil {
return
}
if partial := cgrEv.APIOpts[utils.PartialOpt]; !slices.Contains([]string{utils.FalseStr, utils.EmptyString},
@@ -332,8 +331,7 @@ func (erS *ERService) onEvicted(id string, value any) {
case utils.MetaPostCDR: // merge the events and post the to erS
cgrEv, err := mergePartialEvents(eEvs.events, eEvs.rdrCfg, erS.filterS,
erS.cfg.GeneralCfg().DefaultTenant,
- erS.cfg.GeneralCfg().DefaultTimezone,
- erS.cfg.GeneralCfg().RSRSep)
+ erS.cfg.GeneralCfg().DefaultTimezone)
if err != nil {
utils.Logger.Warning(
fmt.Sprintf("<%s> failed posting expired parial events <%s> due error <%s>",
@@ -351,8 +349,7 @@ func (erS *ERService) onEvicted(id string, value any) {
}
cgrEv, err := mergePartialEvents(eEvs.events, eEvs.rdrCfg, erS.filterS, // merge the partial events
erS.cfg.GeneralCfg().DefaultTenant,
- erS.cfg.GeneralCfg().DefaultTimezone,
- erS.cfg.GeneralCfg().RSRSep)
+ erS.cfg.GeneralCfg().DefaultTimezone)
if err != nil {
utils.Logger.Warning(
fmt.Sprintf("<%s> failed posting expired parial events <%s> due error <%s>",
@@ -420,8 +417,7 @@ func (erS *ERService) onEvicted(id string, value any) {
}
cgrEv, err := mergePartialEvents(eEvs.events, eEvs.rdrCfg, erS.filterS, // merge the partial events
erS.cfg.GeneralCfg().DefaultTenant,
- erS.cfg.GeneralCfg().DefaultTimezone,
- erS.cfg.GeneralCfg().RSRSep)
+ erS.cfg.GeneralCfg().DefaultTimezone)
if err != nil {
utils.Logger.Warning(
fmt.Sprintf("<%s> failed posting expired parial events <%s> due error <%s>",
diff --git a/ers/libers.go b/ers/libers.go
index 42fab220b..68cff6a1c 100644
--- a/ers/libers.go
+++ b/ers/libers.go
@@ -31,7 +31,7 @@ import (
)
// mergePartialEvents will unite the events using the reader configuration
-func mergePartialEvents(cgrEvs []*utils.CGREvent, cfg *config.EventReaderCfg, fltrS *engine.FilterS, dftTnt, dftTmz, rsrSep string) (cgrEv *utils.CGREvent, err error) {
+func mergePartialEvents(cgrEvs []*utils.CGREvent, cfg *config.EventReaderCfg, fltrS *engine.FilterS, dftTnt, dftTmz string) (cgrEv *utils.CGREvent, err error) {
cgrEv = cgrEvs[0] // by default there is at least one event
if len(cgrEvs) != 1 { // need to merge the incoming events
// prepare the field after which the events are ordered
@@ -40,7 +40,7 @@ func mergePartialEvents(cgrEvs []*utils.CGREvent, cfg *config.EventReaderCfg, fl
ordFld = *cfg.Opts.PartialOrderField
}
var ordPath config.RSRParsers
- if ordPath, err = config.NewRSRParsers(ordFld, rsrSep); err != nil { // convert the option to rsrParsers
+ if ordPath, err = config.NewRSRParsers(ordFld, utils.RSRSep); err != nil { // convert the option to rsrParsers
return nil, err
}
diff --git a/ers/libers_test.go b/ers/libers_test.go
index 1e36d7e94..83eb79de6 100644
--- a/ers/libers_test.go
+++ b/ers/libers_test.go
@@ -89,7 +89,7 @@ func TestLibErsMergePartialEvents(t *testing.T) {
},
}
if rcv, err := mergePartialEvents(cgrEvs, confg.ERsCfg().Readers[0], fltrS, confg.GeneralCfg().DefaultTenant,
- confg.GeneralCfg().DefaultTimezone, confg.GeneralCfg().RSRSep); err != nil {
+ confg.GeneralCfg().DefaultTimezone); err != nil {
t.Error(err)
} else {
rcv.ID = utils.EmptyString
diff --git a/general_tests/all_sections_cfg_rld_it_test.go b/general_tests/all_sections_cfg_rld_it_test.go
index a4e651e10..5b8f47be0 100644
--- a/general_tests/all_sections_cfg_rld_it_test.go
+++ b/general_tests/all_sections_cfg_rld_it_test.go
@@ -131,13 +131,13 @@ func testSectConfigSReloadGeneral(t *testing.T) {
var reply string
if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
Tenant: "cgrates.org",
- Config: `{"general":{"connect_attempts":5,"connect_timeout":"1s","dbdata_encoding":"*msgpack","default_caching":"*reload","default_category":"call","default_request_type":"*rated","default_tenant":"cgrates.org","default_timezone":"Local","digest_equal":":","digest_separator":",","failed_posts_dir":"/var/spool/cgrates/failed_posts","failed_posts_ttl":"5s","locking_timeout":"0","log_level":7,"logger":"*syslog","max_parallel_conns":100,"node_id":"98ead14","poster_attempts":3,"reconnects":-1,"reply_timeout":"50s","rounding_decimals":5,"rsr_separator":";","tpexport_dir":"/var/spool/cgrates/tpe"}}`,
+ Config: `{"general":{"connect_attempts":5,"connect_timeout":"1s","dbdata_encoding":"*msgpack","default_caching":"*reload","default_category":"call","default_request_type":"*rated","default_tenant":"cgrates.org","default_timezone":"Local","digest_equal":":","digest_separator":",","failed_posts_dir":"/var/spool/cgrates/failed_posts","failed_posts_ttl":"5s","locking_timeout":"0","log_level":7,"logger":"*syslog","max_parallel_conns":100,"node_id":"98ead14","poster_attempts":3,"reconnects":-1,"reply_timeout":"50s","rounding_decimals":5,"tpexport_dir":"/var/spool/cgrates/tpe"}}`,
}, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected OK received: %+v", reply)
}
- cfgStr := `{"general":{"caching_delay":"0","connect_attempts":5,"connect_timeout":"1s","dbdata_encoding":"*msgpack","decimal_max_scale":0,"decimal_min_scale":0,"decimal_precision":0,"decimal_rounding_mode":"*toNearestEven","default_caching":"*reload","default_category":"call","default_request_type":"*rated","default_tenant":"cgrates.org","default_timezone":"Local","digest_equal":":","digest_separator":",","locking_timeout":"0","max_parallel_conns":100,"max_reconnect_interval":"0","node_id":"98ead14","opts":{"*exporterIDs":[]},"reconnects":-1,"reply_timeout":"50s","rounding_decimals":5,"rsr_separator":";","tpexport_dir":"/var/spool/cgrates/tpe"}}`
+ cfgStr := `{"general":{"caching_delay":"0","connect_attempts":5,"connect_timeout":"1s","dbdata_encoding":"*msgpack","decimal_max_scale":0,"decimal_min_scale":0,"decimal_precision":0,"decimal_rounding_mode":"*toNearestEven","default_caching":"*reload","default_category":"call","default_request_type":"*rated","default_tenant":"cgrates.org","default_timezone":"Local","digest_equal":":","digest_separator":",","locking_timeout":"0","max_parallel_conns":100,"max_reconnect_interval":"0","node_id":"98ead14","opts":{"*exporterIDs":[]},"reconnects":-1,"reply_timeout":"50s","rounding_decimals":5,"tpexport_dir":"/var/spool/cgrates/tpe"}}`
var rpl string
if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
Tenant: "cgrates.org",
diff --git a/loaders/libloader.go b/loaders/libloader.go
index 76f1c5f36..d35f5f61b 100644
--- a/loaders/libloader.go
+++ b/loaders/libloader.go
@@ -124,7 +124,7 @@ func (ar *record) FieldAsInterface(fldPath []string) (val any, err error) {
}
// SetFields will populate fields of record out of templates
-func (ar *record) SetFields(ctx *context.Context, tmpls []*config.FCTemplate, filterS *engine.FilterS, rndDec int, dftTmz, rsrSep string) (err error) {
+func (ar *record) SetFields(ctx *context.Context, tmpls []*config.FCTemplate, filterS *engine.FilterS, rndDec int, dftTmz string) (err error) {
ar.tmp = &utils.DataNode{Type: utils.NMMapType, Map: make(map[string]*utils.DataNode)}
for _, fld := range tmpls {
if pass, err := filterS.Pass(context.TODO(), ar.tenant,
@@ -147,7 +147,7 @@ func (ar *record) SetFields(ctx *context.Context, tmpls []*config.FCTemplate, fi
default:
var out any
if out, err = engine.ParseAttribute(ar, fld.Type, fld.Path, fld.Value, rndDec,
- utils.FirstNonEmpty(fld.Timezone, dftTmz), fld.Layout, rsrSep); err != nil {
+ utils.FirstNonEmpty(fld.Timezone, dftTmz), fld.Layout); err != nil {
if err == utils.ErrNotFound {
if !fld.Mandatory {
err = nil
@@ -170,9 +170,9 @@ func (ar *record) SetFields(ctx *context.Context, tmpls []*config.FCTemplate, fi
nMItm := &utils.DataLeaf{Data: out, NewBranch: fld.NewBranch, AttributeID: fld.AttributeID}
switch fld.Type {
case utils.MetaComposed:
- err = ar.Compose(fullPath, nMItm, rsrSep)
+ err = ar.Compose(fullPath, nMItm)
default:
- err = ar.Set(fullPath, nMItm, rsrSep)
+ err = ar.Set(fullPath, nMItm)
}
if err != nil {
return
@@ -215,7 +215,7 @@ func (ar *record) Remove(fullPath *utils.FullPath) error {
// Set sets the value at the given path
// this used with full path and the processed path to not calculate them for every set
-func (ar *record) Compose(fullPath *utils.FullPath, val *utils.DataLeaf, sep string) (err error) {
+func (ar *record) Compose(fullPath *utils.FullPath, val *utils.DataLeaf) (err error) {
switch fullPath.PathSlice[0] {
case utils.MetaTmp:
return ar.tmp.Compose(fullPath.PathSlice[1:], val)
@@ -234,15 +234,15 @@ func (ar *record) Compose(fullPath *utils.FullPath, val *utils.DataLeaf, sep str
if valStr, err = ar.FieldAsString(fullPath.PathSlice); err != nil && err != utils.ErrNotFound {
return
}
- return ar.data.Set(fullPath.PathSlice, valStr+utils.IfaceAsString(val.Data), val.NewBranch, utils.InfieldSep)
+ return ar.data.Set(fullPath.PathSlice, valStr+utils.IfaceAsString(val.Data), val.NewBranch)
}
}
// Set implements utils.NMInterface
-func (ar *record) Set(fullPath *utils.FullPath, nm *utils.DataLeaf, sep string) (err error) {
+func (ar *record) Set(fullPath *utils.FullPath, nm *utils.DataLeaf) (err error) {
switch fullPath.PathSlice[0] {
default:
- return ar.data.Set(fullPath.PathSlice, nm.Data, nm.NewBranch, sep)
+ return ar.data.Set(fullPath.PathSlice, nm.Data, nm.NewBranch)
case utils.MetaTmp:
_, err = ar.tmp.Set(fullPath.PathSlice[1:], nm.Data)
return
@@ -254,7 +254,7 @@ func (ar *record) Set(fullPath *utils.FullPath, nm *utils.DataLeaf, sep string)
type profile interface {
utils.DataProvider
- Set([]string, any, bool, string) error
+ Set([]string, any, bool) error
Merge(any)
TenantID() string
}
diff --git a/loaders/libloader_test.go b/loaders/libloader_test.go
index db885a310..f1d5f7506 100644
--- a/loaders/libloader_test.go
+++ b/loaders/libloader_test.go
@@ -67,12 +67,12 @@ func TestNewRecord(t *testing.T) {
SetFields(context.Background(), []*config.FCTemplate{
{Filters: []string{"*exists:~*req.NoField:"}},
{Filters: []string{"*string"}},
- }, fs, 0, "", utils.InfieldSep); err == nil || err.Error() != expErrMsg {
+ }, fs, 0, ""); err == nil || err.Error() != expErrMsg {
t.Errorf("Expeceted: %q, received: %v", expErrMsg, err)
}
pt := profileTest{}
if err := newRecord(utils.MapStorage{}, pt, "cgrates.org", cfg, ltcache.NewCache(-1, 0, false, nil)).
- SetFields(context.Background(), []*config.FCTemplate{}, fs, 0, "", utils.InfieldSep); err != nil {
+ SetFields(context.Background(), []*config.FCTemplate{}, fs, 0, ""); err != nil {
t.Error(err)
}
if len(pt) != 0 {
@@ -107,7 +107,7 @@ func TestNewRecordWithCahe(t *testing.T) {
}
r := profileTest{}
if err := newRecord(config.NewSliceDP([]string{"cgrates.org", "Attr1"}, nil), r, "cgrates.org", cfg, ltcache.NewCache(-1, 0, false, nil)).
- SetFields(context.Background(), fc, fs, 0, "", utils.InfieldSep); err != nil {
+ SetFields(context.Background(), fc, fs, 0, ""); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(r, exp) {
t.Errorf("Expected %+v, received %+v", exp, r)
@@ -136,7 +136,7 @@ func TestNewRecordWithTmp(t *testing.T) {
}
r := profileTest{}
if err := newRecord(config.NewSliceDP([]string{"cgrates.org", "Attr1"}, nil), r, "cgrates.org", cfg, ltcache.NewCache(-1, 0, false, nil)).
- SetFields(context.Background(), fc, fs, 0, "", utils.InfieldSep); err != nil {
+ SetFields(context.Background(), fc, fs, 0, ""); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(r, exp) {
t.Errorf("Expected %+v, received %+v", exp, r)
@@ -145,7 +145,7 @@ func TestNewRecordWithTmp(t *testing.T) {
type profileTest utils.MapStorage
-func (p profileTest) Set(path []string, val any, _ bool, _ string) error {
+func (p profileTest) Set(path []string, val any, _ bool) error {
return utils.MapStorage(p).Set(path, val)
}
func (p profileTest) Merge(v2 any) {
@@ -195,7 +195,7 @@ func TestNewRecordWithTmp2(t *testing.T) {
}
r := profileTest{}
if err := newRecord(config.NewSliceDP([]string{"cgrates.org", "Attr1"}, nil), r, "cgrates.org", cfg, ltcache.NewCache(-1, 0, false, nil)).
- SetFields(context.Background(), fc, fs, 0, "", utils.InfieldSep); err != nil {
+ SetFields(context.Background(), fc, fs, 0, ""); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(r, exp) {
t.Errorf("Expected %+v, received %+v", exp, r)
@@ -218,7 +218,7 @@ func TestNewRecordWithComposeError(t *testing.T) {
"Value": []string{},
}
if err := newRecord(config.NewSliceDP([]string{"cgrates.org", "Attr1"}, nil), r, "cgrates.org", cfg, ltcache.NewCache(-1, 0, false, nil)).
- SetFields(context.Background(), fc, fs, 0, "", utils.InfieldSep); err != utils.ErrWrongPath {
+ SetFields(context.Background(), fc, fs, 0, ""); err != utils.ErrWrongPath {
t.Error(err)
}
}
@@ -238,7 +238,7 @@ func TestNewRecordWithRemoveError(t *testing.T) {
}
expErrMsg := `strconv.Atoi: parsing "NotVal": invalid syntax`
if err := newRecord(config.NewSliceDP([]string{"cgrates.org", "Attr1"}, nil), r, "cgrates.org", cfg, ltcache.NewCache(-1, 0, false, nil)).
- SetFields(context.Background(), fc, fs, 0, "", utils.InfieldSep); err == nil || err.Error() != expErrMsg {
+ SetFields(context.Background(), fc, fs, 0, ""); err == nil || err.Error() != expErrMsg {
t.Errorf("Expeceted: %v, received: %v", expErrMsg, err)
}
}
@@ -257,7 +257,7 @@ func TestNewRecordSetFieldsError(t *testing.T) {
"Value": []string{},
}
if err := newRecord(config.NewSliceDP([]string{"cgrates.org", "Attr1"}, nil), r, "cgrates.org", cfg, ltcache.NewCache(-1, 0, false, nil)).
- SetFields(context.Background(), fc, fs, 0, "", utils.InfieldSep); err != utils.ErrWrongPath {
+ SetFields(context.Background(), fc, fs, 0, ""); err != utils.ErrWrongPath {
t.Error(err)
}
}
@@ -276,7 +276,7 @@ func TestNewRecordSetFieldsMandatoryError(t *testing.T) {
}
expErrMsg := `NOT_FOUND:`
if err := newRecord(config.NewSliceDP([]string{"cgrates.org", "Attr1"}, nil), r, "cgrates.org", cfg, ltcache.NewCache(-1, 0, false, nil)).
- SetFields(context.Background(), fc, fs, 0, "", utils.InfieldSep); err == nil || err.Error() != expErrMsg {
+ SetFields(context.Background(), fc, fs, 0, ""); err == nil || err.Error() != expErrMsg {
t.Errorf("Expeceted: %v, received: %v", expErrMsg, err)
}
}
diff --git a/loaders/loader.go b/loaders/loader.go
index 7346521ad..f3ebc62c8 100644
--- a/loaders/loader.go
+++ b/loaders/loader.go
@@ -270,7 +270,7 @@ func (l *loader) processData(ctx *context.Context, csv *CSVFile, tmpls []*config
tmp := newPrf()
if err = newRecord(config.NewSliceDP(record, nil), tmp, l.ldrCfg.Tenant, l.cfg, l.dataCache[lType]).
- SetFields(ctx, tmpls, l.filterS, l.cfg.GeneralCfg().RoundingDecimals, l.cfg.GeneralCfg().DefaultTimezone, l.cfg.GeneralCfg().RSRSep); err != nil {
+ SetFields(ctx, tmpls, l.filterS, l.cfg.GeneralCfg().RoundingDecimals, l.cfg.GeneralCfg().DefaultTimezone); err != nil {
utils.Logger.Warning(
fmt.Sprintf("<%s> <%s> file<%s> line: %d, error: %s",
utils.LoaderS, l.ldrCfg.ID, csv.Path(), lineNr, err))
diff --git a/migrator/attributes.go b/migrator/attributes.go
index 5ec0c0e5d..6d2ac61aa 100644
--- a/migrator/attributes.go
+++ b/migrator/attributes.go
@@ -290,7 +290,7 @@ func (v1AttrPrf v1AttributeProfile) AsAttributeProfile() (attrPrf *v2AttributePr
for _, mp := range v1AttrPrf.Attributes {
for _, attr := range mp {
- sbstPrsr, err := config.NewRSRParsers(attr.Substitute, config.CgrConfig().GeneralCfg().RSRSep)
+ sbstPrsr, err := config.NewRSRParsers(attr.Substitute, utils.RSRSep)
if err != nil {
return nil, err
}
@@ -358,7 +358,7 @@ func (v1AttrPrf v1AttributeProfile) AsAttributeProfileV1To4() (attrPrf *v4Attrib
filterIDs = append(filterIDs, utils.MetaString+utils.ConcatenatedKeySep+attr.FieldName+utils.ConcatenatedKeySep+attr.Initial)
}
// create RSRParser
- sbstPrsr, err := config.NewRSRParsers(attr.Substitute, config.CgrConfig().GeneralCfg().RSRSep)
+ sbstPrsr, err := config.NewRSRParsers(attr.Substitute, utils.RSRSep)
if err != nil {
return nil, err
}
@@ -404,12 +404,12 @@ func (v4AttrPrf v4AttributeProfile) AsAttributeProfile() (attrPrf *v6AttributePr
Weight: v4AttrPrf.Weight,
}
for _, attr := range v4AttrPrf.Attributes { // ToDo:redo this
- val := attr.Value.GetRule(utils.InfieldSep)
+ val := attr.Value.GetRule()
rsrVal := attr.Value
if strings.HasPrefix(val, utils.DynamicDataPrefix) {
val = val[1:] // remove the DynamicDataPrefix
val = utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + val
- rsrVal, err = config.NewRSRParsers(val, config.CgrConfig().GeneralCfg().RSRSep)
+ rsrVal, err = config.NewRSRParsers(val, utils.RSRSep)
if err != nil {
return nil, err
}
diff --git a/migrator/attributes_it_test.go b/migrator/attributes_it_test.go
index ef7d5a613..5a3d60349 100644
--- a/migrator/attributes_it_test.go
+++ b/migrator/attributes_it_test.go
@@ -737,7 +737,7 @@ func testAttrITV1ToV5(t *testing.T) {
}
// Construct the exepected output
- sbstPrsr, err := config.NewRSRParsers("Al1", config.CgrConfig().GeneralCfg().RSRSep)
+ sbstPrsr, err := config.NewRSRParsers("Al1", utils.RSRSep)
if err != nil {
t.Error("Error converting Substitute from string to RSRParser: ", err)
}
@@ -825,7 +825,7 @@ func testAttrITV1ToV5(t *testing.T) {
func testAttrITV2ToV5(t *testing.T) {
// contruct the first v2 attributeProfile with all fields filled up
- sbstPrsr, err := config.NewRSRParsers("Al1", config.CgrConfig().GeneralCfg().RSRSep)
+ sbstPrsr, err := config.NewRSRParsers("Al1", utils.RSRSep)
if err != nil {
t.Error("Error converting Substitute from string to RSRParser: ", err)
}
@@ -953,7 +953,7 @@ func testAttrITV2ToV5(t *testing.T) {
func testAttrITV3ToV5(t *testing.T) {
// contruct the first v3 attributeProfile with all fields filled up
- sbstPrsr, err := config.NewRSRParsers("Al1", config.CgrConfig().GeneralCfg().RSRSep)
+ sbstPrsr, err := config.NewRSRParsers("Al1", utils.RSRSep)
if err != nil {
t.Error("Error converting Substitute from string to RSRParser: ", err)
}
@@ -1089,7 +1089,7 @@ func testAttrITV3ToV5(t *testing.T) {
func testAttrITdryRunV2ToV5(t *testing.T) {
// Test with dryRun on true
// contruct the v2 attributeProfile with all fields filled up
- sbstPrsr, err := config.NewRSRParsers("Al1", config.CgrConfig().GeneralCfg().RSRSep)
+ sbstPrsr, err := config.NewRSRParsers("Al1", utils.RSRSep)
if err != nil {
t.Error("Error converting Substitute from string to RSRParser: ", err)
}
@@ -1148,7 +1148,7 @@ func testAttrITdryRunV2ToV5(t *testing.T) {
func testAttrITdryRunV3ToV5(t *testing.T) {
// Test with dryRun on true
// contruct the v3 attributeProfile with all fields filled up
- sbstPrsr, err := config.NewRSRParsers("Al1", config.CgrConfig().GeneralCfg().RSRSep)
+ sbstPrsr, err := config.NewRSRParsers("Al1", utils.RSRSep)
if err != nil {
t.Error("Error converting Substitute from string to RSRParser: ", err)
}
diff --git a/migrator/attributes_test.go b/migrator/attributes_test.go
index dd725d0ca..c4373c9f3 100644
--- a/migrator/attributes_test.go
+++ b/migrator/attributes_test.go
@@ -275,7 +275,7 @@ func TestAsAttributeProfileV2(t *testing.T) {
Attributes: mapSubstitutes,
Weight: 20,
}
- sbstPrsr, err := config.NewRSRParsers("Al1", config.CgrConfig().GeneralCfg().RSRSep)
+ sbstPrsr, err := config.NewRSRParsers("Al1", utils.RSRSep)
if err != nil {
t.Error("Error converting Substitute from string to RSRParser: ", err)
}
@@ -464,7 +464,7 @@ func TestAsAttributeProfileV1To4(t *testing.T) {
Attributes: mapSubstitutes,
Weight: 20,
}
- sbstPrsr, err := config.NewRSRParsers("Al1", config.CgrConfig().GeneralCfg().RSRSep)
+ sbstPrsr, err := config.NewRSRParsers("Al1", utils.RSRSep)
if err != nil {
t.Error("Error converting Substitute from string to RSRParser: ", err)
}
diff --git a/utils/account.go b/utils/account.go
index 713b6daa6..b3e69a9cf 100644
--- a/utils/account.go
+++ b/utils/account.go
@@ -519,7 +519,7 @@ type ArgsActRemoveBalances struct {
APIOpts map[string]any
}
-func (ap *Account) Set(path []string, val any, newBranch bool, _ string) (err error) {
+func (ap *Account) Set(path []string, val any, newBranch bool) (err error) {
switch len(path) {
case 0:
return ErrWrongPath
diff --git a/utils/account_test.go b/utils/account_test.go
index 4609d526b..2ebf1cf69 100644
--- a/utils/account_test.go
+++ b/utils/account_test.go
@@ -992,146 +992,146 @@ func TestAccountSet(t *testing.T) {
},
},
}
- if err := acc.Set([]string{}, "", false, EmptyString); err != ErrWrongPath {
+ if err := acc.Set([]string{}, "", false); err != ErrWrongPath {
t.Error(err)
}
- if err := acc.Set([]string{"NotAField"}, "", false, EmptyString); err != ErrWrongPath {
+ if err := acc.Set([]string{"NotAField"}, "", false); err != ErrWrongPath {
t.Error(err)
}
- if err := acc.Set([]string{"NotAField", "1"}, "", false, EmptyString); err != ErrWrongPath {
+ if err := acc.Set([]string{"NotAField", "1"}, "", false); err != ErrWrongPath {
t.Error(err)
}
expErr := `malformed map pair: <"bal">`
- if err := acc.Set([]string{Opts}, "bal", false, EmptyString); err == nil || err.Error() != expErr {
+ if err := acc.Set([]string{Opts}, "bal", false); err == nil || err.Error() != expErr {
t.Error(err)
}
- if err := acc.Set([]string{Opts}, "bal:val;bal2:val2", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Opts}, "bal:val;bal2:val2", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Opts, "bal3"}, "val2", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Opts, "bal3"}, "val2", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Opts + "[bal4]"}, "val2", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Opts + "[bal4]"}, "val2", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Opts + "[bal5]", "bal6"}, "val3", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Opts + "[bal5]", "bal6"}, "val3", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Tenant}, "cgrates.org", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Tenant}, "cgrates.org", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{ID}, "ID", false, EmptyString); err != nil {
+ if err := acc.Set([]string{ID}, "ID", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{FilterIDs}, "fltr1;*string:~*req.Account:1001", false, EmptyString); err != nil {
+ if err := acc.Set([]string{FilterIDs}, "fltr1;*string:~*req.Account:1001", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{ThresholdIDs}, "TH1", false, EmptyString); err != nil {
+ if err := acc.Set([]string{ThresholdIDs}, "TH1", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Weights}, ";0", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Weights}, ";0", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Blockers}, ";0", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Blockers}, ";0", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Balances + "[bal1]", ID}, "bal1", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Balances + "[bal1]", ID}, "bal1", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", Type}, MetaConcrete, false, EmptyString); err != nil {
+ if err := acc.Set([]string{Balances, "bal1", Type}, MetaConcrete, false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", Opts}, "", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Balances, "bal1", Opts}, "", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", Opts + "bal7]"}, "val3", false, EmptyString); err != ErrWrongPath {
+ if err := acc.Set([]string{Balances, "bal1", Opts + "bal7]"}, "val3", false); err != ErrWrongPath {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", Opts + "bal7]", ""}, "val3", false, EmptyString); err != ErrWrongPath {
+ if err := acc.Set([]string{Balances, "bal1", Opts + "bal7]", ""}, "val3", false); err != ErrWrongPath {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", Opts + "[bal7]"}, "val3", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Balances, "bal1", Opts + "[bal7]"}, "val3", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", Opts + "[bal8]", "bal9"}, "val3", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Balances, "bal1", Opts + "[bal8]", "bal9"}, "val3", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", Opts, "bal10"}, "val3", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Balances, "bal1", Opts, "bal10"}, "val3", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", FilterIDs}, "*string:~*req.Account:1001", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Balances, "bal1", FilterIDs}, "*string:~*req.Account:1001", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", AttributeIDs}, "Attr1;Attr2", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Balances, "bal1", AttributeIDs}, "Attr1;Attr2", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", RateProfileIDs}, "Attr1;Attr2", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Balances, "bal1", RateProfileIDs}, "Attr1;Attr2", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", Units}, "10", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Balances, "bal1", Units}, "10", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", Weights}, ";10", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Balances, "bal1", Weights}, ";10", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", Blockers}, ";false", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Balances, "bal1", Blockers}, ";false", false); err != nil {
t.Error(err)
}
expErr = `invalid key: <1> for BalanceUnitFactors`
- if err := acc.Set([]string{Balances, "bal1", UnitFactors}, "1", false, EmptyString); err == nil || err.Error() != expErr {
+ if err := acc.Set([]string{Balances, "bal1", UnitFactors}, "1", false); err == nil || err.Error() != expErr {
t.Error(err)
}
expErr = `can't convert to decimal`
- if err := acc.Set([]string{Balances, "bal1", UnitFactors}, "a;a", false, EmptyString); err == nil || err.Error() != expErr {
+ if err := acc.Set([]string{Balances, "bal1", UnitFactors}, "a;a", false); err == nil || err.Error() != expErr {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", UnitFactors}, "fltr1;10", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Balances, "bal1", UnitFactors}, "fltr1;10", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", UnitFactors, "Wrong"}, "fltr1;10", false, EmptyString); err != ErrWrongPath {
+ if err := acc.Set([]string{Balances, "bal1", UnitFactors, "Wrong"}, "fltr1;10", false); err != ErrWrongPath {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", UnitFactors, Factor}, "101", true, EmptyString); err != nil {
+ if err := acc.Set([]string{Balances, "bal1", UnitFactors, Factor}, "101", true); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", UnitFactors, FilterIDs}, "fltr1", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Balances, "bal1", UnitFactors, FilterIDs}, "fltr1", false); err != nil {
t.Error(err)
}
expErr = `invalid key: <1> for BalanceCostIncrements`
- if err := acc.Set([]string{Balances, "bal1", CostIncrements}, "1", false, EmptyString); err == nil || err.Error() != expErr {
+ if err := acc.Set([]string{Balances, "bal1", CostIncrements}, "1", false); err == nil || err.Error() != expErr {
t.Error(err)
}
expErr = `can't convert to decimal`
- if err := acc.Set([]string{Balances, "bal1", CostIncrements}, "fltr1;10;a;10", false, EmptyString); err == nil || err.Error() != expErr {
+ if err := acc.Set([]string{Balances, "bal1", CostIncrements}, "fltr1;10;a;10", false); err == nil || err.Error() != expErr {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", CostIncrements}, "fltr1;a;10;10", false, EmptyString); err == nil || err.Error() != expErr {
+ if err := acc.Set([]string{Balances, "bal1", CostIncrements}, "fltr1;a;10;10", false); err == nil || err.Error() != expErr {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", CostIncrements}, "fltr1;10;10;a", false, EmptyString); err == nil || err.Error() != expErr {
+ if err := acc.Set([]string{Balances, "bal1", CostIncrements}, "fltr1;10;10;a", false); err == nil || err.Error() != expErr {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", CostIncrements}, "fltr1;10;10;10", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Balances, "bal1", CostIncrements}, "fltr1;10;10;10", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", CostIncrements, FixedFee}, "101", true, EmptyString); err != nil {
+ if err := acc.Set([]string{Balances, "bal1", CostIncrements, FixedFee}, "101", true); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", CostIncrements, RecurrentFee}, "101", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Balances, "bal1", CostIncrements, RecurrentFee}, "101", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", CostIncrements, Increment}, "101", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Balances, "bal1", CostIncrements, Increment}, "101", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", CostIncrements, FilterIDs}, "fltr1", false, EmptyString); err != nil {
+ if err := acc.Set([]string{Balances, "bal1", CostIncrements, FilterIDs}, "fltr1", false); err != nil {
t.Error(err)
}
- if err := acc.Set([]string{Balances, "bal1", CostIncrements, "Wrong"}, "fltr1", false, EmptyString); err != ErrWrongPath {
+ if err := acc.Set([]string{Balances, "bal1", CostIncrements, "Wrong"}, "fltr1", false); err != ErrWrongPath {
t.Error(err)
}
diff --git a/utils/consts.go b/utils/consts.go
index e418ad311..71691f0a0 100644
--- a/utils/consts.go
+++ b/utils/consts.go
@@ -150,6 +150,7 @@ const (
CSVSep = ','
FallbackSep = ';'
InfieldSep = ";"
+ RSRSep = ";"
MetaPipe = "*|"
FieldsSep = ","
InInFieldSep = ":"
@@ -1867,7 +1868,6 @@ const (
LockingTimeoutCfg = "locking_timeout"
DigestSeparatorCfg = "digest_separator"
DigestEqualCfg = "digest_equal"
- RSRSepCfg = "rsr_separator"
MaxParallelConnsCfg = "max_parallel_conns"
EEsConnsCfg = "ees_conns"
DecimalMaxScaleCfg = "decimal_max_scale"
diff --git a/utils/librates.go b/utils/librates.go
index fd7eb9f52..a53315f48 100644
--- a/utils/librates.go
+++ b/utils/librates.go
@@ -669,7 +669,7 @@ type RemoveRPrfRates struct {
APIOpts map[string]any
}
-func (rp *RateProfile) Set(path []string, val any, newBranch bool, _ string) (err error) {
+func (rp *RateProfile) Set(path []string, val any, newBranch bool) (err error) {
if len(path) == 0 {
return ErrWrongPath
}
diff --git a/utils/librates_test.go b/utils/librates_test.go
index de7fd4b07..3a51ff3a9 100644
--- a/utils/librates_test.go
+++ b/utils/librates_test.go
@@ -1802,81 +1802,81 @@ func TestRateProfile(t *testing.T) {
},
},
}
- if err := rp.Set([]string{}, "", false, EmptyString); err != ErrWrongPath {
+ if err := rp.Set([]string{}, "", false); err != ErrWrongPath {
t.Error(err)
}
- if err := rp.Set([]string{"NotAField"}, "", false, EmptyString); err != ErrWrongPath {
+ if err := rp.Set([]string{"NotAField"}, "", false); err != ErrWrongPath {
t.Error(err)
}
- if err := rp.Set([]string{"NotAField", "1"}, "", false, EmptyString); err != ErrWrongPath {
+ if err := rp.Set([]string{"NotAField", "1"}, "", false); err != ErrWrongPath {
t.Error(err)
}
- if err := rp.Set([]string{Tenant}, "cgrates.org", false, EmptyString); err != nil {
+ if err := rp.Set([]string{Tenant}, "cgrates.org", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{ID}, ID, false, EmptyString); err != nil {
+ if err := rp.Set([]string{ID}, ID, false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{FilterIDs}, "fltr1;*string:~*req.Account:1001", false, EmptyString); err != nil {
+ if err := rp.Set([]string{FilterIDs}, "fltr1;*string:~*req.Account:1001", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{Weights}, ";10", false, EmptyString); err != nil {
+ if err := rp.Set([]string{Weights}, ";10", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{MinCost}, "10", false, EmptyString); err != nil {
+ if err := rp.Set([]string{MinCost}, "10", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{MaxCost}, "10", false, EmptyString); err != nil {
+ if err := rp.Set([]string{MaxCost}, "10", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{MaxCostStrategy}, "strategy", false, EmptyString); err != nil {
+ if err := rp.Set([]string{MaxCostStrategy}, "strategy", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{Rates + "[rat1]", ID}, "rat1", false, EmptyString); err != nil {
+ if err := rp.Set([]string{Rates + "[rat1]", ID}, "rat1", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{Rates, "rat1", FilterIDs}, "fltr1", false, EmptyString); err != nil {
+ if err := rp.Set([]string{Rates, "rat1", FilterIDs}, "fltr1", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{Rates, "rat1", Weights}, ";20", false, EmptyString); err != nil {
+ if err := rp.Set([]string{Rates, "rat1", Weights}, ";20", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{Rates, "rat1", ActivationTimes}, "* * * * *", false, EmptyString); err != nil {
+ if err := rp.Set([]string{Rates, "rat1", ActivationTimes}, "* * * * *", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{Rates, "rat1", Blocker}, "true", false, EmptyString); err != nil {
+ if err := rp.Set([]string{Rates, "rat1", Blocker}, "true", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{Rates, "rat1", "Wrong"}, "true", false, EmptyString); err != ErrWrongPath {
+ if err := rp.Set([]string{Rates, "rat1", "Wrong"}, "true", false); err != ErrWrongPath {
t.Error(err)
}
- if err := rp.Set([]string{Rates, "rat1", "Wrong", "Path"}, "true", false, EmptyString); err != ErrWrongPath {
+ if err := rp.Set([]string{Rates, "rat1", "Wrong", "Path"}, "true", false); err != ErrWrongPath {
t.Error(err)
}
- if err := rp.Set([]string{Rates, "rat1", "Wrong", "Path", "2"}, "true", false, EmptyString); err != ErrWrongPath {
+ if err := rp.Set([]string{Rates, "rat1", "Wrong", "Path", "2"}, "true", false); err != ErrWrongPath {
t.Error(err)
}
- if err := rp.Set([]string{Rates, "rat1", IntervalRates, "Wrong"}, "true", false, EmptyString); err != ErrWrongPath {
+ if err := rp.Set([]string{Rates, "rat1", IntervalRates, "Wrong"}, "true", false); err != ErrWrongPath {
t.Error(err)
}
- if err := rp.Set([]string{Rates, "rat1", IntervalRates, IntervalStart}, "10", false, EmptyString); err != nil {
+ if err := rp.Set([]string{Rates, "rat1", IntervalRates, IntervalStart}, "10", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{Rates, "rat1", IntervalRates, FixedFee}, "10", false, EmptyString); err != nil {
+ if err := rp.Set([]string{Rates, "rat1", IntervalRates, FixedFee}, "10", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{Rates, "rat1", IntervalRates, RecurrentFee}, "10", false, EmptyString); err != nil {
+ if err := rp.Set([]string{Rates, "rat1", IntervalRates, RecurrentFee}, "10", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{Rates, "rat1", IntervalRates, Unit}, "10", false, EmptyString); err != nil {
+ if err := rp.Set([]string{Rates, "rat1", IntervalRates, Unit}, "10", false); err != nil {
t.Error(err)
}
- if err := rp.Set([]string{Rates, "rat1", IntervalRates, Increment}, "10", false, EmptyString); err != nil {
+ if err := rp.Set([]string{Rates, "rat1", IntervalRates, Increment}, "10", false); err != nil {
t.Error(err)
}