Skip to content

Commit f862602

Browse files
committed
providers/namespace: Implement AddEventHandlerWithOptions on ScopedInformer
On-behalf-of: SAP <marvin.beckers@sap.com> Signed-off-by: Marvin Beckers <marvin@kubermatic.com>
1 parent 3f7eaf6 commit f862602

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

examples/namespace/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ func run(ctx context.Context, log logr.Logger, kubeconfig string) error {
136136
}
137137

138138
cm := &corev1.ConfigMap{}
139-
if err := cl.GetClient().Get(ctx, req.Request.NamespacedName, cm); err != nil {
139+
if err := cl.GetClient().Get(ctx, req.NamespacedName, cm); err != nil {
140140
if apierrors.IsNotFound(err) {
141141
return reconcile.Result{}, nil
142142
}

providers/namespace/cache.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,12 @@ func (i *ScopedInformer) AddEventHandler(handler toolscache.ResourceEventHandler
146146

147147
// AddEventHandlerWithResyncPeriod adds an event handler to the informer with a resync period.
148148
func (i *ScopedInformer) AddEventHandlerWithResyncPeriod(handler toolscache.ResourceEventHandler, resyncPeriod time.Duration) (toolscache.ResourceEventHandlerRegistration, error) {
149-
return i.Informer.AddEventHandlerWithResyncPeriod(toolscache.ResourceEventHandlerDetailedFuncs{
149+
return i.AddEventHandlerWithOptions(handler, toolscache.HandlerOptions{ResyncPeriod: &resyncPeriod})
150+
}
151+
152+
// AddEventHandlerWithOptions adds an event handler to the informer, passing along options to configure its behaviour.
153+
func (i *ScopedInformer) AddEventHandlerWithOptions(handler toolscache.ResourceEventHandler, options toolscache.HandlerOptions) (toolscache.ResourceEventHandlerRegistration, error) {
154+
return i.Informer.AddEventHandlerWithOptions(toolscache.ResourceEventHandlerDetailedFuncs{
150155
AddFunc: func(obj interface{}, isInInitialList bool) {
151156
cobj := obj.(client.Object)
152157
if cobj.GetNamespace() == i.clusterName {
@@ -176,7 +181,7 @@ func (i *ScopedInformer) AddEventHandlerWithResyncPeriod(handler toolscache.Reso
176181
handler.OnDelete(cobj)
177182
}
178183
},
179-
}, resyncPeriod)
184+
}, options)
180185
}
181186

182187
// AddIndexers adds indexers to the informer.

providers/namespace/provider_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package namespace
1919
import (
2020
"context"
2121
"errors"
22+
"fmt"
2223
"strconv"
2324

2425
"golang.org/x/sync/errgroup"
@@ -83,7 +84,7 @@ var _ = Describe("Provider Namespace", Ordered, func() {
8384

8485
cl, err := mgr.GetCluster(ctx, req.ClusterName)
8586
if err != nil {
86-
return reconcile.Result{}, err
87+
return reconcile.Result{}, fmt.Errorf("failed to get cluster: %w", err)
8788
}
8889

8990
// Feed the animal.
@@ -92,15 +93,15 @@ var _ = Describe("Provider Namespace", Ordered, func() {
9293
if apierrors.IsNotFound(err) {
9394
return reconcile.Result{}, nil
9495
}
95-
return reconcile.Result{}, err
96+
return reconcile.Result{}, fmt.Errorf("failed to get configmap: %w", err)
9697
}
9798
if cm.GetLabels()["type"] != "animal" {
9899
return reconcile.Result{}, nil
99100
}
100101

101102
cm.Data = map[string]string{"stomach": "food"}
102103
if err := cl.GetClient().Update(ctx, cm); err != nil {
103-
return reconcile.Result{}, err
104+
return reconcile.Result{}, fmt.Errorf("failed to update configmap: %w", err)
104105
}
105106

106107
return ctrl.Result{}, nil

0 commit comments

Comments
 (0)