@@ -5,17 +5,20 @@ import (
5
5
"strconv"
6
6
7
7
"github.com/layer5io/meshkit/broker"
8
+ internalconfig "github.com/layer5io/meshsync/internal/config"
8
9
"github.com/layer5io/meshsync/pkg/model"
9
-
10
10
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
11
11
"k8s.io/client-go/tools/cache"
12
12
)
13
13
14
- func (c * ResourceWatcher ) startWatching (s cache.SharedIndexInformer ) {
14
+ func (ri * RegisterInformer ) registerHandlers (s cache.SharedIndexInformer ) {
15
15
handlers := cache.ResourceEventHandlerFuncs {
16
16
AddFunc : func (obj interface {}) {
17
- c .log .Info ("received add event for:" , obj .(* unstructured.Unstructured ).GetName ())
18
- c .publishItem (obj .(* unstructured.Unstructured ), broker .Add )
17
+ err := ri .publishItem (obj .(* unstructured.Unstructured ), broker .Add , ri .config )
18
+ if err != nil {
19
+ ri .log .Error (err )
20
+ }
21
+ ri .log .Info ("Received ADD event for: " , obj .(* unstructured.Unstructured ).GetName (), "/" , obj .(* unstructured.Unstructured ).GetNamespace (), " of kind: " , obj .(* unstructured.Unstructured ).GroupVersionKind ().Kind )
19
22
},
20
23
UpdateFunc : func (oldObj , obj interface {}) {
21
24
oldObjCasted := oldObj .(* unstructured.Unstructured )
@@ -25,12 +28,15 @@ func (c *ResourceWatcher) startWatching(s cache.SharedIndexInformer) {
25
28
newRV , _ := strconv .ParseInt (oldObjCasted .GetResourceVersion (), 0 , 64 )
26
29
27
30
if oldRV < newRV {
28
- c . log . Info ( "received update event for:" , objCasted . GetName () )
31
+ err := ri . publishItem ( obj .( * unstructured. Unstructured ), broker . Update , ri . config )
29
32
30
- c .publishItem (objCasted , broker .Update )
33
+ if err != nil {
34
+ ri .log .Error (err )
35
+ }
36
+ ri .log .Info ("Received UPDATE event for: " , obj .(* unstructured.Unstructured ).GetName (), "/" , obj .(* unstructured.Unstructured ).GetNamespace (), " of kind: " , obj .(* unstructured.Unstructured ).GroupVersionKind ().Kind )
31
37
} else {
32
- c .log .Debug (fmt .Sprintf (
33
- "skipping update event for: %s => [No changes detected]: %d %d" ,
38
+ ri .log .Debug (fmt .Sprintf (
39
+ "Skipping UPDATE event for: %s => [No changes detected]: %d %d" ,
34
40
objCasted .GetName (),
35
41
oldRV ,
36
42
newRV ,
@@ -51,21 +57,27 @@ func (c *ResourceWatcher) startWatching(s cache.SharedIndexInformer) {
51
57
if ok {
52
58
objCasted = possiblyStaleObj .Obj .(* unstructured.Unstructured )
53
59
}
54
- c .log .Info ("received delete event for:" , objCasted .GetName ())
55
- c .publishItem (objCasted , broker .Delete )
60
+ err := ri .publishItem (objCasted , broker .Delete , ri .config )
61
+
62
+ if err != nil {
63
+ ri .log .Error (err )
64
+ }
65
+ ri .log .Info ("Received DELETE event for: " , obj .(* unstructured.Unstructured ).GetName (), "/" , obj .(* unstructured.Unstructured ).GetNamespace (), " of kind: " , obj .(* unstructured.Unstructured ).GroupVersionKind ().Kind )
56
66
},
57
67
}
58
68
s .AddEventHandler (handlers )
59
- s .Run (c .stopChan )
60
69
}
61
70
62
- func (c * ResourceWatcher ) publishItem (obj * unstructured.Unstructured , evtype broker.EventType ) {
63
- err := c . brokerClient .Publish (c . config .PublishTo , & broker.Message {
71
+ func (ri * RegisterInformer ) publishItem (obj * unstructured.Unstructured , evtype broker.EventType , config internalconfig. PipelineConfig ) error {
72
+ err := ri . broker .Publish (config .PublishTo , & broker.Message {
64
73
ObjectType : broker .MeshSync ,
65
74
EventType : evtype ,
66
75
Object : model .ParseList (* obj ),
67
76
})
68
77
if err != nil {
69
- c .log .Error (ErrPublish (c .config .Name , err ))
78
+ ri .log .Error (ErrPublish (config .Name , err ))
79
+ return err
70
80
}
81
+
82
+ return nil
71
83
}
0 commit comments