Reverted RoundingDecimals

This commit is contained in:
adragusin
2020-04-03 15:15:31 +03:00
committed by Dan Christian Bogos
parent ac822e117f
commit 6629dc6bee
23 changed files with 503 additions and 678 deletions

View File

@@ -31,7 +31,7 @@ type CdreCfg struct {
Fields []*FCTemplate
}
func (self *CdreCfg) loadFromJsonCfg(jsnCfg *CdreJsonCfg, separator string, rounding int) (err error) {
func (self *CdreCfg) loadFromJsonCfg(jsnCfg *CdreJsonCfg, separator string) (err error) {
if jsnCfg == nil {
return nil
}
@@ -64,7 +64,7 @@ func (self *CdreCfg) loadFromJsonCfg(jsnCfg *CdreJsonCfg, separator string, roun
self.FieldSeparator = rune(sepStr[0])
}
if jsnCfg.Fields != nil {
if self.Fields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Fields, separator, rounding); err != nil {
if self.Fields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Fields, separator); err != nil {
return err
}
}

View File

@@ -81,12 +81,12 @@ func TestCdreCfgClone(t *testing.T) {
func TestCdreCfgloadFromJsonCfg(t *testing.T) {
var lstcfg, expected CdreCfg
if err := lstcfg.loadFromJsonCfg(nil, utils.INFIELD_SEP, 0); err != nil {
if err := lstcfg.loadFromJsonCfg(nil, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(lstcfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, lstcfg)
}
if err := lstcfg.loadFromJsonCfg(new(CdreJsonCfg), utils.INFIELD_SEP, 0); err != nil {
if err := lstcfg.loadFromJsonCfg(new(CdreJsonCfg), utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(lstcfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, lstcfg)
@@ -129,7 +129,7 @@ func TestCdreCfgloadFromJsonCfg(t *testing.T) {
t.Error(err)
} else if jsnCdreCfg, err := jsnCfg.CdreJsonCfgs(); err != nil {
t.Error(err)
} else if err = lstcfg.loadFromJsonCfg(jsnCdreCfg[utils.MetaDefault], utils.INFIELD_SEP, 0); err != nil {
} else if err = lstcfg.loadFromJsonCfg(jsnCdreCfg[utils.MetaDefault], utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, lstcfg) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(lstcfg))

View File

@@ -523,7 +523,7 @@ func (cfg *CGRConfig) loadCdreCfg(jsnCfg *CgrJsonCfg) (err error) {
cfg.CdreProfiles[profileName] = cfg.dfltCdreProfile.Clone() // Clone default so we do not inherit pointers
}
}
if err = cfg.CdreProfiles[profileName].loadFromJsonCfg(jsnCdre1Cfg, cfg.generalCfg.RSRSep, cfg.generalCfg.RoundingDecimals); err != nil { // Update the existing profile with content from json config
if err = cfg.CdreProfiles[profileName].loadFromJsonCfg(jsnCdre1Cfg, cfg.generalCfg.RSRSep); err != nil { // Update the existing profile with content from json config
return
}
}
@@ -573,7 +573,7 @@ func (cfg *CGRConfig) loadDiameterAgentCfg(jsnCfg *CgrJsonCfg) (err error) {
if jsnDACfg, err = jsnCfg.DiameterAgentJsonCfg(); err != nil {
return
}
return cfg.diameterAgentCfg.loadFromJsonCfg(jsnDACfg, cfg.generalCfg.RSRSep, cfg.generalCfg.RoundingDecimals)
return cfg.diameterAgentCfg.loadFromJsonCfg(jsnDACfg, cfg.generalCfg.RSRSep)
}
// loadRadiusAgentCfg loads the RadiusAgent section of the configuration
@@ -582,7 +582,7 @@ func (cfg *CGRConfig) loadRadiusAgentCfg(jsnCfg *CgrJsonCfg) (err error) {
if jsnRACfg, err = jsnCfg.RadiusAgentJsonCfg(); err != nil {
return
}
return cfg.radiusAgentCfg.loadFromJsonCfg(jsnRACfg, cfg.generalCfg.RSRSep, cfg.generalCfg.RoundingDecimals)
return cfg.radiusAgentCfg.loadFromJsonCfg(jsnRACfg, cfg.generalCfg.RSRSep)
}
// loadDNSAgentCfg loads the DNSAgent section of the configuration
@@ -591,7 +591,7 @@ func (cfg *CGRConfig) loadDNSAgentCfg(jsnCfg *CgrJsonCfg) (err error) {
if jsnDNSCfg, err = jsnCfg.DNSAgentJsonCfg(); err != nil {
return
}
return cfg.dnsAgentCfg.loadFromJsonCfg(jsnDNSCfg, cfg.generalCfg.RSRSep, cfg.generalCfg.RoundingDecimals)
return cfg.dnsAgentCfg.loadFromJsonCfg(jsnDNSCfg, cfg.generalCfg.RSRSep)
}
// loadHttpAgentCfg loads the HttpAgent section of the configuration
@@ -600,7 +600,7 @@ func (cfg *CGRConfig) loadHttpAgentCfg(jsnCfg *CgrJsonCfg) (err error) {
if jsnHttpAgntCfg, err = jsnCfg.HttpAgentJsonCfg(); err != nil {
return
}
return cfg.httpAgentCfg.loadFromJsonCfg(jsnHttpAgntCfg, cfg.generalCfg.RSRSep, cfg.generalCfg.RoundingDecimals)
return cfg.httpAgentCfg.loadFromJsonCfg(jsnHttpAgntCfg, cfg.generalCfg.RSRSep)
}
// loadAttributeSCfg loads the AttributeS section of the configuration
@@ -667,7 +667,7 @@ func (cfg *CGRConfig) loadLoaderSCfg(jsnCfg *CgrJsonCfg) (err error) {
// cfg.loaderCfg = make(LoaderSCfgs, len(jsnLoaderCfg))
for _, profile := range jsnLoaderCfg {
loadSCfgp := NewDfltLoaderSCfg()
loadSCfgp.loadFromJsonCfg(profile, cfg.generalCfg.RSRSep, cfg.generalCfg.RoundingDecimals)
loadSCfgp.loadFromJsonCfg(profile, cfg.generalCfg.RSRSep)
cfg.loaderCfg = append(cfg.loaderCfg, loadSCfgp) // use apend so the loaderS profile to be loaded from multiple files
}
}
@@ -752,7 +752,7 @@ func (cfg *CGRConfig) loadErsCfg(jsnCfg *CgrJsonCfg) (err error) {
if jsnERsCfg, err = jsnCfg.ERsJsonCfg(); err != nil {
return
}
return cfg.ersCfg.loadFromJsonCfg(jsnERsCfg, cfg.generalCfg.RSRSep, cfg.dfltEvRdr, cfg.generalCfg.RoundingDecimals)
return cfg.ersCfg.loadFromJsonCfg(jsnERsCfg, cfg.generalCfg.RSRSep, cfg.dfltEvRdr)
}
// SureTaxCfg use locking to retrieve the configuration, possibility later for runtime reload

View File

@@ -306,7 +306,7 @@ const CGRATES_CFG_JSON = `
"type": "*file_csv", // reader type <*file_csv>
"row_length" : 0, // Number of fields from csv file
"field_separator": ",", // separator used in case of csv files
"run_delay": "0", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together
"run_delay": "0", // sleep interval in seconds between consecutive runs, -1 to use automation via inotify or 0 to disable running all together
"concurrent_requests": 1024, // maximum simultaneous requests/files to process, 0 for unlimited
"source_path": "/var/spool/cgrates/cdrc/in", // read data from this path
"processed_path": "/var/spool/cgrates/cdrc/out", // move processed data here

View File

@@ -430,17 +430,17 @@ func testCGRConfigReloadERs(t *testing.T) {
flags, _ := utils.FlagsWithParamsFromSlice([]string{"*dryrun"})
flagsDefault, _ := utils.FlagsWithParamsFromSlice([]string{})
content := []*FCTemplate{
&FCTemplate{Tag: utils.ToR, Path: utils.MetaCgreq + utils.NestingSep + utils.ToR, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
&FCTemplate{Tag: utils.OriginID, Path: utils.MetaCgreq + utils.NestingSep + utils.OriginID, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
&FCTemplate{Tag: utils.RequestType, Path: utils.MetaCgreq + utils.NestingSep + utils.RequestType, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
&FCTemplate{Tag: utils.Tenant, Path: utils.MetaCgreq + utils.NestingSep + utils.Tenant, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
&FCTemplate{Tag: utils.Category, Path: utils.MetaCgreq + utils.NestingSep + utils.Category, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
&FCTemplate{Tag: utils.Account, Path: utils.MetaCgreq + utils.NestingSep + utils.Account, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
&FCTemplate{Tag: utils.Subject, Path: utils.MetaCgreq + utils.NestingSep + utils.Subject, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
&FCTemplate{Tag: utils.Destination, Path: utils.MetaCgreq + utils.NestingSep + utils.Destination, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
&FCTemplate{Tag: utils.SetupTime, Path: utils.MetaCgreq + utils.NestingSep + utils.SetupTime, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
&FCTemplate{Tag: utils.AnswerTime, Path: utils.MetaCgreq + utils.NestingSep + utils.AnswerTime, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
&FCTemplate{Tag: utils.Usage, Path: utils.MetaCgreq + utils.NestingSep + utils.Usage, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
&FCTemplate{Tag: utils.ToR, Path: utils.MetaCgreq + utils.NestingSep + utils.ToR, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true},
&FCTemplate{Tag: utils.OriginID, Path: utils.MetaCgreq + utils.NestingSep + utils.OriginID, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true},
&FCTemplate{Tag: utils.RequestType, Path: utils.MetaCgreq + utils.NestingSep + utils.RequestType, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true},
&FCTemplate{Tag: utils.Tenant, Path: utils.MetaCgreq + utils.NestingSep + utils.Tenant, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true},
&FCTemplate{Tag: utils.Category, Path: utils.MetaCgreq + utils.NestingSep + utils.Category, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true},
&FCTemplate{Tag: utils.Account, Path: utils.MetaCgreq + utils.NestingSep + utils.Account, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true},
&FCTemplate{Tag: utils.Subject, Path: utils.MetaCgreq + utils.NestingSep + utils.Subject, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true},
&FCTemplate{Tag: utils.Destination, Path: utils.MetaCgreq + utils.NestingSep + utils.Destination, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true},
&FCTemplate{Tag: utils.SetupTime, Path: utils.MetaCgreq + utils.NestingSep + utils.SetupTime, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true},
&FCTemplate{Tag: utils.AnswerTime, Path: utils.MetaCgreq + utils.NestingSep + utils.AnswerTime, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true},
&FCTemplate{Tag: utils.Usage, Path: utils.MetaCgreq + utils.NestingSep + utils.Usage, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true},
}
expAttr := &ERsCfg{
Enabled: true,
@@ -566,7 +566,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) {
"MaskLen": 0,
"NewBranch": false,
"Padding": "",
"RoundingDecimals": 5,
"RoundingDecimals": 0,
"Strip": "",
"Tag": "ToR",
"Timezone": "",
@@ -591,7 +591,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) {
"MaskLen": 0,
"NewBranch": false,
"Padding": "",
"RoundingDecimals": 5,
"RoundingDecimals": 0,
"Strip": "",
"Tag": "OriginID",
"Timezone": "",
@@ -616,7 +616,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) {
"MaskLen": 0,
"NewBranch": false,
"Padding": "",
"RoundingDecimals": 5,
"RoundingDecimals": 0,
"Strip": "",
"Tag": "RequestType",
"Timezone": "",
@@ -641,7 +641,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) {
"MaskLen": 0,
"NewBranch": false,
"Padding": "",
"RoundingDecimals": 5,
"RoundingDecimals": 0,
"Strip": "",
"Tag": "Tenant",
"Timezone": "",
@@ -666,7 +666,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) {
"MaskLen": 0,
"NewBranch": false,
"Padding": "",
"RoundingDecimals": 5,
"RoundingDecimals": 0,
"Strip": "",
"Tag": "Category",
"Timezone": "",
@@ -691,7 +691,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) {
"MaskLen": 0,
"NewBranch": false,
"Padding": "",
"RoundingDecimals": 5,
"RoundingDecimals": 0,
"Strip": "",
"Tag": "Account",
"Timezone": "",
@@ -716,7 +716,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) {
"MaskLen": 0,
"NewBranch": false,
"Padding": "",
"RoundingDecimals": 5,
"RoundingDecimals": 0,
"Strip": "",
"Tag": "Subject",
"Timezone": "",
@@ -741,7 +741,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) {
"MaskLen": 0,
"NewBranch": false,
"Padding": "",
"RoundingDecimals": 5,
"RoundingDecimals": 0,
"Strip": "",
"Tag": "Destination",
"Timezone": "",
@@ -766,7 +766,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) {
"MaskLen": 0,
"NewBranch": false,
"Padding": "",
"RoundingDecimals": 5,
"RoundingDecimals": 0,
"Strip": "",
"Tag": "SetupTime",
"Timezone": "",
@@ -791,7 +791,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) {
"MaskLen": 0,
"NewBranch": false,
"Padding": "",
"RoundingDecimals": 5,
"RoundingDecimals": 0,
"Strip": "",
"Tag": "AnswerTime",
"Timezone": "",
@@ -816,7 +816,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) {
"MaskLen": 0,
"NewBranch": false,
"Padding": "",
"RoundingDecimals": 5,
"RoundingDecimals": 0,
"Strip": "",
"Tag": "Usage",
"Timezone": "",
@@ -844,7 +844,6 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) {
"FailedCallsPrefix": "",
"ID": "*default",
"ProcessedPath": "/var/spool/cgrates/cdrc/out",
"RowLength": 0,
"RunDelay": 0,
"SourcePath": "/var/spool/cgrates/cdrc/in",
"Tenant": nil,
@@ -865,7 +864,6 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) {
"PartialRecordCache": 0,
"ID": "file_reader1",
"ProcessedPath": "/tmp/ers/out",
"RowLength": 0,
"RunDelay": -1.,
"SourcePath": "/tmp/ers/in",
"Tenant": nil,

File diff suppressed because it is too large Load Diff

View File

@@ -39,7 +39,7 @@ type DiameterAgentCfg struct {
RequestProcessors []*RequestProcessor
}
func (da *DiameterAgentCfg) loadFromJsonCfg(jsnCfg *DiameterAgentJsonCfg, separator string, rounding int) (err error) {
func (da *DiameterAgentCfg) loadFromJsonCfg(jsnCfg *DiameterAgentJsonCfg, separator string) (err error) {
if jsnCfg == nil {
return nil
}
@@ -98,7 +98,7 @@ func (da *DiameterAgentCfg) loadFromJsonCfg(jsnCfg *DiameterAgentJsonCfg, separa
da.Templates = make(map[string][]*FCTemplate)
}
for k, jsnTpls := range jsnCfg.Templates {
if da.Templates[k], err = FCTemplatesFromFCTemplatesJsonCfg(jsnTpls, separator, rounding); err != nil {
if da.Templates[k], err = FCTemplatesFromFCTemplatesJsonCfg(jsnTpls, separator); err != nil {
return
}
}
@@ -114,7 +114,7 @@ func (da *DiameterAgentCfg) loadFromJsonCfg(jsnCfg *DiameterAgentJsonCfg, separa
break
}
}
if err := rp.loadFromJsonCfg(reqProcJsn, separator, rounding); err != nil {
if err := rp.loadFromJsonCfg(reqProcJsn, separator); err != nil {
return nil
}
if !haveID {

View File

@@ -26,12 +26,12 @@ import (
func TestDiameterAgentCfgloadFromJsonCfg(t *testing.T) {
var dacfg, expected DiameterAgentCfg
if err := dacfg.loadFromJsonCfg(nil, utils.INFIELD_SEP, 5); err != nil {
if err := dacfg.loadFromJsonCfg(nil, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(dacfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, dacfg)
}
if err := dacfg.loadFromJsonCfg(new(DiameterAgentJsonCfg), utils.INFIELD_SEP, 5); err != nil {
if err := dacfg.loadFromJsonCfg(new(DiameterAgentJsonCfg), utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(dacfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, dacfg)
@@ -66,7 +66,7 @@ func TestDiameterAgentCfgloadFromJsonCfg(t *testing.T) {
t.Error(err)
} else if jsnDaCfg, err := jsnCfg.DiameterAgentJsonCfg(); err != nil {
t.Error(err)
} else if err = dacfg.loadFromJsonCfg(jsnDaCfg, utils.INFIELD_SEP, 5); err != nil {
} else if err = dacfg.loadFromJsonCfg(jsnDaCfg, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, dacfg) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(dacfg))

View File

@@ -26,12 +26,12 @@ import (
func TestDNSAgentCfgloadFromJsonCfg(t *testing.T) {
var dnsCfg, expected DNSAgentCfg
if err := dnsCfg.loadFromJsonCfg(nil, utils.INFIELD_SEP, 5); err != nil {
if err := dnsCfg.loadFromJsonCfg(nil, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(dnsCfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, dnsCfg)
}
if err := dnsCfg.loadFromJsonCfg(new(DNSAgentJsonCfg), utils.INFIELD_SEP, 5); err != nil {
if err := dnsCfg.loadFromJsonCfg(new(DNSAgentJsonCfg), utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(dnsCfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, dnsCfg)
@@ -57,7 +57,7 @@ func TestDNSAgentCfgloadFromJsonCfg(t *testing.T) {
t.Error(err)
} else if jsnDaCfg, err := jsnCfg.DNSAgentJsonCfg(); err != nil {
t.Error(err)
} else if err = dnsCfg.loadFromJsonCfg(jsnDaCfg, utils.INFIELD_SEP, 5); err != nil {
} else if err = dnsCfg.loadFromJsonCfg(jsnDaCfg, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, dnsCfg) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(dnsCfg))
@@ -66,12 +66,12 @@ func TestDNSAgentCfgloadFromJsonCfg(t *testing.T) {
func TestRequestProcessorloadFromJsonCfg(t *testing.T) {
var dareq, expected RequestProcessor
if err := dareq.loadFromJsonCfg(nil, utils.INFIELD_SEP, 5); err != nil {
if err := dareq.loadFromJsonCfg(nil, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(dareq, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, dareq)
}
if err := dareq.loadFromJsonCfg(new(ReqProcessorJsnCfg), utils.INFIELD_SEP, 5); err != nil {
if err := dareq.loadFromJsonCfg(new(ReqProcessorJsnCfg), utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(dareq, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, dareq)
@@ -88,7 +88,7 @@ func TestRequestProcessorloadFromJsonCfg(t *testing.T) {
Filters: []string{"filter1", "filter2"},
Flags: utils.FlagsWithParams{"flag1": []string{}, "flag2": []string{}},
}
if err = dareq.loadFromJsonCfg(json, utils.INFIELD_SEP, 5); err != nil {
if err = dareq.loadFromJsonCfg(json, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, dareq) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(dareq))

View File

@@ -31,7 +31,7 @@ type DNSAgentCfg struct {
RequestProcessors []*RequestProcessor
}
func (da *DNSAgentCfg) loadFromJsonCfg(jsnCfg *DNSAgentJsonCfg, sep string, rounding int) (err error) {
func (da *DNSAgentCfg) loadFromJsonCfg(jsnCfg *DNSAgentJsonCfg, sep string) (err error) {
if jsnCfg == nil {
return nil
}
@@ -69,7 +69,7 @@ func (da *DNSAgentCfg) loadFromJsonCfg(jsnCfg *DNSAgentJsonCfg, sep string, roun
break
}
}
if err := rp.loadFromJsonCfg(reqProcJsn, sep, rounding); err != nil {
if err := rp.loadFromJsonCfg(reqProcJsn, sep); err != nil {
return nil
}
if !haveID {
@@ -91,7 +91,7 @@ type RequestProcessor struct {
ReplyFields []*FCTemplate
}
func (rp *RequestProcessor) loadFromJsonCfg(jsnCfg *ReqProcessorJsnCfg, sep string, rounding int) (err error) {
func (rp *RequestProcessor) loadFromJsonCfg(jsnCfg *ReqProcessorJsnCfg, sep string) (err error) {
if jsnCfg == nil {
return nil
}
@@ -118,12 +118,12 @@ func (rp *RequestProcessor) loadFromJsonCfg(jsnCfg *ReqProcessorJsnCfg, sep stri
}
}
if jsnCfg.Request_fields != nil {
if rp.RequestFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Request_fields, sep, rounding); err != nil {
if rp.RequestFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Request_fields, sep); err != nil {
return
}
}
if jsnCfg.Reply_fields != nil {
if rp.ReplyFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Reply_fields, sep, rounding); err != nil {
if rp.ReplyFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Reply_fields, sep); err != nil {
return
}
}

View File

@@ -30,7 +30,7 @@ type ERsCfg struct {
Readers []*EventReaderCfg
}
func (erS *ERsCfg) loadFromJsonCfg(jsnCfg *ERsJsonCfg, sep string, dfltRdrCfg *EventReaderCfg, rounding int) (err error) {
func (erS *ERsCfg) loadFromJsonCfg(jsnCfg *ERsJsonCfg, sep string, dfltRdrCfg *EventReaderCfg) (err error) {
if jsnCfg == nil {
return
}
@@ -48,11 +48,11 @@ func (erS *ERsCfg) loadFromJsonCfg(jsnCfg *ERsJsonCfg, sep string, dfltRdrCfg *E
}
}
}
return erS.appendERsReaders(jsnCfg.Readers, sep, dfltRdrCfg, rounding)
return erS.appendERsReaders(jsnCfg.Readers, sep, dfltRdrCfg)
}
func (ers *ERsCfg) appendERsReaders(jsnReaders *[]*EventReaderJsonCfg, sep string,
dfltRdrCfg *EventReaderCfg, rounding int) (err error) {
dfltRdrCfg *EventReaderCfg) (err error) {
if jsnReaders == nil {
return
}
@@ -72,7 +72,7 @@ func (ers *ERsCfg) appendERsReaders(jsnReaders *[]*EventReaderJsonCfg, sep strin
}
}
if err := rdr.loadFromJsonCfg(jsnReader, sep, rounding); err != nil {
if err := rdr.loadFromJsonCfg(jsnReader, sep); err != nil {
return err
}
if !haveID {
@@ -119,7 +119,7 @@ type EventReaderCfg struct {
CacheDumpFields []*FCTemplate
}
func (er *EventReaderCfg) loadFromJsonCfg(jsnCfg *EventReaderJsonCfg, sep string, rounding int) (err error) {
func (er *EventReaderCfg) loadFromJsonCfg(jsnCfg *EventReaderJsonCfg, sep string) (err error) {
if jsnCfg == nil {
return
}
@@ -183,12 +183,12 @@ func (er *EventReaderCfg) loadFromJsonCfg(jsnCfg *EventReaderJsonCfg, sep string
er.PartialCacheExpiryAction = *jsnCfg.Partial_cache_expiry_action
}
if jsnCfg.Fields != nil {
if er.Fields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Fields, sep, rounding); err != nil {
if er.Fields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Fields, sep); err != nil {
return err
}
}
if jsnCfg.Cache_dump_fields != nil {
if er.CacheDumpFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Cache_dump_fields, sep, rounding); err != nil {
if er.CacheDumpFields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Cache_dump_fields, sep); err != nil {
return err
}
}

View File

@@ -113,27 +113,27 @@ func TestEventReaderLoadFromJSON(t *testing.T) {
Flags: utils.FlagsWithParams{},
Fields: []*FCTemplate{
{Tag: utils.ToR, Path: utils.MetaCgreq + utils.NestingSep + utils.ToR, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.OriginID, Path: utils.MetaCgreq + utils.NestingSep + utils.OriginID, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.RequestType, Path: utils.MetaCgreq + utils.NestingSep + utils.RequestType, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.Tenant, Path: utils.MetaCgreq + utils.NestingSep + utils.Tenant, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.Category, Path: utils.MetaCgreq + utils.NestingSep + utils.Category, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.Account, Path: utils.MetaCgreq + utils.NestingSep + utils.Account, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.Subject, Path: utils.MetaCgreq + utils.NestingSep + utils.Subject, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.Destination, Path: utils.MetaCgreq + utils.NestingSep + utils.Destination, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.SetupTime, Path: utils.MetaCgreq + utils.NestingSep + utils.SetupTime, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.AnswerTime, Path: utils.MetaCgreq + utils.NestingSep + utils.AnswerTime, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.Usage, Path: utils.MetaCgreq + utils.NestingSep + utils.Usage, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true},
},
CacheDumpFields: make([]*FCTemplate, 0),
},
@@ -152,27 +152,27 @@ func TestEventReaderLoadFromJSON(t *testing.T) {
Flags: utils.FlagsWithParams{},
Fields: []*FCTemplate{
{Tag: utils.ToR, Path: utils.MetaCgreq + utils.NestingSep + utils.ToR, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.OriginID, Path: utils.MetaCgreq + utils.NestingSep + utils.OriginID, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.RequestType, Path: utils.MetaCgreq + utils.NestingSep + utils.RequestType, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.Tenant, Path: utils.MetaCgreq + utils.NestingSep + utils.Tenant, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.Category, Path: utils.MetaCgreq + utils.NestingSep + utils.Category, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.Account, Path: utils.MetaCgreq + utils.NestingSep + utils.Account, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.Subject, Path: utils.MetaCgreq + utils.NestingSep + utils.Subject, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.Destination, Path: utils.MetaCgreq + utils.NestingSep + utils.Destination, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.SetupTime, Path: utils.MetaCgreq + utils.NestingSep + utils.SetupTime, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.AnswerTime, Path: utils.MetaCgreq + utils.NestingSep + utils.AnswerTime, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.Usage, Path: utils.MetaCgreq + utils.NestingSep + utils.Usage, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true},
},
CacheDumpFields: make([]*FCTemplate, 0),
},
@@ -245,27 +245,27 @@ func TestEventReaderSameID(t *testing.T) {
Flags: utils.FlagsWithParams{},
Fields: []*FCTemplate{
{Tag: utils.ToR, Path: utils.MetaCgreq + utils.NestingSep + utils.ToR, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.OriginID, Path: utils.MetaCgreq + utils.NestingSep + utils.OriginID, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.RequestType, Path: utils.MetaCgreq + utils.NestingSep + utils.RequestType, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.Tenant, Path: utils.MetaCgreq + utils.NestingSep + utils.Tenant, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.Category, Path: utils.MetaCgreq + utils.NestingSep + utils.Category, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.Account, Path: utils.MetaCgreq + utils.NestingSep + utils.Account, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.Subject, Path: utils.MetaCgreq + utils.NestingSep + utils.Subject, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.Destination, Path: utils.MetaCgreq + utils.NestingSep + utils.Destination, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.SetupTime, Path: utils.MetaCgreq + utils.NestingSep + utils.SetupTime, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.AnswerTime, Path: utils.MetaCgreq + utils.NestingSep + utils.AnswerTime, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true},
{Tag: utils.Usage, Path: utils.MetaCgreq + utils.NestingSep + utils.Usage, Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true},
},
CacheDumpFields: make([]*FCTemplate, 0),
},
@@ -285,7 +285,7 @@ func TestEventReaderSameID(t *testing.T) {
Flags: utils.FlagsWithParams{},
Fields: []*FCTemplate{
{Tag: "CustomTag2", Path: "CustomPath2", Type: utils.MetaVariable,
Value: NewRSRParsersMustCompile("CustomValue2", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5},
Value: NewRSRParsersMustCompile("CustomValue2", true, utils.INFIELD_SEP), Mandatory: true},
},
CacheDumpFields: make([]*FCTemplate, 0),
},

View File

@@ -24,7 +24,7 @@ import (
"github.com/cgrates/cgrates/utils"
)
func NewFCTemplateFromFCTemplateJsonCfg(jsnCfg *FcTemplateJsonCfg, separator string, roundingDecimals int) (*FCTemplate, error) {
func NewFCTemplateFromFCTemplateJsonCfg(jsnCfg *FcTemplateJsonCfg, separator string) (*FCTemplate, error) {
fcTmp := new(FCTemplate)
var err error
if jsnCfg.Type != nil {
@@ -81,7 +81,6 @@ func NewFCTemplateFromFCTemplateJsonCfg(jsnCfg *FcTemplateJsonCfg, separator str
if jsnCfg.Cost_shift_digits != nil {
fcTmp.CostShiftDigits = *jsnCfg.Cost_shift_digits
}
fcTmp.RoundingDecimals = roundingDecimals
if jsnCfg.Rounding_decimals != nil {
fcTmp.RoundingDecimals = *jsnCfg.Rounding_decimals
}
@@ -116,11 +115,11 @@ type FCTemplate struct {
MaskLen int
}
func FCTemplatesFromFCTemplatesJsonCfg(jsnCfgFlds []*FcTemplateJsonCfg, separator string, rounding int) ([]*FCTemplate, error) {
func FCTemplatesFromFCTemplatesJsonCfg(jsnCfgFlds []*FcTemplateJsonCfg, separator string) ([]*FCTemplate, error) {
retFields := make([]*FCTemplate, len(jsnCfgFlds))
var err error
for i, jsnFld := range jsnCfgFlds {
if retFields[i], err = NewFCTemplateFromFCTemplateJsonCfg(jsnFld, separator, rounding); err != nil {
if retFields[i], err = NewFCTemplateFromFCTemplateJsonCfg(jsnFld, separator); err != nil {
return nil, err
}
}

View File

@@ -39,7 +39,7 @@ func TestNewFCTemplateFromFCTemplateJsonCfg(t *testing.T) {
Filters: []string{"Filter1", "Filter2"},
Value: NewRSRParsersMustCompile("cgrates.org", true, utils.INFIELD_SEP),
}
if rcv, err := NewFCTemplateFromFCTemplateJsonCfg(jsonCfg, utils.INFIELD_SEP, 0); err != nil {
if rcv, err := NewFCTemplateFromFCTemplateJsonCfg(jsonCfg, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rcv) {
t.Errorf("expected: %s ,received: %s", utils.ToJSON(expected), utils.ToJSON(rcv))
@@ -79,7 +79,7 @@ func TestFCTemplatesFromFCTemplatesJsonCfg(t *testing.T) {
Value: NewRSRParsersMustCompile("SampleValue", true, utils.INFIELD_SEP),
},
}
if rcv, err := FCTemplatesFromFCTemplatesJsonCfg(jsnCfgs, utils.INFIELD_SEP, 0); err != nil {
if rcv, err := FCTemplatesFromFCTemplatesJsonCfg(jsnCfgs, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rcv) {
t.Errorf("expected: %s ,received: %s", utils.ToJSON(expected), utils.ToJSON(rcv))
@@ -315,69 +315,3 @@ func TestFCTemplateClone(t *testing.T) {
t.Errorf("expected: %s ,received: %s", utils.ToJSON(initialSmpl), utils.ToJSON(cloned))
}
}
func TestRoundingDecimals(t *testing.T) {
jsonCfg := &FcTemplateJsonCfg{
Tag: utils.StringPointer("Tenant"),
Type: utils.StringPointer("*composed"),
Path: utils.StringPointer("Tenant"),
Filters: &[]string{"Filter1", "Filter2"},
Value: utils.StringPointer("cgrates.org"),
}
expected := &FCTemplate{
Tag: "Tenant",
Type: "*composed",
Path: "Tenant",
Filters: []string{"Filter1", "Filter2"},
Value: NewRSRParsersMustCompile("cgrates.org", true, utils.INFIELD_SEP),
RoundingDecimals: 5,
}
if rcv, err := NewFCTemplateFromFCTemplateJsonCfg(jsonCfg, utils.INFIELD_SEP, 5); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rcv) {
t.Errorf("expected: %s\n ,received: %s", utils.ToJSON(expected), utils.ToJSON(rcv))
}
jsonCfg = &FcTemplateJsonCfg{
Tag: utils.StringPointer("Tenant"),
Type: utils.StringPointer("*composed"),
Path: utils.StringPointer("Tenant"),
Filters: &[]string{"Filter1", "Filter2"},
Value: utils.StringPointer("cgrates.org"),
Rounding_decimals: utils.IntPointer(3),
}
expected = &FCTemplate{
Tag: "Tenant",
Type: "*composed",
Path: "Tenant",
Filters: []string{"Filter1", "Filter2"},
Value: NewRSRParsersMustCompile("cgrates.org", true, utils.INFIELD_SEP),
RoundingDecimals: 3,
}
if rcv, err := NewFCTemplateFromFCTemplateJsonCfg(jsonCfg, utils.INFIELD_SEP, 5); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rcv) {
t.Errorf("expected: %s\n ,received: %s", utils.ToJSON(expected), utils.ToJSON(rcv))
}
jsonCfg = &FcTemplateJsonCfg{
Tag: utils.StringPointer("Tenant"),
Type: utils.StringPointer("*composed"),
Path: utils.StringPointer("Tenant"),
Filters: &[]string{"Filter1", "Filter2"},
Value: utils.StringPointer("cgrates.org"),
}
expected = &FCTemplate{
Tag: "Tenant",
Type: "*composed",
Path: "Tenant",
Filters: []string{"Filter1", "Filter2"},
Value: NewRSRParsersMustCompile("cgrates.org", true, utils.INFIELD_SEP),
RoundingDecimals: 0,
}
if rcv, err := NewFCTemplateFromFCTemplateJsonCfg(jsonCfg, utils.INFIELD_SEP, 0); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, rcv) {
t.Errorf("expected: %s\n ,received: %s", utils.ToJSON(expected), utils.ToJSON(rcv))
}
}

View File

@@ -22,7 +22,7 @@ import "github.com/cgrates/cgrates/utils"
type HttpAgentCfgs []*HttpAgentCfg
func (hcfgs *HttpAgentCfgs) loadFromJsonCfg(jsnHttpAgntCfg *[]*HttpAgentJsonCfg, separator string, rounding int) (err error) {
func (hcfgs *HttpAgentCfgs) loadFromJsonCfg(jsnHttpAgntCfg *[]*HttpAgentJsonCfg, separator string) (err error) {
if jsnHttpAgntCfg == nil {
return nil
}
@@ -39,7 +39,7 @@ func (hcfgs *HttpAgentCfgs) loadFromJsonCfg(jsnHttpAgntCfg *[]*HttpAgentJsonCfg,
}
}
if err := hac.loadFromJsonCfg(jsnCfg, separator, rounding); err != nil {
if err := hac.loadFromJsonCfg(jsnCfg, separator); err != nil {
return err
}
if !haveID {
@@ -59,7 +59,7 @@ type HttpAgentCfg struct {
RequestProcessors []*RequestProcessor
}
func (ca *HttpAgentCfg) appendHttpAgntProcCfgs(hps *[]*ReqProcessorJsnCfg, separator string, rounding int) (err error) {
func (ca *HttpAgentCfg) appendHttpAgntProcCfgs(hps *[]*ReqProcessorJsnCfg, separator string) (err error) {
if hps == nil {
return
}
@@ -75,7 +75,7 @@ func (ca *HttpAgentCfg) appendHttpAgntProcCfgs(hps *[]*ReqProcessorJsnCfg, separ
}
}
}
if err := rp.loadFromJsonCfg(reqProcJsn, separator, rounding); err != nil {
if err := rp.loadFromJsonCfg(reqProcJsn, separator); err != nil {
return err
}
if !haveID {
@@ -85,7 +85,7 @@ func (ca *HttpAgentCfg) appendHttpAgntProcCfgs(hps *[]*ReqProcessorJsnCfg, separ
return nil
}
func (ca *HttpAgentCfg) loadFromJsonCfg(jsnCfg *HttpAgentJsonCfg, separator string, rounding int) (err error) {
func (ca *HttpAgentCfg) loadFromJsonCfg(jsnCfg *HttpAgentJsonCfg, separator string) (err error) {
if jsnCfg == nil {
return nil
}
@@ -112,7 +112,7 @@ func (ca *HttpAgentCfg) loadFromJsonCfg(jsnCfg *HttpAgentJsonCfg, separator stri
if jsnCfg.Reply_payload != nil {
ca.ReplyPayload = *jsnCfg.Reply_payload
}
if err = ca.appendHttpAgntProcCfgs(jsnCfg.Request_processors, separator, rounding); err != nil {
if err = ca.appendHttpAgntProcCfgs(jsnCfg.Request_processors, separator); err != nil {
return err
}
return nil

View File

@@ -26,12 +26,12 @@ import (
func TestHttpAgentCfgsloadFromJsonCfg(t *testing.T) {
var httpcfg, expected HttpAgentCfgs
if err := httpcfg.loadFromJsonCfg(nil, utils.INFIELD_SEP, 0); err != nil {
if err := httpcfg.loadFromJsonCfg(nil, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(httpcfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, httpcfg)
}
if err := httpcfg.loadFromJsonCfg(new([]*HttpAgentJsonCfg), utils.INFIELD_SEP, 0); err != nil {
if err := httpcfg.loadFromJsonCfg(new([]*HttpAgentJsonCfg), utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(httpcfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, httpcfg)
@@ -86,7 +86,7 @@ func TestHttpAgentCfgsloadFromJsonCfg(t *testing.T) {
t.Error(err)
} else if jsnhttpCfg, err := jsnCfg.HttpAgentJsonCfg(); err != nil {
t.Error(err)
} else if err = httpcfg.loadFromJsonCfg(jsnhttpCfg, utils.INFIELD_SEP, 0); err != nil {
} else if err = httpcfg.loadFromJsonCfg(jsnhttpCfg, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, httpcfg) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(httpcfg))
@@ -193,7 +193,7 @@ func TestHttpAgentCfgsloadFromJsonCfg(t *testing.T) {
t.Error(err)
} else if jsnhttpCfg, err := jsnCfg.HttpAgentJsonCfg(); err != nil {
t.Error(err)
} else if err = httpcfg.loadFromJsonCfg(jsnhttpCfg, utils.INFIELD_SEP, 0); err != nil {
} else if err = httpcfg.loadFromJsonCfg(jsnhttpCfg, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, httpcfg) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(httpcfg))
@@ -202,12 +202,12 @@ func TestHttpAgentCfgsloadFromJsonCfg(t *testing.T) {
func TestHttpAgentCfgloadFromJsonCfg(t *testing.T) {
var httpcfg, expected HttpAgentCfg
if err := httpcfg.loadFromJsonCfg(nil, utils.INFIELD_SEP, 5); err != nil {
if err := httpcfg.loadFromJsonCfg(nil, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(httpcfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, httpcfg)
}
if err := httpcfg.loadFromJsonCfg(new(HttpAgentJsonCfg), utils.INFIELD_SEP, 5); err != nil {
if err := httpcfg.loadFromJsonCfg(new(HttpAgentJsonCfg), utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(httpcfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, httpcfg)
@@ -246,7 +246,7 @@ func TestHttpAgentCfgloadFromJsonCfg(t *testing.T) {
}},
}
if err = httpcfg.loadFromJsonCfg(jsnhttpCfg, utils.INFIELD_SEP, 5); err != nil {
if err = httpcfg.loadFromJsonCfg(jsnhttpCfg, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, httpcfg) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(httpcfg))
@@ -338,7 +338,7 @@ func TestHttpAgentCfgappendHttpAgntProcCfgs(t *testing.T) {
}},
}
if err = initial.appendHttpAgntProcCfgs(proceses, utils.INFIELD_SEP, 0); err != nil {
if err = initial.appendHttpAgntProcCfgs(proceses, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, initial) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(initial))

View File

@@ -73,7 +73,7 @@ type LoaderDataType struct { //rename to LoaderDataType
Fields []*FCTemplate
}
func (self *LoaderDataType) loadFromJsonCfg(jsnCfg *LoaderJsonDataType, separator string, rounding int) (err error) {
func (self *LoaderDataType) loadFromJsonCfg(jsnCfg *LoaderJsonDataType, separator string) (err error) {
if jsnCfg == nil {
return nil
}
@@ -84,14 +84,14 @@ func (self *LoaderDataType) loadFromJsonCfg(jsnCfg *LoaderJsonDataType, separato
self.Filename = *jsnCfg.File_name
}
if jsnCfg.Fields != nil {
if self.Fields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Fields, separator, rounding); err != nil {
if self.Fields, err = FCTemplatesFromFCTemplatesJsonCfg(*jsnCfg.Fields, separator); err != nil {
return
}
}
return nil
}
func (self *LoaderSCfg) loadFromJsonCfg(jsnCfg *LoaderJsonCfg, separator string, rounding int) (err error) {
func (self *LoaderSCfg) loadFromJsonCfg(jsnCfg *LoaderJsonCfg, separator string) (err error) {
if jsnCfg == nil {
return nil
}
@@ -139,7 +139,7 @@ func (self *LoaderSCfg) loadFromJsonCfg(jsnCfg *LoaderJsonCfg, separator string,
data := make([]*LoaderDataType, len(*jsnCfg.Data))
for idx, jsnLoCfg := range *jsnCfg.Data {
data[idx] = NewDfltLoaderDataTypeConfig()
data[idx].loadFromJsonCfg(jsnLoCfg, separator, rounding)
data[idx].loadFromJsonCfg(jsnLoCfg, separator)
}
self.Data = data
}

View File

@@ -26,12 +26,12 @@ import (
func TestLoaderSCfgloadFromJsonCfg(t *testing.T) {
var loadscfg, expected LoaderSCfg
if err := loadscfg.loadFromJsonCfg(nil, utils.INFIELD_SEP, 0); err != nil {
if err := loadscfg.loadFromJsonCfg(nil, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(loadscfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, loadscfg)
}
if err := loadscfg.loadFromJsonCfg(new(LoaderJsonCfg), utils.INFIELD_SEP, 0); err != nil {
if err := loadscfg.loadFromJsonCfg(new(LoaderJsonCfg), utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(loadscfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, loadscfg)
@@ -96,7 +96,7 @@ func TestLoaderSCfgloadFromJsonCfg(t *testing.T) {
t.Error(err)
} else if jsnLoadersCfg, err := jsnCfg.LoaderJsonCfg(); err != nil {
t.Error(err)
} else if err = loadscfg.loadFromJsonCfg(jsnLoadersCfg[0], utils.INFIELD_SEP, 0); err != nil {
} else if err = loadscfg.loadFromJsonCfg(jsnLoadersCfg[0], utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, loadscfg) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(loadscfg))

View File

@@ -31,7 +31,7 @@ type RadiusAgentCfg struct {
RequestProcessors []*RequestProcessor
}
func (self *RadiusAgentCfg) loadFromJsonCfg(jsnCfg *RadiusAgentJsonCfg, separator string, rounding int) (err error) {
func (self *RadiusAgentCfg) loadFromJsonCfg(jsnCfg *RadiusAgentJsonCfg, separator string) (err error) {
if jsnCfg == nil {
return nil
}
@@ -85,7 +85,7 @@ func (self *RadiusAgentCfg) loadFromJsonCfg(jsnCfg *RadiusAgentJsonCfg, separato
break
}
}
if err := rp.loadFromJsonCfg(reqProcJsn, separator, rounding); err != nil {
if err := rp.loadFromJsonCfg(reqProcJsn, separator); err != nil {
return nil
}
if !haveID {

View File

@@ -26,12 +26,12 @@ import (
func TestRadiusAgentCfgloadFromJsonCfg(t *testing.T) {
var racfg, expected RadiusAgentCfg
if err := racfg.loadFromJsonCfg(nil, utils.INFIELD_SEP, 5); err != nil {
if err := racfg.loadFromJsonCfg(nil, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(racfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, racfg)
}
if err := racfg.loadFromJsonCfg(new(RadiusAgentJsonCfg), utils.INFIELD_SEP, 5); err != nil {
if err := racfg.loadFromJsonCfg(new(RadiusAgentJsonCfg), utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(racfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, racfg)
@@ -64,7 +64,7 @@ func TestRadiusAgentCfgloadFromJsonCfg(t *testing.T) {
t.Error(err)
} else if jsnRaCfg, err := jsnCfg.RadiusAgentJsonCfg(); err != nil {
t.Error(err)
} else if err = racfg.loadFromJsonCfg(jsnRaCfg, utils.INFIELD_SEP, 5); err != nil {
} else if err = racfg.loadFromJsonCfg(jsnRaCfg, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, racfg) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(racfg))

View File

@@ -39,7 +39,7 @@ With explanations in the comments:
"run_delay": "-1", // reading of events it is triggered outside of ERs
"field_separator": ";", // field separator definition
"type": "*file_csv", // type of reader, *file_csv can read .csv files
"row_length" : 0, // Number of fields from csv file
"row_length" : 0, // Number of fields from csv file
"flags": [ // influence processing logic within CGRateS workflow
"*cdrs", // *cdrs will create CDRs
"*log" // *log will log the events to syslog

View File

@@ -286,7 +286,7 @@ func TestWriteCdr(t *testing.T) {
var err error
wrBuf := &bytes.Buffer{}
cfg, _ := config.NewDefaultCGRConfig()
if contentCfgFlds, err = config.FCTemplatesFromFCTemplatesJsonCfg(contentJsnCfgFlds, utils.INFIELD_SEP, 5); err != nil {
if contentCfgFlds, err = config.FCTemplatesFromFCTemplatesJsonCfg(contentJsnCfgFlds, utils.INFIELD_SEP); err != nil {
t.Error(err)
}
cdreCfg := &config.CdreCfg{

View File

@@ -189,10 +189,10 @@ func testSessionsItTerminatUnexist(t *testing.T) {
t.Errorf("Unexpected number of CDRs returned: %v \n cdrs=%s", len(cdrs), utils.ToJSON(cdrs))
} else {
if cdrs[0].Usage != "2m0s" {
t.Errorf("Unexpected CDR Usage received, cdr: %v %+v ", cdrs[0].Usage, utils.ToJSON(cdrs[0]))
t.Errorf("Unexpected CDR Usage received, cdr: %v %+v ", cdrs[0].Usage, cdrs[0])
}
if cdrs[0].Cost != 0.7002 {
t.Errorf("Unexpected CDR Usage received, cdr: %v %+v ", cdrs[0].Cost, utils.ToJSON(cdrs[0]))
t.Errorf("Unexpected CDR Usage received, cdr: %v %+v ", cdrs[0].Cost, cdrs[0])
}
}