mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-17 14:19:54 +05:00
Added test for checkSanity
This commit is contained in:
@@ -304,7 +304,7 @@ func (cfg *CGRConfig) checkConfigSanity() error {
|
||||
if !cfg.statsCfg.Enabled {
|
||||
for _, connCfg := range cfg.ralsCfg.StatSConns {
|
||||
if connCfg.Address == utils.MetaInternal {
|
||||
return fmt.Errorf("%s not enabled but requested by %s component.",
|
||||
return fmt.Errorf("<%s> not enabled but requested by <%s> component.",
|
||||
utils.StatS, utils.RALService)
|
||||
}
|
||||
}
|
||||
@@ -312,7 +312,7 @@ func (cfg *CGRConfig) checkConfigSanity() error {
|
||||
if !cfg.thresholdSCfg.Enabled {
|
||||
for _, connCfg := range cfg.ralsCfg.ThresholdSConns {
|
||||
if connCfg.Address == utils.MetaInternal {
|
||||
return fmt.Errorf("%s not enabled but requested by %s component.",
|
||||
return fmt.Errorf("<%s> not enabled but requested by <%s> component.",
|
||||
utils.ThresholdS, utils.RALService)
|
||||
}
|
||||
}
|
||||
@@ -323,40 +323,40 @@ func (cfg *CGRConfig) checkConfigSanity() error {
|
||||
if !cfg.chargerSCfg.Enabled {
|
||||
for _, conn := range cfg.cdrsCfg.ChargerSConns {
|
||||
if conn.Address == utils.MetaInternal {
|
||||
return errors.New("ChargerS not enabled but requested by CDRS component.")
|
||||
return fmt.Errorf("<%s> not enabled but requested by <%s> component.", utils.Chargers, utils.CDRs)
|
||||
}
|
||||
}
|
||||
}
|
||||
if !cfg.ralsCfg.Enabled {
|
||||
for _, cdrsRaterConn := range cfg.cdrsCfg.RaterConns {
|
||||
if cdrsRaterConn.Address == utils.MetaInternal {
|
||||
return errors.New("RALs not enabled but requested by CDRS component.")
|
||||
return fmt.Errorf("<%s> not enabled but requested by <%s> component.", utils.RALService, utils.CDRs)
|
||||
}
|
||||
}
|
||||
}
|
||||
if !cfg.attributeSCfg.Enabled {
|
||||
for _, connCfg := range cfg.cdrsCfg.AttributeSConns {
|
||||
if connCfg.Address == utils.MetaInternal {
|
||||
return errors.New("AttributeS not enabled but requested by CDRS component.")
|
||||
return fmt.Errorf("<%s> not enabled but requested by <%s> component.", utils.AttributeS, utils.CDRs)
|
||||
}
|
||||
}
|
||||
}
|
||||
if !cfg.statsCfg.Enabled {
|
||||
for _, connCfg := range cfg.cdrsCfg.StatSConns {
|
||||
if connCfg.Address == utils.MetaInternal {
|
||||
return errors.New("StatS not enabled but requested by CDRS component.")
|
||||
return fmt.Errorf("<%s> not enabled but requested by <%s> component.", utils.StatService, utils.CDRs)
|
||||
}
|
||||
}
|
||||
}
|
||||
for _, cdrePrfl := range cfg.cdrsCfg.OnlineCDRExports {
|
||||
if _, hasIt := cfg.CdreProfiles[cdrePrfl]; !hasIt {
|
||||
return fmt.Errorf("<CDRS> Cannot find CDR export template with ID: <%s>", cdrePrfl)
|
||||
return fmt.Errorf("<%s> Cannot find CDR export template with ID: <%s>", utils.CDRs, cdrePrfl)
|
||||
}
|
||||
}
|
||||
if !cfg.thresholdSCfg.Enabled {
|
||||
for _, connCfg := range cfg.cdrsCfg.ThresholdSConns {
|
||||
if connCfg.Address == utils.MetaInternal {
|
||||
return errors.New("ThresholdS not enabled but requested by CDRS component.")
|
||||
return fmt.Errorf("%s not enabled but requested by %s component.", utils.ThresholdS, utils.CDRs)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -368,24 +368,24 @@ func (cfg *CGRConfig) checkConfigSanity() error {
|
||||
continue
|
||||
}
|
||||
if len(cdrcInst.CdrsConns) == 0 {
|
||||
return fmt.Errorf("<CDRC> Instance: %s, CdrC enabled but no CDRS defined!", cdrcInst.ID)
|
||||
return fmt.Errorf("<%s> Instance: %s, %s enabled but no %s defined!", utils.CDRC, cdrcInst.ID, utils.CDRC, utils.CDRs)
|
||||
}
|
||||
if !cfg.cdrsCfg.Enabled && !cfg.dispatcherSCfg.Enabled {
|
||||
for _, conn := range cdrcInst.CdrsConns {
|
||||
if conn.Address == utils.MetaInternal {
|
||||
return errors.New("CDRS not enabled but referenced from CDRC")
|
||||
return fmt.Errorf("<%s> not enabled but referenced from <%s>", utils.CDRs, utils.CDRC)
|
||||
}
|
||||
}
|
||||
}
|
||||
if len(cdrcInst.ContentFields) == 0 {
|
||||
return errors.New("CdrC enabled but no fields to be processed defined!")
|
||||
return fmt.Errorf("<%s> enabled but no fields to be processed defined!", utils.CDRC)
|
||||
}
|
||||
if cdrcInst.CdrFormat == utils.MetaFileCSV {
|
||||
for _, cdrFld := range cdrcInst.ContentFields {
|
||||
for _, rsrFld := range cdrFld.Value {
|
||||
if rsrFld.attrName != "" {
|
||||
if _, errConv := strconv.Atoi(rsrFld.attrName); errConv != nil {
|
||||
return fmt.Errorf("CDR fields must be indices in case of .csv files, have instead: %s", rsrFld.attrName)
|
||||
return fmt.Errorf("<%s> fields must be indices in case of .csv files, have instead: %s", utils.CDR, rsrFld.attrName)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1910,3 +1910,170 @@ func TestCgrCfgEventReaderDefault(t *testing.T) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestCheckConfigSanity(t *testing.T) {
|
||||
// Rater checks
|
||||
cfg, _ := NewDefaultCGRConfig()
|
||||
cfg.ralsCfg = &RalsCfg{
|
||||
Enabled: true,
|
||||
StatSConns: []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
},
|
||||
}
|
||||
expected := "<Stats> not enabled but requested by <RALs> component."
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.statsCfg.Enabled = true
|
||||
cfg.ralsCfg.ThresholdSConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected = "<ThresholdS> not enabled but requested by <RALs> component."
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.ralsCfg = &RalsCfg{
|
||||
Enabled: false,
|
||||
StatSConns: []*RemoteHost{},
|
||||
ThresholdSConns: []*RemoteHost{},
|
||||
}
|
||||
// CDRServer checks
|
||||
cfg.thresholdSCfg.Enabled = true
|
||||
cfg.cdrsCfg = &CdrsCfg{
|
||||
Enabled: true,
|
||||
ChargerSConns: []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
},
|
||||
}
|
||||
expected = "<Chargers> not enabled but requested by <CDRs> component."
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.chargerSCfg.Enabled = true
|
||||
cfg.cdrsCfg.RaterConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected = "<RALs> not enabled but requested by <CDRs> component."
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.ralsCfg.Enabled = true
|
||||
cfg.cdrsCfg.AttributeSConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected = "<AttributeS> not enabled but requested by <CDRs> component."
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.statsCfg.Enabled = false
|
||||
cfg.attributeSCfg.Enabled = true
|
||||
cfg.cdrsCfg.StatSConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected = "<StatS> not enabled but requested by <CDRs> component."
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.statsCfg.Enabled = true
|
||||
cfg.cdrsCfg.OnlineCDRExports = []string{"stringy"}
|
||||
cfg.CdreProfiles = map[string]*CdreCfg{"stringx": &CdreCfg{}}
|
||||
expected = "<CDRs> Cannot find CDR export template with ID: <stringy>"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.thresholdSCfg.Enabled = false
|
||||
cfg.cdrsCfg.OnlineCDRExports = []string{"stringx"}
|
||||
cfg.cdrsCfg.ThresholdSConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected = "ThresholdS not enabled but requested by CDRs component."
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
// CDRC sanity checks
|
||||
cfg, _ = NewDefaultCGRConfig()
|
||||
cfg.CdrcProfiles = map[string][]*CdrcCfg{
|
||||
"test": []*CdrcCfg{
|
||||
&CdrcCfg{
|
||||
Enabled: true,
|
||||
},
|
||||
},
|
||||
}
|
||||
expected = "<cdrc> Instance: , cdrc enabled but no CDRs defined!"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.dispatcherSCfg.Enabled = false
|
||||
cfg.CdrcProfiles = map[string][]*CdrcCfg{
|
||||
"test": []*CdrcCfg{
|
||||
&CdrcCfg{
|
||||
Enabled: true,
|
||||
CdrsConns: []*RemoteHost{
|
||||
&RemoteHost{Address: utils.MetaInternal},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
expected = "<CDRs> not enabled but referenced from <cdrc>"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
cfg.CdrcProfiles = map[string][]*CdrcCfg{
|
||||
"test": []*CdrcCfg{
|
||||
&CdrcCfg{
|
||||
Enabled: true,
|
||||
CdrsConns: []*RemoteHost{
|
||||
&RemoteHost{Address: utils.MetaInternal},
|
||||
},
|
||||
ContentFields: []*FCTemplate{},
|
||||
},
|
||||
},
|
||||
}
|
||||
cfg.cdrsCfg = &CdrsCfg{
|
||||
Enabled: true,
|
||||
}
|
||||
|
||||
expected = "<cdrc> enabled but no fields to be processed defined!"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.CdrcProfiles = map[string][]*CdrcCfg{
|
||||
"test": []*CdrcCfg{
|
||||
&CdrcCfg{
|
||||
Enabled: true,
|
||||
CdrsConns: []*RemoteHost{
|
||||
&RemoteHost{Address: utils.MetaInternal},
|
||||
},
|
||||
CdrFormat: utils.MetaFileCSV,
|
||||
ContentFields: []*FCTemplate{
|
||||
&FCTemplate{
|
||||
Value: RSRParsers{
|
||||
&RSRParser{
|
||||
attrName: "test1",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
expected = "<CDR> fields must be indices in case of .csv files, have instead: test1"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user