From 7d333869132ca237f8c94efd599260caba7e3ea7 Mon Sep 17 00:00:00 2001 From: DanB Date: Sat, 3 Jun 2017 11:17:39 +0200 Subject: [PATCH] utils.MINUTE -> utils.MetaEveryMinute, utils.HOUR -> utils.MetaHourly --- engine/action_plan.go | 10 +--------- engine/rateinterval.go | 9 +++++++-- engine/rateinterval_test.go | 17 +++++++++++++++++ engine/tp_reader.go | 12 ++++++------ utils/consts.go | 4 ++-- 5 files changed, 33 insertions(+), 19 deletions(-) diff --git a/engine/action_plan.go b/engine/action_plan.go index bda82c11a..d22cfbe5b 100644 --- a/engine/action_plan.go +++ b/engine/action_plan.go @@ -95,15 +95,7 @@ func (at *ActionTiming) GetNextStartTime(now time.Time) (t time.Time) { if len(i.Timing.Months) > 0 && len(i.Timing.MonthDays) == 0 { i.Timing.MonthDays = append(i.Timing.MonthDays, 1) } - - if i.Timing.StartTime == utils.MINUTE { - at.stCache = cronexpr.MustParse("0 * * * * * *").Next(now) - } else if i.Timing.StartTime == utils.HOUR { - at.stCache = cronexpr.MustParse("0 0 * * * * *").Next(now) - } else { - at.stCache = cronexpr.MustParse(i.Timing.CronString()).Next(now) - } - + at.stCache = cronexpr.MustParse(i.Timing.CronString()).Next(now) return at.stCache } diff --git a/engine/rateinterval.go b/engine/rateinterval.go index 91bebe5c4..d47ec82f3 100644 --- a/engine/rateinterval.go +++ b/engine/rateinterval.go @@ -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] diff --git a/engine/rateinterval_test.go b/engine/rateinterval_test.go index 93592dbd9..072b5f97c 100644 --- a/engine/rateinterval_test.go +++ b/engine/rateinterval_test.go @@ -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{ diff --git a/engine/tp_reader.go b/engine/tp_reader.go index 53fa26fcd..2a6a455af 100644 --- a/engine/tp_reader.go +++ b/engine/tp_reader.go @@ -85,22 +85,22 @@ func NewTpReader(db DataDB, lr LoadReader, tpid, timezone string) *TpReader { StartTime: utils.ASAP, EndTime: "", } - tpr.timings[utils.MINUTE] = &utils.TPTiming{ - ID: utils.MINUTE, + tpr.timings[utils.MetaEveryMinute] = &utils.TPTiming{ + ID: utils.MetaEveryMinute, Years: utils.Years{}, Months: utils.Months{}, MonthDays: utils.MonthDays{}, WeekDays: utils.WeekDays{}, - StartTime: utils.MINUTE, + StartTime: utils.MetaEveryMinute, EndTime: "", } - tpr.timings[utils.HOUR] = &utils.TPTiming{ - ID: utils.HOUR, + tpr.timings[utils.MetaHourly] = &utils.TPTiming{ + ID: utils.MetaHourly, Years: utils.Years{}, Months: utils.Months{}, MonthDays: utils.MonthDays{}, WeekDays: utils.WeekDays{}, - StartTime: utils.HOUR, + StartTime: utils.MetaHourly, EndTime: "", } return tpr diff --git a/utils/consts.go b/utils/consts.go index 341613dd0..57284b5df 100644 --- a/utils/consts.go +++ b/utils/consts.go @@ -108,8 +108,6 @@ const ( UNLIMITED = "*unlimited" ZERO = "*zero" ASAP = "*asap" - MINUTE = "*minute" - HOUR = "*hour" USERS = "*users" COMMENT_CHAR = '#' CSV_SEP = ',' @@ -372,4 +370,6 @@ const ( MetaFileCSV = "*file_csv" MetaFileFWV = "*file_fwv" Accounts = "Accounts" + MetaEveryMinute = "*every_minute" + MetaHourly = "*hourly" )