From 38d77dd0d4a4452cfc8bf898e7cff46cb3c91362 Mon Sep 17 00:00:00 2001 From: Alvaro Aleman Date: Wed, 5 Aug 2020 18:38:18 -0400 Subject: [PATCH] :warning: Use controllerutil.Object for event handling --- pkg/builder/controller_test.go | 6 +-- pkg/event/event.go | 28 +++-------- pkg/handler/enqueue.go | 30 +++++------ pkg/handler/enqueue_mapped.go | 19 +++---- pkg/handler/enqueue_owner.go | 10 ++-- pkg/handler/eventhandler_test.go | 71 ++++++--------------------- pkg/handler/example_test.go | 24 ++++----- pkg/predicate/example_test.go | 2 +- pkg/predicate/predicate.go | 26 +++++----- pkg/predicate/predicate_test.go | 63 +++++++----------------- pkg/source/internal/eventsource.go | 63 +++++------------------- pkg/source/internal/internal_test.go | 17 ------- pkg/source/source_integration_test.go | 17 ++----- pkg/source/source_test.go | 11 +---- 14 files changed, 110 insertions(+), 277 deletions(-) diff --git a/pkg/builder/controller_test.go b/pkg/builder/controller_test.go index 2b764b16dc..60504a3942 100644 --- a/pkg/builder/controller_test.go +++ b/pkg/builder/controller_test.go @@ -251,7 +251,7 @@ var _ = Describe("application", func() { CreateFunc: func(e event.CreateEvent) bool { defer GinkgoRecover() // check that it was called only for deployment - Expect(e.Meta).To(BeAssignableToTypeOf(&appsv1.Deployment{})) + Expect(e.Object).To(BeAssignableToTypeOf(&appsv1.Deployment{})) deployPrctExecuted = true return true }, @@ -261,7 +261,7 @@ var _ = Describe("application", func() { CreateFunc: func(e event.CreateEvent) bool { defer GinkgoRecover() // check that it was called only for replicaset - Expect(e.Meta).To(BeAssignableToTypeOf(&appsv1.ReplicaSet{})) + Expect(e.Object).To(BeAssignableToTypeOf(&appsv1.ReplicaSet{})) replicaSetPrctExecuted = true return true }, @@ -271,7 +271,7 @@ var _ = Describe("application", func() { CreateFunc: func(e event.CreateEvent) bool { defer GinkgoRecover() //check that it was called for all registered kinds - Expect(e.Meta).Should(Or( + Expect(e.Object).Should(Or( BeAssignableToTypeOf(&appsv1.Deployment{}), BeAssignableToTypeOf(&appsv1.ReplicaSet{}), )) diff --git a/pkg/event/event.go b/pkg/event/event.go index 6aa50bf301..59abd91bd4 100644 --- a/pkg/event/event.go +++ b/pkg/event/event.go @@ -17,44 +17,31 @@ limitations under the License. package event import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" + "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) // CreateEvent is an event where a Kubernetes object was created. CreateEvent should be generated // by a source.Source and transformed into a reconcile.Request by an handler.EventHandler. type CreateEvent struct { - // Meta is the ObjectMeta of the Kubernetes Type that was created - Meta metav1.Object - // Object is the object from the event - Object runtime.Object + Object controllerutil.Object } // UpdateEvent is an event where a Kubernetes object was updated. UpdateEvent should be generated // by a source.Source and transformed into a reconcile.Request by an handler.EventHandler. type UpdateEvent struct { - // MetaOld is the ObjectMeta of the Kubernetes Type that was updated (before the update) - MetaOld metav1.Object - // ObjectOld is the object from the event - ObjectOld runtime.Object - - // MetaNew is the ObjectMeta of the Kubernetes Type that was updated (after the update) - MetaNew metav1.Object + ObjectOld controllerutil.Object // ObjectNew is the object from the event - ObjectNew runtime.Object + ObjectNew controllerutil.Object } // DeleteEvent is an event where a Kubernetes object was deleted. DeleteEvent should be generated // by a source.Source and transformed into a reconcile.Request by an handler.EventHandler. type DeleteEvent struct { - // Meta is the ObjectMeta of the Kubernetes Type that was deleted - Meta metav1.Object - // Object is the object from the event - Object runtime.Object + Object controllerutil.Object // DeleteStateUnknown is true if the Delete event was missed but we identified the object // as having been deleted. @@ -65,9 +52,6 @@ type DeleteEvent struct { // GenericEvent should be generated by a source.Source and transformed into a reconcile.Request by an // handler.EventHandler. type GenericEvent struct { - // Meta is the ObjectMeta of a Kubernetes Type this event is for - Meta metav1.Object - // Object is the object from the event - Object runtime.Object + Object controllerutil.Object } diff --git a/pkg/handler/enqueue.go b/pkg/handler/enqueue.go index 2464c8b671..9f72302d1c 100644 --- a/pkg/handler/enqueue.go +++ b/pkg/handler/enqueue.go @@ -35,31 +35,31 @@ type EnqueueRequestForObject struct{} // Create implements EventHandler func (e *EnqueueRequestForObject) Create(evt event.CreateEvent, q workqueue.RateLimitingInterface) { - if evt.Meta == nil { + if evt.Object == nil { enqueueLog.Error(nil, "CreateEvent received with no metadata", "event", evt) return } q.Add(reconcile.Request{NamespacedName: types.NamespacedName{ - Name: evt.Meta.GetName(), - Namespace: evt.Meta.GetNamespace(), + Name: evt.Object.GetName(), + Namespace: evt.Object.GetNamespace(), }}) } // Update implements EventHandler func (e *EnqueueRequestForObject) Update(evt event.UpdateEvent, q workqueue.RateLimitingInterface) { - if evt.MetaOld != nil { + if evt.ObjectOld != nil { q.Add(reconcile.Request{NamespacedName: types.NamespacedName{ - Name: evt.MetaOld.GetName(), - Namespace: evt.MetaOld.GetNamespace(), + Name: evt.ObjectOld.GetName(), + Namespace: evt.ObjectOld.GetNamespace(), }}) } else { enqueueLog.Error(nil, "UpdateEvent received with no old metadata", "event", evt) } - if evt.MetaNew != nil { + if evt.ObjectNew != nil { q.Add(reconcile.Request{NamespacedName: types.NamespacedName{ - Name: evt.MetaNew.GetName(), - Namespace: evt.MetaNew.GetNamespace(), + Name: evt.ObjectNew.GetName(), + Namespace: evt.ObjectNew.GetNamespace(), }}) } else { enqueueLog.Error(nil, "UpdateEvent received with no new metadata", "event", evt) @@ -68,24 +68,24 @@ func (e *EnqueueRequestForObject) Update(evt event.UpdateEvent, q workqueue.Rate // Delete implements EventHandler func (e *EnqueueRequestForObject) Delete(evt event.DeleteEvent, q workqueue.RateLimitingInterface) { - if evt.Meta == nil { + if evt.Object == nil { enqueueLog.Error(nil, "DeleteEvent received with no metadata", "event", evt) return } q.Add(reconcile.Request{NamespacedName: types.NamespacedName{ - Name: evt.Meta.GetName(), - Namespace: evt.Meta.GetNamespace(), + Name: evt.Object.GetName(), + Namespace: evt.Object.GetNamespace(), }}) } // Generic implements EventHandler func (e *EnqueueRequestForObject) Generic(evt event.GenericEvent, q workqueue.RateLimitingInterface) { - if evt.Meta == nil { + if evt.Object == nil { enqueueLog.Error(nil, "GenericEvent received with no metadata", "event", evt) return } q.Add(reconcile.Request{NamespacedName: types.NamespacedName{ - Name: evt.Meta.GetName(), - Namespace: evt.Meta.GetNamespace(), + Name: evt.Object.GetName(), + Namespace: evt.Object.GetNamespace(), }}) } diff --git a/pkg/handler/enqueue_mapped.go b/pkg/handler/enqueue_mapped.go index a60790242c..43738cc46c 100644 --- a/pkg/handler/enqueue_mapped.go +++ b/pkg/handler/enqueue_mapped.go @@ -17,9 +17,8 @@ limitations under the License. package handler import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/util/workqueue" + "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" "sigs.k8s.io/controller-runtime/pkg/event" "sigs.k8s.io/controller-runtime/pkg/reconcile" "sigs.k8s.io/controller-runtime/pkg/runtime/inject" @@ -44,23 +43,23 @@ type EnqueueRequestsFromMapFunc struct { // Create implements EventHandler func (e *EnqueueRequestsFromMapFunc) Create(evt event.CreateEvent, q workqueue.RateLimitingInterface) { - e.mapAndEnqueue(q, MapObject{Meta: evt.Meta, Object: evt.Object}) + e.mapAndEnqueue(q, MapObject{Object: evt.Object}) } // Update implements EventHandler func (e *EnqueueRequestsFromMapFunc) Update(evt event.UpdateEvent, q workqueue.RateLimitingInterface) { - e.mapAndEnqueue(q, MapObject{Meta: evt.MetaOld, Object: evt.ObjectOld}) - e.mapAndEnqueue(q, MapObject{Meta: evt.MetaNew, Object: evt.ObjectNew}) + e.mapAndEnqueue(q, MapObject{Object: evt.ObjectOld}) + e.mapAndEnqueue(q, MapObject{Object: evt.ObjectNew}) } // Delete implements EventHandler func (e *EnqueueRequestsFromMapFunc) Delete(evt event.DeleteEvent, q workqueue.RateLimitingInterface) { - e.mapAndEnqueue(q, MapObject{Meta: evt.Meta, Object: evt.Object}) + e.mapAndEnqueue(q, MapObject{Object: evt.Object}) } // Generic implements EventHandler func (e *EnqueueRequestsFromMapFunc) Generic(evt event.GenericEvent, q workqueue.RateLimitingInterface) { - e.mapAndEnqueue(q, MapObject{Meta: evt.Meta, Object: evt.Object}) + e.mapAndEnqueue(q, MapObject{Object: evt.Object}) } func (e *EnqueueRequestsFromMapFunc) mapAndEnqueue(q workqueue.RateLimitingInterface, object MapObject) { @@ -87,11 +86,7 @@ type Mapper interface { // MapObject contains information from an event to be transformed into a Request. type MapObject struct { - // Meta is the meta data for an object from an event. - Meta metav1.Object - - // Object is the object from an event. - Object runtime.Object + Object controllerutil.Object } var _ Mapper = ToRequestsFunc(nil) diff --git a/pkg/handler/enqueue_owner.go b/pkg/handler/enqueue_owner.go index 17d512696c..925b9e3c2d 100644 --- a/pkg/handler/enqueue_owner.go +++ b/pkg/handler/enqueue_owner.go @@ -59,31 +59,31 @@ type EnqueueRequestForOwner struct { // Create implements EventHandler func (e *EnqueueRequestForOwner) Create(evt event.CreateEvent, q workqueue.RateLimitingInterface) { - for _, req := range e.getOwnerReconcileRequest(evt.Meta) { + for _, req := range e.getOwnerReconcileRequest(evt.Object) { q.Add(req) } } // Update implements EventHandler func (e *EnqueueRequestForOwner) Update(evt event.UpdateEvent, q workqueue.RateLimitingInterface) { - for _, req := range e.getOwnerReconcileRequest(evt.MetaOld) { + for _, req := range e.getOwnerReconcileRequest(evt.ObjectOld) { q.Add(req) } - for _, req := range e.getOwnerReconcileRequest(evt.MetaNew) { + for _, req := range e.getOwnerReconcileRequest(evt.ObjectNew) { q.Add(req) } } // Delete implements EventHandler func (e *EnqueueRequestForOwner) Delete(evt event.DeleteEvent, q workqueue.RateLimitingInterface) { - for _, req := range e.getOwnerReconcileRequest(evt.Meta) { + for _, req := range e.getOwnerReconcileRequest(evt.Object) { q.Add(req) } } // Generic implements EventHandler func (e *EnqueueRequestForOwner) Generic(evt event.GenericEvent, q workqueue.RateLimitingInterface) { - for _, req := range e.getOwnerReconcileRequest(evt.Meta) { + for _, req := range e.getOwnerReconcileRequest(evt.Object) { q.Add(req) } } diff --git a/pkg/handler/eventhandler_test.go b/pkg/handler/eventhandler_test.go index 3587afe32c..25fbc8e236 100644 --- a/pkg/handler/eventhandler_test.go +++ b/pkg/handler/eventhandler_test.go @@ -56,7 +56,6 @@ var _ = Describe("Eventhandler", func() { It("should enqueue a Request with the Name / Namespace of the object in the CreateEvent.", func(done Done) { evt := event.CreateEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Create(evt, q) Expect(q.Len()).To(Equal(1)) @@ -73,7 +72,6 @@ var _ = Describe("Eventhandler", func() { It("should enqueue a Request with the Name / Namespace of the object in the DeleteEvent.", func(done Done) { evt := event.DeleteEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Delete(evt, q) Expect(q.Len()).To(Equal(1)) @@ -95,9 +93,7 @@ var _ = Describe("Eventhandler", func() { evt := event.UpdateEvent{ ObjectOld: pod, - MetaOld: pod.GetObjectMeta(), ObjectNew: newPod, - MetaNew: newPod.GetObjectMeta(), } instance.Update(evt, q) Expect(q.Len()).To(Equal(2)) @@ -120,7 +116,6 @@ var _ = Describe("Eventhandler", func() { It("should enqueue a Request with the Name / Namespace of the object in the GenericEvent.", func(done Done) { evt := event.GenericEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Generic(evt, q) Expect(q.Len()).To(Equal(1)) @@ -133,25 +128,24 @@ var _ = Describe("Eventhandler", func() { close(done) }) - Context("for a runtime.Object without Metadata", func() { - It("should do nothing if the Metadata is missing for a CreateEvent.", func(done Done) { + Context("for a runtime.Object without Object", func() { + It("should do nothing if the Object is missing for a CreateEvent.", func(done Done) { evt := event.CreateEvent{ - Object: pod, + Object: nil, } instance.Create(evt, q) Expect(q.Len()).To(Equal(0)) close(done) }) - It("should do nothing if the Metadata is missing for a UpdateEvent.", func(done Done) { + It("should do nothing if the Object is missing for a UpdateEvent.", func(done Done) { newPod := pod.DeepCopy() newPod.Name = "baz2" newPod.Namespace = "biz2" evt := event.UpdateEvent{ ObjectNew: newPod, - MetaNew: newPod.GetObjectMeta(), - ObjectOld: pod, + ObjectOld: nil, } instance.Update(evt, q) Expect(q.Len()).To(Equal(1)) @@ -161,8 +155,8 @@ var _ = Describe("Eventhandler", func() { Expect(ok).To(BeTrue()) Expect(req.NamespacedName).To(Equal(types.NamespacedName{Namespace: "biz2", Name: "baz2"})) - evt.MetaNew = nil - evt.MetaOld = pod.GetObjectMeta() + evt.ObjectNew = nil + evt.ObjectOld = pod instance.Update(evt, q) Expect(q.Len()).To(Equal(1)) i, _ = q.Get() @@ -174,18 +168,18 @@ var _ = Describe("Eventhandler", func() { close(done) }) - It("should do nothing if the Metadata is missing for a DeleteEvent.", func(done Done) { + It("should do nothing if the Object is missing for a DeleteEvent.", func(done Done) { evt := event.DeleteEvent{ - Object: pod, + Object: nil, } instance.Delete(evt, q) Expect(q.Len()).To(Equal(0)) close(done) }) - It("should do nothing if the Metadata is missing for a GenericEvent.", func(done Done) { + It("should do nothing if the Object is missing for a GenericEvent.", func(done Done) { evt := event.GenericEvent{ - Object: pod, + Object: nil, } instance.Generic(evt, q) Expect(q.Len()).To(Equal(0)) @@ -200,7 +194,6 @@ var _ = Describe("Eventhandler", func() { instance := handler.EnqueueRequestsFromMapFunc{ ToRequests: handler.ToRequestsFunc(func(a handler.MapObject) []reconcile.Request { defer GinkgoRecover() - Expect(a.Meta).To(Equal(pod.GetObjectMeta())) Expect(a.Object).To(Equal(pod)) req = []reconcile.Request{ { @@ -216,7 +209,6 @@ var _ = Describe("Eventhandler", func() { evt := event.CreateEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Create(evt, q) Expect(q.Len()).To(Equal(2)) @@ -235,7 +227,6 @@ var _ = Describe("Eventhandler", func() { instance := handler.EnqueueRequestsFromMapFunc{ ToRequests: handler.ToRequestsFunc(func(a handler.MapObject) []reconcile.Request { defer GinkgoRecover() - Expect(a.Meta).To(Equal(pod.GetObjectMeta())) Expect(a.Object).To(Equal(pod)) req = []reconcile.Request{ { @@ -251,7 +242,6 @@ var _ = Describe("Eventhandler", func() { evt := event.DeleteEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Delete(evt, q) Expect(q.Len()).To(Equal(2)) @@ -277,10 +267,10 @@ var _ = Describe("Eventhandler", func() { defer GinkgoRecover() req = []reconcile.Request{ { - NamespacedName: types.NamespacedName{Namespace: "foo", Name: a.Meta.GetName() + "-bar"}, + NamespacedName: types.NamespacedName{Namespace: "foo", Name: a.Object.GetName() + "-bar"}, }, { - NamespacedName: types.NamespacedName{Namespace: "biz", Name: a.Meta.GetName() + "-baz"}, + NamespacedName: types.NamespacedName{Namespace: "biz", Name: a.Object.GetName() + "-baz"}, }, } return req @@ -289,9 +279,7 @@ var _ = Describe("Eventhandler", func() { evt := event.UpdateEvent{ ObjectOld: pod, - MetaOld: pod.GetObjectMeta(), ObjectNew: newPod, - MetaNew: newPod.GetObjectMeta(), } instance.Update(evt, q) Expect(q.Len()).To(Equal(4)) @@ -318,7 +306,6 @@ var _ = Describe("Eventhandler", func() { instance := handler.EnqueueRequestsFromMapFunc{ ToRequests: handler.ToRequestsFunc(func(a handler.MapObject) []reconcile.Request { defer GinkgoRecover() - Expect(a.Meta).To(Equal(pod.GetObjectMeta())) Expect(a.Object).To(Equal(pod)) req = []reconcile.Request{ { @@ -334,7 +321,6 @@ var _ = Describe("Eventhandler", func() { evt := event.GenericEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Generic(evt, q) Expect(q.Len()).To(Equal(2)) @@ -366,7 +352,6 @@ var _ = Describe("Eventhandler", func() { } evt := event.CreateEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Create(evt, q) Expect(q.Len()).To(Equal(1)) @@ -392,7 +377,6 @@ var _ = Describe("Eventhandler", func() { } evt := event.DeleteEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Delete(evt, q) Expect(q.Len()).To(Equal(1)) @@ -429,9 +413,7 @@ var _ = Describe("Eventhandler", func() { } evt := event.UpdateEvent{ ObjectOld: pod, - MetaOld: pod.GetObjectMeta(), ObjectNew: newPod, - MetaNew: newPod.GetObjectMeta(), } instance.Update(evt, q) Expect(q.Len()).To(Equal(2)) @@ -461,7 +443,6 @@ var _ = Describe("Eventhandler", func() { } evt := event.GenericEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Generic(evt, q) Expect(q.Len()).To(Equal(1)) @@ -492,7 +473,6 @@ var _ = Describe("Eventhandler", func() { } evt := event.CreateEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Create(evt, q) Expect(q.Len()).To(Equal(0)) @@ -514,7 +494,6 @@ var _ = Describe("Eventhandler", func() { } evt := event.CreateEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Create(evt, q) Expect(q.Len()).To(Equal(1)) @@ -539,7 +518,6 @@ var _ = Describe("Eventhandler", func() { } evt := event.CreateEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Create(evt, q) Expect(q.Len()).To(Equal(1)) @@ -558,7 +536,6 @@ var _ = Describe("Eventhandler", func() { Expect(instance.InjectMapper(mapper)).To(Succeed()) evt := event.CreateEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Create(evt, q) Expect(q.Len()).To(Equal(0)) @@ -604,7 +581,6 @@ var _ = Describe("Eventhandler", func() { } evt := event.CreateEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Create(evt, q) Expect(q.Len()).To(Equal(1)) @@ -639,7 +615,6 @@ var _ = Describe("Eventhandler", func() { } evt := event.CreateEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Create(evt, q) Expect(q.Len()).To(Equal(0)) @@ -654,7 +629,6 @@ var _ = Describe("Eventhandler", func() { Expect(instance.InjectMapper(mapper)).To(Succeed()) evt := event.CreateEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Create(evt, q) Expect(q.Len()).To(Equal(0)) @@ -687,7 +661,6 @@ var _ = Describe("Eventhandler", func() { } evt := event.CreateEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Create(evt, q) Expect(q.Len()).To(Equal(3)) @@ -704,7 +677,7 @@ var _ = Describe("Eventhandler", func() { }) }) - Context("with a nil metadata object", func() { + Context("with a nil object", func() { It("should do nothing.", func() { instance := handler.EnqueueRequestForOwner{ OwnerType: &appsv1.ReplicaSet{}, @@ -719,7 +692,7 @@ var _ = Describe("Eventhandler", func() { }, } evt := event.CreateEvent{ - Object: pod, + Object: nil, } instance.Create(evt, q) Expect(q.Len()).To(Equal(0)) @@ -742,7 +715,6 @@ var _ = Describe("Eventhandler", func() { } evt := event.CreateEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Create(evt, q) Expect(q.Len()).To(Equal(0)) @@ -764,7 +736,6 @@ var _ = Describe("Eventhandler", func() { } evt := event.CreateEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Create(evt, q) Expect(q.Len()).To(Equal(0)) @@ -785,7 +756,6 @@ var _ = Describe("Eventhandler", func() { } evt := event.CreateEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Create(evt, q) Expect(q.Len()).To(Equal(0)) @@ -808,7 +778,6 @@ var _ = Describe("Eventhandler", func() { } evt := event.CreateEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Create(evt, q) Expect(q.Len()).To(Equal(0)) @@ -840,7 +809,6 @@ var _ = Describe("Eventhandler", func() { instance := failingFuncs evt := event.CreateEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.CreateFunc = func(evt2 event.CreateEvent, q2 workqueue.RateLimitingInterface) { defer GinkgoRecover() @@ -856,7 +824,6 @@ var _ = Describe("Eventhandler", func() { instance.CreateFunc = nil evt := event.CreateEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Create(evt, q) close(done) @@ -868,9 +835,7 @@ var _ = Describe("Eventhandler", func() { newPod.Namespace = pod.Namespace + "2" evt := event.UpdateEvent{ ObjectOld: pod, - MetaOld: pod.GetObjectMeta(), ObjectNew: newPod, - MetaNew: newPod.GetObjectMeta(), } instance := failingFuncs @@ -890,9 +855,7 @@ var _ = Describe("Eventhandler", func() { newPod.Namespace = pod.Namespace + "2" evt := event.UpdateEvent{ ObjectOld: pod, - MetaOld: pod.GetObjectMeta(), ObjectNew: newPod, - MetaNew: newPod.GetObjectMeta(), } instance.Update(evt, q) close(done) @@ -902,7 +865,6 @@ var _ = Describe("Eventhandler", func() { instance := failingFuncs evt := event.DeleteEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.DeleteFunc = func(evt2 event.DeleteEvent, q2 workqueue.RateLimitingInterface) { defer GinkgoRecover() @@ -918,7 +880,6 @@ var _ = Describe("Eventhandler", func() { instance.DeleteFunc = nil evt := event.DeleteEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Delete(evt, q) close(done) @@ -928,7 +889,6 @@ var _ = Describe("Eventhandler", func() { instance := failingFuncs evt := event.GenericEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.GenericFunc = func(evt2 event.GenericEvent, q2 workqueue.RateLimitingInterface) { defer GinkgoRecover() @@ -944,7 +904,6 @@ var _ = Describe("Eventhandler", func() { instance.GenericFunc = nil evt := event.GenericEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } instance.Generic(evt, q) close(done) diff --git a/pkg/handler/example_test.go b/pkg/handler/example_test.go index 7ead7632cb..b6d96ea2ff 100644 --- a/pkg/handler/example_test.go +++ b/pkg/handler/example_test.go @@ -69,12 +69,12 @@ func ExampleEnqueueRequestsFromMapFunc() { ToRequests: handler.ToRequestsFunc(func(a handler.MapObject) []reconcile.Request { return []reconcile.Request{ {NamespacedName: types.NamespacedName{ - Name: a.Meta.GetName() + "-1", - Namespace: a.Meta.GetNamespace(), + Name: a.Object.GetName() + "-1", + Namespace: a.Object.GetNamespace(), }}, {NamespacedName: types.NamespacedName{ - Name: a.Meta.GetName() + "-2", - Namespace: a.Meta.GetNamespace(), + Name: a.Object.GetName() + "-2", + Namespace: a.Object.GetNamespace(), }}, } }), @@ -92,26 +92,26 @@ func ExampleFuncs() { handler.Funcs{ CreateFunc: func(e event.CreateEvent, q workqueue.RateLimitingInterface) { q.Add(reconcile.Request{NamespacedName: types.NamespacedName{ - Name: e.Meta.GetName(), - Namespace: e.Meta.GetNamespace(), + Name: e.Object.GetName(), + Namespace: e.Object.GetNamespace(), }}) }, UpdateFunc: func(e event.UpdateEvent, q workqueue.RateLimitingInterface) { q.Add(reconcile.Request{NamespacedName: types.NamespacedName{ - Name: e.MetaNew.GetName(), - Namespace: e.MetaNew.GetNamespace(), + Name: e.ObjectNew.GetName(), + Namespace: e.ObjectNew.GetNamespace(), }}) }, DeleteFunc: func(e event.DeleteEvent, q workqueue.RateLimitingInterface) { q.Add(reconcile.Request{NamespacedName: types.NamespacedName{ - Name: e.Meta.GetName(), - Namespace: e.Meta.GetNamespace(), + Name: e.Object.GetName(), + Namespace: e.Object.GetNamespace(), }}) }, GenericFunc: func(e event.GenericEvent, q workqueue.RateLimitingInterface) { q.Add(reconcile.Request{NamespacedName: types.NamespacedName{ - Name: e.Meta.GetName(), - Namespace: e.Meta.GetNamespace(), + Name: e.Object.GetName(), + Namespace: e.Object.GetNamespace(), }}) }, }, diff --git a/pkg/predicate/example_test.go b/pkg/predicate/example_test.go index 4ce1778983..57a1ce7779 100644 --- a/pkg/predicate/example_test.go +++ b/pkg/predicate/example_test.go @@ -27,7 +27,7 @@ var p predicate.Predicate func ExampleFuncs() { p = predicate.Funcs{ UpdateFunc: func(e event.UpdateEvent) bool { - return e.MetaOld.GetGeneration() != e.MetaNew.GetGeneration() + return e.ObjectOld.GetGeneration() != e.ObjectNew.GetGeneration() }, } } diff --git a/pkg/predicate/predicate.go b/pkg/predicate/predicate.go index 66f3e431be..8d9b164c4e 100644 --- a/pkg/predicate/predicate.go +++ b/pkg/predicate/predicate.go @@ -17,9 +17,7 @@ limitations under the License. package predicate import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - + "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" "sigs.k8s.io/controller-runtime/pkg/event" logf "sigs.k8s.io/controller-runtime/pkg/internal/log" ) @@ -97,19 +95,19 @@ func (p Funcs) Generic(e event.GenericEvent) bool { // NewPredicateFuncs returns a predicate funcs that applies the given filter function // on CREATE, UPDATE, DELETE and GENERIC events. For UPDATE events, the filter is applied // to the new object. -func NewPredicateFuncs(filter func(meta metav1.Object, object runtime.Object) bool) Funcs { +func NewPredicateFuncs(filter func(object controllerutil.Object) bool) Funcs { return Funcs{ CreateFunc: func(e event.CreateEvent) bool { - return filter(e.Meta, e.Object) + return filter(e.Object) }, UpdateFunc: func(e event.UpdateEvent) bool { - return filter(e.MetaNew, e.ObjectNew) + return filter(e.ObjectNew) }, DeleteFunc: func(e event.DeleteEvent) bool { - return filter(e.Meta, e.Object) + return filter(e.Object) }, GenericFunc: func(e event.GenericEvent) bool { - return filter(e.Meta, e.Object) + return filter(e.Object) }, } } @@ -121,7 +119,7 @@ type ResourceVersionChangedPredicate struct { // Update implements default UpdateEvent filter for validating resource version change func (ResourceVersionChangedPredicate) Update(e event.UpdateEvent) bool { - if e.MetaOld == nil { + if e.ObjectOld == nil { log.Error(nil, "UpdateEvent has no old metadata", "event", e) return false } @@ -133,11 +131,11 @@ func (ResourceVersionChangedPredicate) Update(e event.UpdateEvent) bool { log.Error(nil, "GenericEvent has no new runtime object for update", "event", e) return false } - if e.MetaNew == nil { + if e.ObjectNew == nil { log.Error(nil, "UpdateEvent has no new metadata", "event", e) return false } - return e.MetaNew.GetResourceVersion() != e.MetaOld.GetResourceVersion() + return e.ObjectNew.GetResourceVersion() != e.ObjectOld.GetResourceVersion() } // GenerationChangedPredicate implements a default update predicate function on Generation change. @@ -162,7 +160,7 @@ type GenerationChangedPredicate struct { // Update implements default UpdateEvent filter for validating generation change func (GenerationChangedPredicate) Update(e event.UpdateEvent) bool { - if e.MetaOld == nil { + if e.ObjectOld == nil { log.Error(nil, "Update event has no old metadata", "event", e) return false } @@ -174,11 +172,11 @@ func (GenerationChangedPredicate) Update(e event.UpdateEvent) bool { log.Error(nil, "Update event has no new runtime object for update", "event", e) return false } - if e.MetaNew == nil { + if e.ObjectNew == nil { log.Error(nil, "Update event has no new metadata", "event", e) return false } - return e.MetaNew.GetGeneration() != e.MetaOld.GetGeneration() + return e.ObjectNew.GetGeneration() != e.ObjectOld.GetGeneration() } // And returns a composite predicate that implements a logical AND of the predicates passed to it. diff --git a/pkg/predicate/predicate_test.go b/pkg/predicate/predicate_test.go index a88afe5b88..efd19604d0 100644 --- a/pkg/predicate/predicate_test.go +++ b/pkg/predicate/predicate_test.go @@ -21,8 +21,8 @@ import ( . "github.com/onsi/gomega" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" + "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" "sigs.k8s.io/controller-runtime/pkg/event" "sigs.k8s.io/controller-runtime/pkg/predicate" ) @@ -63,19 +63,16 @@ var _ = Describe("Predicate", func() { instance := failingFuncs instance.CreateFunc = func(evt event.CreateEvent) bool { defer GinkgoRecover() - Expect(evt.Meta).To(Equal(pod.GetObjectMeta())) Expect(evt.Object).To(Equal(pod)) return false } evt := event.CreateEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } Expect(instance.Create(evt)).To(BeFalse()) instance.CreateFunc = func(evt event.CreateEvent) bool { defer GinkgoRecover() - Expect(evt.Meta).To(Equal(pod.GetObjectMeta())) Expect(evt.Object).To(Equal(pod)) return true } @@ -94,25 +91,19 @@ var _ = Describe("Predicate", func() { instance := failingFuncs instance.UpdateFunc = func(evt event.UpdateEvent) bool { defer GinkgoRecover() - Expect(evt.MetaOld).To(Equal(pod.GetObjectMeta())) Expect(evt.ObjectOld).To(Equal(pod)) - Expect(evt.MetaNew).To(Equal(newPod.GetObjectMeta())) Expect(evt.ObjectNew).To(Equal(newPod)) return false } evt := event.UpdateEvent{ ObjectOld: pod, - MetaOld: pod.GetObjectMeta(), ObjectNew: newPod, - MetaNew: newPod.GetObjectMeta(), } Expect(instance.Update(evt)).To(BeFalse()) instance.UpdateFunc = func(evt event.UpdateEvent) bool { defer GinkgoRecover() - Expect(evt.MetaOld).To(Equal(pod.GetObjectMeta())) Expect(evt.ObjectOld).To(Equal(pod)) - Expect(evt.MetaNew).To(Equal(newPod.GetObjectMeta())) Expect(evt.ObjectNew).To(Equal(newPod)) return true } @@ -127,19 +118,16 @@ var _ = Describe("Predicate", func() { instance := failingFuncs instance.DeleteFunc = func(evt event.DeleteEvent) bool { defer GinkgoRecover() - Expect(evt.Meta).To(Equal(pod.GetObjectMeta())) Expect(evt.Object).To(Equal(pod)) return false } evt := event.DeleteEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } Expect(instance.Delete(evt)).To(BeFalse()) instance.DeleteFunc = func(evt event.DeleteEvent) bool { defer GinkgoRecover() - Expect(evt.Meta).To(Equal(pod.GetObjectMeta())) Expect(evt.Object).To(Equal(pod)) return true } @@ -154,19 +142,16 @@ var _ = Describe("Predicate", func() { instance := failingFuncs instance.GenericFunc = func(evt event.GenericEvent) bool { defer GinkgoRecover() - Expect(evt.Meta).To(Equal(pod.GetObjectMeta())) Expect(evt.Object).To(Equal(pod)) return false } evt := event.GenericEvent{ Object: pod, - Meta: pod.GetObjectMeta(), } Expect(instance.Generic(evt)).To(BeFalse()) instance.GenericFunc = func(evt event.GenericEvent) bool { defer GinkgoRecover() - Expect(evt.Meta).To(Equal(pod.GetObjectMeta())) Expect(evt.Object).To(Equal(pod)) return true } @@ -191,7 +176,6 @@ var _ = Describe("Predicate", func() { }} failEvnt := event.UpdateEvent{ - MetaNew: new.GetObjectMeta(), ObjectNew: new, } Expect(instance.Create(event.CreateEvent{})).Should(BeTrue()) @@ -211,7 +195,6 @@ var _ = Describe("Predicate", func() { }} failEvnt := event.UpdateEvent{ - MetaOld: old.GetObjectMeta(), ObjectOld: old, } Expect(instance.Create(event.CreateEvent{})).Should(BeTrue()) @@ -239,9 +222,7 @@ var _ = Describe("Predicate", func() { }} failEvnt := event.UpdateEvent{ - MetaOld: old.GetObjectMeta(), ObjectOld: old, - MetaNew: new.GetObjectMeta(), ObjectNew: new, } Expect(instance.Create(event.CreateEvent{})).Should(BeTrue()) @@ -268,9 +249,7 @@ var _ = Describe("Predicate", func() { ResourceVersion: "v2", }} passEvt := event.UpdateEvent{ - MetaOld: old.GetObjectMeta(), ObjectOld: old, - MetaNew: new.GetObjectMeta(), ObjectNew: new, } Expect(instance.Create(event.CreateEvent{})).Should(BeTrue()) @@ -297,9 +276,9 @@ var _ = Describe("Predicate", func() { ResourceVersion: "v1", }} - failEvt1 := event.UpdateEvent{MetaOld: old.GetObjectMeta(), ObjectOld: old, MetaNew: new.GetObjectMeta()} - failEvt2 := event.UpdateEvent{MetaOld: old.GetObjectMeta(), MetaNew: new.GetObjectMeta(), ObjectNew: new} - failEvt3 := event.UpdateEvent{MetaOld: old.GetObjectMeta(), ObjectOld: old, ObjectNew: new} + failEvt1 := event.UpdateEvent{ObjectOld: old} + failEvt2 := event.UpdateEvent{ObjectNew: new} + failEvt3 := event.UpdateEvent{ObjectOld: old, ObjectNew: new} Expect(instance.Create(event.CreateEvent{})).Should(BeTrue()) Expect(instance.Delete(event.DeleteEvent{})).Should(BeTrue()) Expect(instance.Generic(event.GenericEvent{})).Should(BeTrue()) @@ -323,7 +302,6 @@ var _ = Describe("Predicate", func() { }} failEvnt := event.UpdateEvent{ - MetaNew: new.GetObjectMeta(), ObjectNew: new, } Expect(instance.Create(event.CreateEvent{})).To(BeTrue()) @@ -343,7 +321,6 @@ var _ = Describe("Predicate", func() { }} failEvnt := event.UpdateEvent{ - MetaOld: old.GetObjectMeta(), ObjectOld: old, } Expect(instance.Create(event.CreateEvent{})).To(BeTrue()) @@ -370,9 +347,7 @@ var _ = Describe("Predicate", func() { }} failEvnt := event.UpdateEvent{ - MetaOld: old.GetObjectMeta(), ObjectOld: old, - MetaNew: new.GetObjectMeta(), ObjectNew: new, } Expect(instance.Create(event.CreateEvent{})).To(BeTrue()) @@ -398,9 +373,7 @@ var _ = Describe("Predicate", func() { Generation: 2, }} passEvt := event.UpdateEvent{ - MetaOld: old.GetObjectMeta(), ObjectOld: old, - MetaNew: new.GetObjectMeta(), ObjectNew: new, } Expect(instance.Create(event.CreateEvent{})).To(BeTrue()) @@ -427,9 +400,9 @@ var _ = Describe("Predicate", func() { Generation: 1, }} - failEvt1 := event.UpdateEvent{MetaOld: old.GetObjectMeta(), ObjectOld: old, MetaNew: new.GetObjectMeta()} - failEvt2 := event.UpdateEvent{MetaOld: old.GetObjectMeta(), MetaNew: new.GetObjectMeta(), ObjectNew: new} - failEvt3 := event.UpdateEvent{MetaOld: old.GetObjectMeta(), ObjectOld: old, ObjectNew: new} + failEvt1 := event.UpdateEvent{ObjectOld: old} + failEvt2 := event.UpdateEvent{ObjectNew: new} + failEvt3 := event.UpdateEvent{ObjectOld: old, ObjectNew: new} Expect(instance.Create(event.CreateEvent{})).To(BeTrue()) Expect(instance.Delete(event.DeleteEvent{})).To(BeTrue()) Expect(instance.Generic(event.GenericEvent{})).To(BeTrue()) @@ -495,9 +468,9 @@ var _ = Describe("Predicate", func() { }) Describe("NewPredicateFuncs with a namespace filter function", func() { - byNamespaceFilter := func(namespace string) func(m metav1.Object, object runtime.Object) bool { - return func(m metav1.Object, object runtime.Object) bool { - return m.GetNamespace() == namespace + byNamespaceFilter := func(namespace string) func(object controllerutil.Object) bool { + return func(object controllerutil.Object) bool { + return object.GetNamespace() == namespace } } byNamespaceFuncs := predicate.NewPredicateFuncs(byNamespaceFilter("biz")) @@ -514,10 +487,10 @@ var _ = Describe("Predicate", func() { Name: "baz", Namespace: "biz", }} - passEvt1 := event.UpdateEvent{MetaOld: old.GetObjectMeta(), ObjectOld: old, MetaNew: new.GetObjectMeta()} - Expect(byNamespaceFuncs.Create(event.CreateEvent{Meta: new.GetObjectMeta(), Object: new})).To(BeTrue()) - Expect(byNamespaceFuncs.Delete(event.DeleteEvent{Meta: old.GetObjectMeta(), Object: old})).To(BeTrue()) - Expect(byNamespaceFuncs.Generic(event.GenericEvent{Meta: new.GetObjectMeta(), Object: new})).To(BeTrue()) + passEvt1 := event.UpdateEvent{ObjectOld: old, ObjectNew: new} + Expect(byNamespaceFuncs.Create(event.CreateEvent{Object: new})).To(BeTrue()) + Expect(byNamespaceFuncs.Delete(event.DeleteEvent{Object: old})).To(BeTrue()) + Expect(byNamespaceFuncs.Generic(event.GenericEvent{Object: new})).To(BeTrue()) Expect(byNamespaceFuncs.Update(passEvt1)).To(BeTrue()) }) }) @@ -535,10 +508,10 @@ var _ = Describe("Predicate", func() { Name: "baz", Namespace: "biz", }} - failEvt1 := event.UpdateEvent{MetaOld: old.GetObjectMeta(), ObjectOld: old, MetaNew: new.GetObjectMeta()} - Expect(byNamespaceFuncs.Create(event.CreateEvent{Meta: new.GetObjectMeta(), Object: new})).To(BeFalse()) - Expect(byNamespaceFuncs.Delete(event.DeleteEvent{Meta: new.GetObjectMeta(), Object: new})).To(BeFalse()) - Expect(byNamespaceFuncs.Generic(event.GenericEvent{Meta: new.GetObjectMeta(), Object: new})).To(BeFalse()) + failEvt1 := event.UpdateEvent{ObjectOld: old, ObjectNew: new} + Expect(byNamespaceFuncs.Create(event.CreateEvent{Object: new})).To(BeFalse()) + Expect(byNamespaceFuncs.Delete(event.DeleteEvent{Object: new})).To(BeFalse()) + Expect(byNamespaceFuncs.Generic(event.GenericEvent{Object: new})).To(BeFalse()) Expect(byNamespaceFuncs.Update(failEvt1)).To(BeFalse()) }) }) diff --git a/pkg/source/internal/eventsource.go b/pkg/source/internal/eventsource.go index e5963079de..df2fb515c6 100644 --- a/pkg/source/internal/eventsource.go +++ b/pkg/source/internal/eventsource.go @@ -19,15 +19,13 @@ package internal import ( "fmt" - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/workqueue" "sigs.k8s.io/controller-runtime/pkg/event" "sigs.k8s.io/controller-runtime/pkg/handler" logf "sigs.k8s.io/controller-runtime/pkg/internal/log" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" "sigs.k8s.io/controller-runtime/pkg/predicate" ) @@ -46,20 +44,11 @@ type EventHandler struct { func (e EventHandler) OnAdd(obj interface{}) { c := event.CreateEvent{} - // Pull metav1.Object out of the object - if o, err := meta.Accessor(obj); err == nil { - c.Meta = o - } else { - log.Error(err, "OnAdd missing Meta", - "object", obj, "type", fmt.Sprintf("%T", obj)) - return - } - - // Pull the runtime.Object out of the object - if o, ok := obj.(runtime.Object); ok { + // Pull Object out of the object + if o, ok := obj.(controllerutil.Object); ok { c.Object = o } else { - log.Error(nil, "OnAdd missing runtime.Object", + log.Error(nil, "OnAdd missing Object", "object", obj, "type", fmt.Sprintf("%T", obj)) return } @@ -78,17 +67,7 @@ func (e EventHandler) OnAdd(obj interface{}) { func (e EventHandler) OnUpdate(oldObj, newObj interface{}) { u := event.UpdateEvent{} - // Pull metav1.Object out of the object - if o, err := meta.Accessor(oldObj); err == nil { - u.MetaOld = o - } else { - log.Error(err, "OnUpdate missing MetaOld", - "object", oldObj, "type", fmt.Sprintf("%T", oldObj)) - return - } - - // Pull the runtime.Object out of the object - if o, ok := oldObj.(runtime.Object); ok { + if o, ok := oldObj.(controllerutil.Object); ok { u.ObjectOld = o } else { log.Error(nil, "OnUpdate missing ObjectOld", @@ -96,21 +75,12 @@ func (e EventHandler) OnUpdate(oldObj, newObj interface{}) { return } - // Pull metav1.Object out of the object - if o, err := meta.Accessor(newObj); err == nil { - u.MetaNew = o - } else { - log.Error(err, "OnUpdate missing MetaNew", - "object", newObj, "type", fmt.Sprintf("%T", newObj)) - return - } - - // Pull the runtime.Object out of the object - if o, ok := newObj.(runtime.Object); ok { + // Pull Object out of the object + if o, ok := newObj.(controllerutil.Object); ok { u.ObjectNew = o } else { log.Error(nil, "OnUpdate missing ObjectNew", - "object", oldObj, "type", fmt.Sprintf("%T", oldObj)) + "object", newObj, "type", fmt.Sprintf("%T", newObj)) return } @@ -134,7 +104,7 @@ func (e EventHandler) OnDelete(obj interface{}) { // This should never happen if we aren't missing events, which we have concluded that we are not // and made decisions off of this belief. Maybe this shouldn't be here? var ok bool - if _, ok = obj.(metav1.Object); !ok { + if _, ok = obj.(controllerutil.Object); !ok { // If the object doesn't have Metadata, assume it is a tombstone object of type DeletedFinalStateUnknown tombstone, ok := obj.(cache.DeletedFinalStateUnknown) if !ok { @@ -148,20 +118,11 @@ func (e EventHandler) OnDelete(obj interface{}) { obj = tombstone.Obj } - // Pull metav1.Object out of the object - if o, err := meta.Accessor(obj); err == nil { - d.Meta = o - } else { - log.Error(err, "OnDelete missing Meta", - "object", obj, "type", fmt.Sprintf("%T", obj)) - return - } - - // Pull the runtime.Object out of the object - if o, ok := obj.(runtime.Object); ok { + // Pull Object out of the object + if o, ok := obj.(controllerutil.Object); ok { d.Object = o } else { - log.Error(nil, "OnDelete missing runtime.Object", + log.Error(nil, "OnDelete missing Object", "object", obj, "type", fmt.Sprintf("%T", obj)) return } diff --git a/pkg/source/internal/internal_test.go b/pkg/source/internal/internal_test.go index 183c0c7371..7b9ab7a223 100644 --- a/pkg/source/internal/internal_test.go +++ b/pkg/source/internal/internal_test.go @@ -19,7 +19,6 @@ package internal_test import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" - "k8s.io/apimachinery/pkg/api/meta" "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/workqueue" "sigs.k8s.io/controller-runtime/pkg/event" @@ -96,9 +95,6 @@ var _ = Describe("Internal", func() { funcs.CreateFunc = func(evt event.CreateEvent, q workqueue.RateLimitingInterface) { defer GinkgoRecover() Expect(q).To(Equal(instance.Queue)) - m, err := meta.Accessor(pod) - Expect(err).NotTo(HaveOccurred()) - Expect(evt.Meta).To(Equal(m)) Expect(evt.Object).To(Equal(pod)) } instance.OnAdd(pod) @@ -167,14 +163,7 @@ var _ = Describe("Internal", func() { defer GinkgoRecover() Expect(q).To(Equal(instance.Queue)) - m, err := meta.Accessor(pod) - Expect(err).NotTo(HaveOccurred()) - Expect(evt.MetaOld).To(Equal(m)) Expect(evt.ObjectOld).To(Equal(pod)) - - m, err = meta.Accessor(newPod) - Expect(err).NotTo(HaveOccurred()) - Expect(evt.MetaNew).To(Equal(m)) Expect(evt.ObjectNew).To(Equal(newPod)) } instance.OnUpdate(pod, newPod) @@ -245,9 +234,6 @@ var _ = Describe("Internal", func() { defer GinkgoRecover() Expect(q).To(Equal(instance.Queue)) - m, err := meta.Accessor(pod) - Expect(err).NotTo(HaveOccurred()) - Expect(evt.Meta).To(Equal(m)) Expect(evt.Object).To(Equal(pod)) } instance.OnDelete(pod) @@ -319,9 +305,6 @@ var _ = Describe("Internal", func() { funcs.DeleteFunc = func(evt event.DeleteEvent, q workqueue.RateLimitingInterface) { defer GinkgoRecover() Expect(q).To(Equal(instance.Queue)) - m, err := meta.Accessor(pod) - Expect(err).NotTo(HaveOccurred()) - Expect(evt.Meta).To(Equal(m)) Expect(evt.Object).To(Equal(pod)) } diff --git a/pkg/source/source_integration_test.go b/pkg/source/source_integration_test.go index 911ff38d81..9d5d74f86b 100644 --- a/pkg/source/source_integration_test.go +++ b/pkg/source/source_integration_test.go @@ -145,14 +145,12 @@ var _ = Describe("Source", func() { evt := <-c1 createEvt, ok := evt.(event.CreateEvent) Expect(ok).To(BeTrue(), fmt.Sprintf("expect %T to be %T", evt, event.CreateEvent{})) - Expect(createEvt.Meta).To(Equal(created)) Expect(createEvt.Object).To(Equal(created)) // Check second CreateEvent evt = <-c2 createEvt, ok = evt.(event.CreateEvent) Expect(ok).To(BeTrue(), fmt.Sprintf("expect %T to be %T", evt, event.CreateEvent{})) - Expect(createEvt.Meta).To(Equal(created)) Expect(createEvt.Object).To(Equal(created)) By("Updating a Deployment and expecting the UpdateEvent.") @@ -166,10 +164,8 @@ var _ = Describe("Source", func() { updateEvt, ok := evt.(event.UpdateEvent) Expect(ok).To(BeTrue(), fmt.Sprintf("expect %T to be %T", evt, event.UpdateEvent{})) - Expect(updateEvt.MetaNew).To(Equal(updated)) Expect(updateEvt.ObjectNew).To(Equal(updated)) - Expect(updateEvt.MetaOld).To(Equal(created)) Expect(updateEvt.ObjectOld).To(Equal(created)) // Check second UpdateEvent @@ -177,10 +173,8 @@ var _ = Describe("Source", func() { updateEvt, ok = evt.(event.UpdateEvent) Expect(ok).To(BeTrue(), fmt.Sprintf("expect %T to be %T", evt, event.UpdateEvent{})) - Expect(updateEvt.MetaNew).To(Equal(updated)) Expect(updateEvt.ObjectNew).To(Equal(updated)) - Expect(updateEvt.MetaOld).To(Equal(created)) Expect(updateEvt.ObjectOld).To(Equal(created)) By("Deleting a Deployment and expecting the Delete.") @@ -192,15 +186,13 @@ var _ = Describe("Source", func() { evt = <-c1 deleteEvt, ok := evt.(event.DeleteEvent) Expect(ok).To(BeTrue(), fmt.Sprintf("expect %T to be %T", evt, event.DeleteEvent{})) - deleteEvt.Meta.SetResourceVersion("") - Expect(deleteEvt.Meta).To(Equal(deleted)) + deleteEvt.Object.SetResourceVersion("") Expect(deleteEvt.Object).To(Equal(deleted)) evt = <-c2 deleteEvt, ok = evt.(event.DeleteEvent) Expect(ok).To(BeTrue(), fmt.Sprintf("expect %T to be %T", evt, event.DeleteEvent{})) - deleteEvt.Meta.SetResourceVersion("") - Expect(deleteEvt.Meta).To(Equal(deleted)) + deleteEvt.Object.SetResourceVersion("") Expect(deleteEvt.Object).To(Equal(deleted)) close(done) @@ -271,7 +263,6 @@ var _ = Describe("Source", func() { Expect(err).NotTo(HaveOccurred()) Expect(q2).To(BeIdenticalTo(q)) - Expect(evt.Meta).To(Equal(rs)) Expect(evt.Object).To(Equal(rs)) close(c) }, @@ -316,10 +307,8 @@ var _ = Describe("Source", func() { Expect(err).NotTo(HaveOccurred()) Expect(q2).To(Equal(q)) - Expect(evt.MetaOld).To(Equal(rs)) Expect(evt.ObjectOld).To(Equal(rs)) - Expect(evt.MetaNew).To(Equal(rs2)) Expect(evt.ObjectNew).To(Equal(rs2)) close(c) @@ -354,7 +343,7 @@ var _ = Describe("Source", func() { DeleteFunc: func(evt event.DeleteEvent, q2 workqueue.RateLimitingInterface) { defer GinkgoRecover() Expect(q2).To(Equal(q)) - Expect(evt.Meta.GetName()).To(Equal(rs.Name)) + Expect(evt.Object.GetName()).To(Equal(rs.Name)) close(c) }, GenericFunc: func(event.GenericEvent, workqueue.RateLimitingInterface) { diff --git a/pkg/source/source_test.go b/pkg/source/source_test.go index 75016cb0ee..6c6dd718d3 100644 --- a/pkg/source/source_test.go +++ b/pkg/source/source_test.go @@ -72,7 +72,6 @@ var _ = Describe("Source", func() { CreateFunc: func(evt event.CreateEvent, q2 workqueue.RateLimitingInterface) { defer GinkgoRecover() Expect(q2).To(Equal(q)) - Expect(evt.Meta).To(Equal(p)) Expect(evt.Object).To(Equal(p)) close(c) }, @@ -117,10 +116,8 @@ var _ = Describe("Source", func() { UpdateFunc: func(evt event.UpdateEvent, q2 workqueue.RateLimitingInterface) { defer GinkgoRecover() Expect(q2).To(BeIdenticalTo(q)) - Expect(evt.MetaOld).To(Equal(p)) Expect(evt.ObjectOld).To(Equal(p)) - Expect(evt.MetaNew).To(Equal(p2)) Expect(evt.ObjectNew).To(Equal(p2)) close(c) @@ -171,7 +168,6 @@ var _ = Describe("Source", func() { DeleteFunc: func(evt event.DeleteEvent, q2 workqueue.RateLimitingInterface) { defer GinkgoRecover() Expect(q2).To(BeIdenticalTo(q)) - Expect(evt.Meta).To(Equal(p)) Expect(evt.Object).To(Equal(p)) close(c) }, @@ -306,7 +302,6 @@ var _ = Describe("Source", func() { } evt := event.GenericEvent{ Object: p, - Meta: p, } // Event that should be filtered out by predicates invalidEvt := event.GenericEvent{} @@ -314,7 +309,7 @@ var _ = Describe("Source", func() { // Predicate to filter out empty event prct := predicate.Funcs{ GenericFunc: func(e event.GenericEvent) bool { - return e.Object != nil && e.Meta != nil + return e.Object != nil }, } @@ -339,7 +334,6 @@ var _ = Describe("Source", func() { // The empty event should have been filtered out by the predicates, // and will not be passed to the handler. Expect(q2).To(BeIdenticalTo(q)) - Expect(evt.Meta).To(Equal(p)) Expect(evt.Object).To(Equal(p)) close(c) }, @@ -436,7 +430,6 @@ var _ = Describe("Source", func() { } evt := event.GenericEvent{ Object: p, - Meta: p, } var resEvent1, resEvent2 event.GenericEvent @@ -462,7 +455,6 @@ var _ = Describe("Source", func() { GenericFunc: func(evt event.GenericEvent, q2 workqueue.RateLimitingInterface) { defer GinkgoRecover() Expect(q2).To(BeIdenticalTo(q)) - Expect(evt.Meta).To(Equal(p)) Expect(evt.Object).To(Equal(p)) resEvent1 = evt close(c1) @@ -486,7 +478,6 @@ var _ = Describe("Source", func() { GenericFunc: func(evt event.GenericEvent, q2 workqueue.RateLimitingInterface) { defer GinkgoRecover() Expect(q2).To(BeIdenticalTo(q)) - Expect(evt.Meta).To(Equal(p)) Expect(evt.Object).To(Equal(p)) resEvent2 = evt close(c2)