/
event_handlers.go
125 lines (105 loc) · 4.83 KB
/
event_handlers.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
// Code generated by skv2. DO NOT EDIT.
//go:generate mockgen -source ./event_handlers.go -destination mocks/event_handlers.go
// Definitions for the Kubernetes Controllers
package controller
import (
"context"
apiextensions_k8s_io_v1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
"github.com/pkg/errors"
"github.com/solo-io/skv2/pkg/events"
"k8s.io/apimachinery/pkg/runtime"
"sigs.k8s.io/controller-runtime/pkg/manager"
"sigs.k8s.io/controller-runtime/pkg/predicate"
)
// Handle events for the CustomResourceDefinition Resource
// DEPRECATED: Prefer reconciler pattern.
type CustomResourceDefinitionEventHandler interface {
CreateCustomResourceDefinition(obj *apiextensions_k8s_io_v1beta1.CustomResourceDefinition) error
UpdateCustomResourceDefinition(old, new *apiextensions_k8s_io_v1beta1.CustomResourceDefinition) error
DeleteCustomResourceDefinition(obj *apiextensions_k8s_io_v1beta1.CustomResourceDefinition) error
GenericCustomResourceDefinition(obj *apiextensions_k8s_io_v1beta1.CustomResourceDefinition) error
}
type CustomResourceDefinitionEventHandlerFuncs struct {
OnCreate func(obj *apiextensions_k8s_io_v1beta1.CustomResourceDefinition) error
OnUpdate func(old, new *apiextensions_k8s_io_v1beta1.CustomResourceDefinition) error
OnDelete func(obj *apiextensions_k8s_io_v1beta1.CustomResourceDefinition) error
OnGeneric func(obj *apiextensions_k8s_io_v1beta1.CustomResourceDefinition) error
}
func (f *CustomResourceDefinitionEventHandlerFuncs) CreateCustomResourceDefinition(obj *apiextensions_k8s_io_v1beta1.CustomResourceDefinition) error {
if f.OnCreate == nil {
return nil
}
return f.OnCreate(obj)
}
func (f *CustomResourceDefinitionEventHandlerFuncs) DeleteCustomResourceDefinition(obj *apiextensions_k8s_io_v1beta1.CustomResourceDefinition) error {
if f.OnDelete == nil {
return nil
}
return f.OnDelete(obj)
}
func (f *CustomResourceDefinitionEventHandlerFuncs) UpdateCustomResourceDefinition(objOld, objNew *apiextensions_k8s_io_v1beta1.CustomResourceDefinition) error {
if f.OnUpdate == nil {
return nil
}
return f.OnUpdate(objOld, objNew)
}
func (f *CustomResourceDefinitionEventHandlerFuncs) GenericCustomResourceDefinition(obj *apiextensions_k8s_io_v1beta1.CustomResourceDefinition) error {
if f.OnGeneric == nil {
return nil
}
return f.OnGeneric(obj)
}
type CustomResourceDefinitionEventWatcher interface {
AddEventHandler(ctx context.Context, h CustomResourceDefinitionEventHandler, predicates ...predicate.Predicate) error
}
type customResourceDefinitionEventWatcher struct {
watcher events.EventWatcher
}
func NewCustomResourceDefinitionEventWatcher(name string, mgr manager.Manager) CustomResourceDefinitionEventWatcher {
return &customResourceDefinitionEventWatcher{
watcher: events.NewWatcher(name, mgr, &apiextensions_k8s_io_v1beta1.CustomResourceDefinition{}),
}
}
func (c *customResourceDefinitionEventWatcher) AddEventHandler(ctx context.Context, h CustomResourceDefinitionEventHandler, predicates ...predicate.Predicate) error {
handler := genericCustomResourceDefinitionHandler{handler: h}
if err := c.watcher.Watch(ctx, handler, predicates...); err != nil {
return err
}
return nil
}
// genericCustomResourceDefinitionHandler implements a generic events.EventHandler
type genericCustomResourceDefinitionHandler struct {
handler CustomResourceDefinitionEventHandler
}
func (h genericCustomResourceDefinitionHandler) Create(object runtime.Object) error {
obj, ok := object.(*apiextensions_k8s_io_v1beta1.CustomResourceDefinition)
if !ok {
return errors.Errorf("internal error: CustomResourceDefinition handler received event for %T", object)
}
return h.handler.CreateCustomResourceDefinition(obj)
}
func (h genericCustomResourceDefinitionHandler) Delete(object runtime.Object) error {
obj, ok := object.(*apiextensions_k8s_io_v1beta1.CustomResourceDefinition)
if !ok {
return errors.Errorf("internal error: CustomResourceDefinition handler received event for %T", object)
}
return h.handler.DeleteCustomResourceDefinition(obj)
}
func (h genericCustomResourceDefinitionHandler) Update(old, new runtime.Object) error {
objOld, ok := old.(*apiextensions_k8s_io_v1beta1.CustomResourceDefinition)
if !ok {
return errors.Errorf("internal error: CustomResourceDefinition handler received event for %T", old)
}
objNew, ok := new.(*apiextensions_k8s_io_v1beta1.CustomResourceDefinition)
if !ok {
return errors.Errorf("internal error: CustomResourceDefinition handler received event for %T", new)
}
return h.handler.UpdateCustomResourceDefinition(objOld, objNew)
}
func (h genericCustomResourceDefinitionHandler) Generic(object runtime.Object) error {
obj, ok := object.(*apiextensions_k8s_io_v1beta1.CustomResourceDefinition)
if !ok {
return errors.Errorf("internal error: CustomResourceDefinition handler received event for %T", object)
}
return h.handler.GenericCustomResourceDefinition(obj)
}