CDRC accepting float64 instead of int64 as DataChargeMultiply

This commit is contained in:
DanB
2014-12-17 17:18:17 +01:00
parent 9c7b8bd5b9
commit 48890e7486
4 changed files with 7 additions and 8 deletions

View File

@@ -107,7 +107,7 @@ type Cdrc struct {
cdrSourceId string
runDelay time.Duration
csvSep rune
duMultiplyFactor int64
duMultiplyFactor float64
cdrFields []*config.CfgCdrField
httpSkipTlsCheck bool
cdrServer *engine.CDRS // Reference towards internal cdrServer if that is the case
@@ -160,7 +160,7 @@ func (self *Cdrc) recordToStoredCdr(record []string) (*utils.StoredCdr, error) {
}
storedCdr.CgrId = utils.Sha1(storedCdr.AccId, storedCdr.SetupTime.String())
if storedCdr.TOR == utils.DATA && self.duMultiplyFactor != 0 {
storedCdr.Usage = time.Duration(storedCdr.Usage.Nanoseconds() * self.duMultiplyFactor)
storedCdr.Usage = time.Duration(float64(storedCdr.Usage.Nanoseconds()) * self.duMultiplyFactor)
}
for _, httpFieldCfg := range lazyHttpFields { // Lazy process the http fields
var outValByte []byte

View File

@@ -90,7 +90,7 @@ func NewDefaultCdrcConfig() *CdrcConfig {
CdrsAddress: "",
CdrFormat: utils.CSV,
FieldSeparator: utils.FIELDS_SEP,
DataUsageMultiplyFactor: 1,
DataUsageMultiplyFactor: 1.0,
RunDelay: time.Duration(0),
CdrInDir: "/var/log/cgrates/cdrc/in",
CdrOutDir: "/var/log/cgrates/cdrc/out",
@@ -116,8 +116,7 @@ func NewCdrcConfigFromFileParams(c *conf.ConfigFile) (*CdrcConfig, error) {
cdrcCfg.FieldSeparator, _ = c.GetString("cdrc", "field_separator")
}
if hasOpt := c.HasOption("cdrc", "data_usage_multiply_factor"); hasOpt {
mf, _ := c.GetInt("cdrc", "data_usage_multiply_factor")
cdrcCfg.DataUsageMultiplyFactor = int64(mf)
cdrcCfg.DataUsageMultiplyFactor, _ = c.GetFloat64("cdrc", "data_usage_multiply_factor")
}
if hasOpt := c.HasOption("cdrc", "run_delay"); hasOpt {
durStr, _ := c.GetString("cdrc", "run_delay")
@@ -200,7 +199,7 @@ type CdrcConfig struct {
CdrsAddress string // The address where CDRs can be reached
CdrFormat string // The type of CDR file to process <csv>
FieldSeparator string // The separator to use when reading csvs
DataUsageMultiplyFactor int64 // Conversion factor for data usage
DataUsageMultiplyFactor float64 // Conversion factor for data usage
RunDelay time.Duration // Delay between runs, 0 for inotify driven requests
CdrInDir string // Folder to process CDRs from
CdrOutDir string // Folder to move processed CDRs to

View File

@@ -112,7 +112,7 @@ func TestGetCdrcCfgs(t *testing.T) {
cdrsAddr := "internal"
cdrFormat := "csv"
fldSep := ","
dataUsageMultiplyFactor := int64(1024)
dataUsageMultiplyFactor := 1024.0
runDelay := int64(0)
cdrInDir := "/var/log/cgrates/cdrc/in"
cdrOutDir := "/var/log/cgrates/cdrc/out"

View File

@@ -59,7 +59,7 @@ type CgrXmlCdrcCfg struct {
CdrsAddress *string `xml:"cdrs_address"` // The address where CDRs can be reached
CdrFormat *string `xml:"cdr_format"` // The type of CDR to process <csv>
FieldSeparator *string `xml:"field_separator"` // The separator to use when reading csvs
DataUsageMultiplyFactor *int64 `xml:"data_usage_multiply_factor"` // Conversion factor for data usage
DataUsageMultiplyFactor *float64 `xml:"data_usage_multiply_factor"` // Conversion factor for data usage
RunDelay *int64 `xml:"run_delay"` // Delay between runs
CdrInDir *string `xml:"cdr_in_dir"` // Folder to process CDRs from
CdrOutDir *string `xml:"cdr_out_dir"` // Folder to move processed CDRs to