Merge branch 'J0hnSteel-master'

This commit is contained in:
DanB
2017-06-03 11:27:23 +02:00
5 changed files with 60 additions and 2 deletions

View File

@@ -53,9 +53,14 @@ func (rit *RITiming) CronString() string {
return rit.cronString
}
var sec, min, hour, monthday, month, weekday, year string
if len(rit.StartTime) == 0 {
switch rit.StartTime {
case "":
hour, min, sec = "*", "*", "*"
} else {
case utils.MetaEveryMinute:
hour, min, sec = "*", "*", "0"
case utils.MetaHourly:
hour, min, sec = "*", "0", "0"
default:
hms := strings.Split(rit.StartTime, ":")
if len(hms) == 3 {
hour, min, sec = hms[0], hms[1], hms[2]

View File

@@ -348,6 +348,23 @@ func TestRateIntervalCronEmpty(t *testing.T) {
}
}
func TestRITimingCronEveryX(t *testing.T) {
rit := &RITiming{
StartTime: utils.MetaEveryMinute,
}
eCronStr := "0 * * * * * *"
if cronStr := rit.CronString(); cronStr != eCronStr {
t.Errorf("Expecting: <%s>, received: <%s>", eCronStr, cronStr)
}
rit = &RITiming{
StartTime: utils.MetaHourly,
}
eCronStr = "0 0 * * * * *"
if cronStr := rit.CronString(); cronStr != eCronStr {
t.Errorf("Expecting: <%s>, received: <%s>", eCronStr, cronStr)
}
}
func TestRateIntervalCost(t *testing.T) {
ri := &RateInterval{
Rating: &RIRate{

View File

@@ -85,6 +85,24 @@ func NewTpReader(db DataDB, lr LoadReader, tpid, timezone string) *TpReader {
StartTime: utils.ASAP,
EndTime: "",
}
tpr.timings[utils.MetaEveryMinute] = &utils.TPTiming{
ID: utils.MetaEveryMinute,
Years: utils.Years{},
Months: utils.Months{},
MonthDays: utils.MonthDays{},
WeekDays: utils.WeekDays{},
StartTime: utils.MetaEveryMinute,
EndTime: "",
}
tpr.timings[utils.MetaHourly] = &utils.TPTiming{
ID: utils.MetaHourly,
Years: utils.Years{},
Months: utils.Months{},
MonthDays: utils.MonthDays{},
WeekDays: utils.WeekDays{},
StartTime: utils.MetaHourly,
EndTime: "",
}
return tpr
}

View File

@@ -370,4 +370,6 @@ const (
MetaFileCSV = "*file_csv"
MetaFileFWV = "*file_fwv"
Accounts = "Accounts"
MetaEveryMinute = "*every_minute"
MetaHourly = "*hourly"
)

View File

@@ -102,5 +102,21 @@ func incrementalFormula(params map[string]interface{}) float64 {
return units / DaysInYear(now.Year())
}
}
if increment == "hour" {
if interval == "day" {
return units / 24
}
if interval == "month" {
return units / ( DaysInMonth(now.Year(), now.Month()) * 24 )
}
if interval == "year" {
return units / ( DaysInYear(now.Year()) * 24 )
}
}
if increment == "minute" {
if interval == "hour" {
return units / 60
}
}
return 0.0
}