Fix issue with updating timetrigger without --cron flag (#2677)

* Fix issue with updating time trigger without --cron flag
* Add check with ResourceVersion
* Change in UpdateFunc

Signed-off-by: Shubham Nazare <shubham4443@gmail.com>

Signed-off-by: Shubham Nazare <shubham4443@gmail.com>
This commit is contained in:
Shubham Nazare
2022-12-28 14:12:19 +05:30
committed by GitHub
parent 8df4fd0e7c
commit 69470a68d0
+11 -10
View File
@@ -61,14 +61,12 @@ func (ws *TimerSync) AddUpdateTimeTrigger(timeTrigger *fv1.TimeTrigger) {
ws.logger.Debug("cron event")
if item, ok := ws.timer.triggers[crd.CacheKeyUID(&timeTrigger.ObjectMeta)]; ok {
if item.trigger.Spec.Cron != timeTrigger.Spec.Cron {
if item.cron != nil {
item.cron.Stop()
}
item.trigger = *timeTrigger
item.cron = ws.timer.newCron(*timeTrigger)
logger.Debug("cron updated")
if item.cron != nil {
item.cron.Stop()
}
item.trigger = *timeTrigger
item.cron = ws.timer.newCron(*timeTrigger)
logger.Debug("cron updated")
} else {
ws.timer.triggers[crd.CacheKeyUID(&timeTrigger.ObjectMeta)] = &timerTriggerWithCron{
trigger: *timeTrigger,
@@ -98,9 +96,12 @@ func (ws *TimerSync) TimeTriggerEventHandlers(ctx context.Context) {
timeTrigger := obj.(*fv1.TimeTrigger)
ws.AddUpdateTimeTrigger(timeTrigger)
},
UpdateFunc: func(_ interface{}, obj interface{}) {
timeTrigger := obj.(*fv1.TimeTrigger)
ws.AddUpdateTimeTrigger(timeTrigger)
UpdateFunc: func(oldObj interface{}, newObj interface{}) {
oldTimeTrigger := oldObj.(*fv1.TimeTrigger)
newTimeTrigger := newObj.(*fv1.TimeTrigger)
if oldTimeTrigger.ObjectMeta.ResourceVersion != newTimeTrigger.ObjectMeta.ResourceVersion {
ws.AddUpdateTimeTrigger(newTimeTrigger)
}
},
DeleteFunc: func(obj interface{}) {
timeTrigger := obj.(*fv1.TimeTrigger)