mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-12 18:46:24 +05:00
Fix the process of merging loaders with same ids
This commit is contained in:
committed by
Dan Christian Bogos
parent
655cd2a70a
commit
2f4d5083ec
@@ -609,11 +609,23 @@ func (cfg *CGRConfig) loadLoaderSCfg(jsnCfg ConfigDB) (err error) {
|
||||
}
|
||||
// cfg.loaderCfg = make(LoaderSCfgs, len(jsnLoaderCfg))
|
||||
for _, profile := range jsnLoaderCfg {
|
||||
loadSCfgp := NewDfltLoaderSCfg()
|
||||
if err = loadSCfgp.loadFromJSONCfg(profile, cfg.templates, cfg.generalCfg.RSRSep); err != nil {
|
||||
var ldr *LoaderSCfg
|
||||
if profile.ID != nil {
|
||||
for _, loader := range cfg.LoaderCfg() {
|
||||
if loader.ID == *profile.ID {
|
||||
ldr = loader
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
if ldr == nil {
|
||||
ldr = NewDfltLoaderSCfg()
|
||||
cfg.loaderCfg = append(cfg.loaderCfg, 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 {
|
||||
return
|
||||
}
|
||||
cfg.loaderCfg = append(cfg.loaderCfg, loadSCfgp) // use append so the loaderS profile to be loaded from multiple files
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -315,22 +315,22 @@ func TestLoaderCfgAsMapInterfaceCase1(t *testing.T) {
|
||||
t.Error(err)
|
||||
} else {
|
||||
rcv := cfgCgr.loaderCfg.AsMapInterface(cfgCgr.generalCfg.RSRSep)
|
||||
if len(cfgCgr.loaderCfg) != 2 {
|
||||
t.Errorf("expected: <%+v>, \nreceived: <%+v>", 2, len(cfgCgr.loaderCfg))
|
||||
if len(cfgCgr.loaderCfg) != 1 {
|
||||
t.Errorf("expected: <%+v>, \nreceived: <%+v>", 1, len(cfgCgr.loaderCfg))
|
||||
} else if !reflect.DeepEqual(eMap[0][utils.DataCfg].([]map[string]interface{})[0][utils.FieldsCfg].([]map[string]interface{})[0],
|
||||
rcv[1][utils.DataCfg].([]map[string]interface{})[0][utils.FieldsCfg].([]map[string]interface{})[0]) {
|
||||
rcv[0][utils.DataCfg].([]map[string]interface{})[0][utils.FieldsCfg].([]map[string]interface{})[0]) {
|
||||
t.Errorf("Expected %+v,\n received %+v", utils.ToJSON(eMap[0][utils.DataCfg].([]map[string]interface{})[0][utils.FieldsCfg].([]map[string]interface{})[0]),
|
||||
utils.ToJSON(rcv[1][utils.DataCfg].([]map[string]interface{})[0][utils.FieldsCfg].([]map[string]interface{})[0]))
|
||||
} else if !reflect.DeepEqual(eMap[0][utils.DataCfg].([]map[string]interface{})[0][utils.FieldsCfg].([]map[string]interface{})[1],
|
||||
rcv[1][utils.DataCfg].([]map[string]interface{})[0][utils.FieldsCfg].([]map[string]interface{})[1]) {
|
||||
t.Errorf("Expected %+v,\n received %+v", utils.ToJSON(eMap[0][utils.DataCfg].([]map[string]interface{})[0][utils.FieldsCfg].([]map[string]interface{})[1]),
|
||||
utils.ToJSON(rcv[1][utils.DataCfg].([]map[string]interface{})[0][utils.FieldsCfg].([]map[string]interface{})[1]))
|
||||
} else if !reflect.DeepEqual(eMap[0][utils.CachesConnsCfg], rcv[1][utils.CachesConnsCfg]) {
|
||||
t.Errorf("Expected %+v, received %+v", eMap[0][utils.CachesConnsCfg], rcv[1][utils.CachesConnsCfg])
|
||||
} else if !reflect.DeepEqual(eMap[0][utils.TpInDirCfg], rcv[1][utils.TpInDirCfg]) {
|
||||
t.Errorf("Expected %+v, received %+v", eMap[0][utils.TpInDirCfg], rcv[1][utils.TpInDirCfg])
|
||||
} else if !reflect.DeepEqual(eMap[0][utils.LockFileNameCfg], rcv[1][utils.LockFileNameCfg]) {
|
||||
t.Errorf("Expected %+v, received %+v", eMap[0][utils.LockFileNameCfg], rcv[1][utils.LockFileNameCfg])
|
||||
utils.ToJSON(rcv[0][utils.DataCfg].([]map[string]interface{})[0][utils.FieldsCfg].([]map[string]interface{})[0]))
|
||||
} else if !reflect.DeepEqual(eMap[0][utils.DataCfg].([]map[string]interface{})[0][utils.FieldsCfg].([]map[string]interface{})[0],
|
||||
rcv[0][utils.DataCfg].([]map[string]interface{})[0][utils.FieldsCfg].([]map[string]interface{})[0]) {
|
||||
t.Errorf("Expected %+v,\n received %+v", utils.ToJSON(eMap[0][utils.DataCfg].([]map[string]interface{})[0][utils.FieldsCfg].([]map[string]interface{})[0]),
|
||||
utils.ToJSON(rcv[0][utils.DataCfg].([]map[string]interface{})[0][utils.FieldsCfg].([]map[string]interface{})[0]))
|
||||
} else if !reflect.DeepEqual(eMap[0][utils.CachesConnsCfg], rcv[0][utils.CachesConnsCfg]) {
|
||||
t.Errorf("Expected %+v, received %+v", eMap[0][utils.CachesConnsCfg], rcv[0][utils.CachesConnsCfg])
|
||||
} else if !reflect.DeepEqual(eMap[0][utils.TpInDirCfg], rcv[0][utils.TpInDirCfg]) {
|
||||
t.Errorf("Expected %+v, received %+v", eMap[0][utils.TpInDirCfg], rcv[0][utils.TpInDirCfg])
|
||||
} else if !reflect.DeepEqual(eMap[0][utils.LockFileNameCfg], rcv[0][utils.LockFileNameCfg]) {
|
||||
t.Errorf("Expected %+v, received %+v", eMap[0][utils.LockFileNameCfg], rcv[0][utils.LockFileNameCfg])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user