From bdc30af37ad5e1736f19eb3a0a367f2929a217fc Mon Sep 17 00:00:00 2001 From: Eloy Coto Date: Wed, 17 Aug 2016 17:16:26 +0100 Subject: [PATCH] [CdrStats] Fix issue with LASTExecutionID on update triggers --- engine/stats_queue.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/engine/stats_queue.go b/engine/stats_queue.go index 6abe86bd9..0b7588e9d 100644 --- a/engine/stats_queue.go +++ b/engine/stats_queue.go @@ -77,6 +77,9 @@ func (sq *StatsQueue) UpdateConf(conf *CdrStats) { defer sq.mux.Unlock() // check if new conf asks for action trigger reset only if sq.conf != nil && (conf.hasGeneralConfigs() || sq.conf.equalExceptTriggers(conf)) { + for _, trigger := range conf.Triggers { + trigger.LastExecutionTime = sq.GetTriggerLastExecution(&trigger.ID) + } sq.conf.Triggers = conf.Triggers return } @@ -172,6 +175,15 @@ func (sq *StatsQueue) appendQcdr(qcdr *QCdr, runTrigger bool) { } } +func (sq *StatsQueue) GetTriggerLastExecution(trigger_id *string) time.Time { + for _, trigger := range sq.conf.Triggers { + if trigger.ID == *trigger_id { + return trigger.LastExecutionTime + } + } + return time.Time{} +} + func (sq *StatsQueue) addToMetrics(cdr *QCdr) { //log.Print("AddToMetrics: " + utils.ToIJSON(cdr)) for _, metric := range sq.metrics {