Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 58e6a86

Browse files
committedMar 3, 2025··
check object before placing in priorityqueue
Signed-off-by: Troy Connor <troy0820@users.noreply.github.com>
1 parent 5bbe24d commit 58e6a86

File tree

1 file changed

+30
-24
lines changed

1 file changed

+30
-24
lines changed
 

‎pkg/handler/eventhandler.go

+30-24
Original file line numberDiff line numberDiff line change
@@ -119,12 +119,15 @@ func (h TypedFuncs[object, request]) Create(ctx context.Context, e event.TypedCr
119119

120120
wq, ok := q.(workqueue.TypedRateLimitingInterface[reconcile.Request])
121121
if ok {
122-
evt := any(e).(event.TypedCreateEvent[client.Object])
123-
item := reconcile.Request{NamespacedName: types.NamespacedName{
124-
Name: evt.Object.GetName(),
125-
Namespace: evt.Object.GetNamespace(),
126-
}}
127-
addToQueueCreate(wq, evt, item)
122+
evt, ok := any(e).(event.TypedCreateEvent[client.Object])
123+
if ok {
124+
item := reconcile.Request{NamespacedName: types.NamespacedName{
125+
Name: evt.Object.GetName(),
126+
Namespace: evt.Object.GetNamespace(),
127+
}}
128+
addToQueueCreate(wq, evt, item)
129+
}
130+
h.CreateFunc(ctx, e, q)
128131
}
129132
}
130133
}
@@ -145,23 +148,26 @@ func (h TypedFuncs[object, request]) Update(ctx context.Context, e event.TypedUp
145148

146149
wq, ok := q.(workqueue.TypedRateLimitingInterface[reconcile.Request])
147150
if ok {
148-
evt := any(e).(event.TypedUpdateEvent[client.Object])
149-
switch {
150-
case !isNil(evt.ObjectNew):
151-
item := reconcile.Request{NamespacedName: types.NamespacedName{
152-
Name: evt.ObjectNew.GetName(),
153-
Namespace: evt.ObjectNew.GetNamespace(),
154-
}}
155-
addToQueueUpdate(wq, evt, item)
156-
case !isNil(evt.ObjectOld):
157-
item := reconcile.Request{NamespacedName: types.NamespacedName{
158-
Name: evt.ObjectOld.GetName(),
159-
Namespace: evt.ObjectOld.GetNamespace(),
160-
}}
161-
addToQueueUpdate(wq, evt, item)
162-
default:
163-
enqueueLog.Error(nil, "UpdateEvent received with no metadata", "event", evt)
151+
evt, ok := any(e).(event.TypedUpdateEvent[client.Object])
152+
if ok {
153+
switch {
154+
case !isNil(evt.ObjectNew):
155+
item := reconcile.Request{NamespacedName: types.NamespacedName{
156+
Name: evt.ObjectNew.GetName(),
157+
Namespace: evt.ObjectNew.GetNamespace(),
158+
}}
159+
addToQueueUpdate(wq, evt, item)
160+
case !isNil(evt.ObjectOld):
161+
item := reconcile.Request{NamespacedName: types.NamespacedName{
162+
Name: evt.ObjectOld.GetName(),
163+
Namespace: evt.ObjectOld.GetNamespace(),
164+
}}
165+
addToQueueUpdate(wq, evt, item)
166+
default:
167+
enqueueLog.Error(nil, "UpdateEvent received with no metadata", "event", evt)
168+
}
164169
}
170+
h.UpdateFunc(ctx, e, q)
165171
}
166172
}
167173
}
@@ -224,7 +230,7 @@ func isObjectUnchanged[object client.Object](e event.TypedCreateEvent[object]) b
224230
func addToQueueCreate[T client.Object, request comparable](q workqueue.TypedRateLimitingInterface[request], evt event.TypedCreateEvent[T], item request) {
225231
priorityQueue, isPriorityQueue := q.(priorityqueue.PriorityQueue[request])
226232
if !isPriorityQueue {
227-
q.Add(item)
233+
q.AddRateLimited(item)
228234
return
229235
}
230236

@@ -240,7 +246,7 @@ func addToQueueCreate[T client.Object, request comparable](q workqueue.TypedRate
240246
func addToQueueUpdate[T client.Object, request comparable](q workqueue.TypedRateLimitingInterface[request], evt event.TypedUpdateEvent[T], item request) {
241247
priorityQueue, isPriorityQueue := q.(priorityqueue.PriorityQueue[request])
242248
if !isPriorityQueue {
243-
q.Add(item)
249+
q.AddRateLimited(item)
244250
return
245251
}
246252

0 commit comments

Comments
 (0)
Please sign in to comment.