diff options
| author | Shelley-BaoYue <baoyue2@huawei.com> | 2023-08-30 11:20:49 +0800 |
|---|---|---|
| committer | Shelley-BaoYue <baoyue2@huawei.com> | 2023-09-11 10:19:49 +0800 |
| commit | d8660e2cd6973212480a771b8523442b51a56ee7 (patch) | |
| tree | 05af4f31786f5444571327e20bb813f8f86fd4f1 /cloud/pkg | |
| parent | update vendor and licenses (diff) | |
| download | kubeedge-d8660e2cd6973212480a771b8523442b51a56ee7.tar.gz | |
compatibility modification
Signed-off-by: Shelley-BaoYue <baoyue2@huawei.com>
Diffstat (limited to 'cloud/pkg')
7 files changed, 49 insertions, 8 deletions
diff --git a/cloud/pkg/devicecontroller/manager/device.go b/cloud/pkg/devicecontroller/manager/device.go index a6d19d0cb..cd26d0386 100644 --- a/cloud/pkg/devicecontroller/manager/device.go +++ b/cloud/pkg/devicecontroller/manager/device.go @@ -27,7 +27,10 @@ func (dmm *DeviceManager) Events() chan watch.Event { func NewDeviceManager(si cache.SharedIndexInformer) (*DeviceManager, error) { events := make(chan watch.Event, config.Config.Buffer.DeviceEvent) rh := NewCommonResourceEventHandler(events) - si.AddEventHandler(rh) + _, err := si.AddEventHandler(rh) + if err != nil { + return nil, err + } return &DeviceManager{events: events}, nil } diff --git a/cloud/pkg/devicecontroller/manager/devicemodel.go b/cloud/pkg/devicecontroller/manager/devicemodel.go index 4a21f571b..cd3ebd14d 100644 --- a/cloud/pkg/devicecontroller/manager/devicemodel.go +++ b/cloud/pkg/devicecontroller/manager/devicemodel.go @@ -27,7 +27,10 @@ func (dmm *DeviceModelManager) Events() chan watch.Event { func NewDeviceModelManager(si cache.SharedIndexInformer) (*DeviceModelManager, error) { events := make(chan watch.Event, config.Config.Buffer.DeviceModelEvent) rh := NewCommonResourceEventHandler(events) - si.AddEventHandler(rh) + _, err := si.AddEventHandler(rh) + if err != nil { + return nil, err + } return &DeviceModelManager{events: events}, nil } diff --git a/cloud/pkg/devicecontroller/manager/devicemodel_test.go b/cloud/pkg/devicecontroller/manager/devicemodel_test.go index d25e7996b..a6de1ffd5 100644 --- a/cloud/pkg/devicecontroller/manager/devicemodel_test.go +++ b/cloud/pkg/devicecontroller/manager/devicemodel_test.go @@ -41,7 +41,8 @@ type mockInformer struct { cache.SharedIndexInformer } -func (i *mockInformer) AddEventHandler(handler cache.ResourceEventHandler) { +func (i *mockInformer) AddEventHandler(handler cache.ResourceEventHandler) (cache.ResourceEventHandlerRegistration, error) { + return nil, nil } func TestNewDeviceModelManager(t *testing.T) { diff --git a/cloud/pkg/dynamiccontroller/application/eventhandler.go b/cloud/pkg/dynamiccontroller/application/eventhandler.go index 1c6eefe2b..4f10e8dc9 100644 --- a/cloud/pkg/dynamiccontroller/application/eventhandler.go +++ b/cloud/pkg/dynamiccontroller/application/eventhandler.go @@ -122,7 +122,7 @@ func NewCommonResourceEventHandler( klog.Exitf("get informer for %s err: %v", gvr.String(), err) } - informerPair.Informer.AddEventHandler(cache.ResourceEventHandlerFuncs{ + _, err = informerPair.Informer.AddEventHandler(cache.ResourceEventHandlerFuncs{ AddFunc: func(obj interface{}) { handler.objToEvent(watch.Added, obj) }, @@ -133,6 +133,9 @@ func NewCommonResourceEventHandler( handler.objToEvent(watch.Deleted, obj) }, }) + if err != nil { + klog.Exitf("add evenet handler err: %v", err) + } handler.informer = informerPair klog.Infof("[metaserver/resourceEventHandler] handler(%v) init successfully, start to dispatch events to it's listeners", gvr) diff --git a/cloud/pkg/nodeupgradejobcontroller/manager/nodeupgrade.go b/cloud/pkg/nodeupgradejobcontroller/manager/nodeupgrade.go index 3b50c1889..7cdb78e1a 100644 --- a/cloud/pkg/nodeupgradejobcontroller/manager/nodeupgrade.go +++ b/cloud/pkg/nodeupgradejobcontroller/manager/nodeupgrade.go @@ -43,7 +43,10 @@ func (dmm *NodeUpgradeJobManager) Events() chan watch.Event { func NewNodeUpgradeJobManager(si cache.SharedIndexInformer) (*NodeUpgradeJobManager, error) { events := make(chan watch.Event, config.Config.Buffer.NodeUpgradeJobEvent) rh := NewCommonResourceEventHandler(events) - si.AddEventHandler(rh) + _, err := si.AddEventHandler(rh) + if err != nil { + return nil, err + } return &NodeUpgradeJobManager{events: events}, nil } diff --git a/cloud/pkg/policycontroller/manager/reconcile_test.go b/cloud/pkg/policycontroller/manager/reconcile_test.go index cee178392..7efcc11a0 100644 --- a/cloud/pkg/policycontroller/manager/reconcile_test.go +++ b/cloud/pkg/policycontroller/manager/reconcile_test.go @@ -3,6 +3,7 @@ package controller import ( "context" "encoding/json" + "fmt" "reflect" "sort" "sync" @@ -1333,11 +1334,23 @@ func TestGetNodeListOfServiceAccountAccess(t *testing.T) { },*/ }, } + pdStrategyTypeIndexer := func(obj client.Object) []string { + pd, ok := obj.(*v1.Pod) + if !ok { + panic(fmt.Errorf("indexer function for type %T's spec.strategy.type field received"+ + " object of type %T, this should never happen", v1.Pod{}, obj)) + } + serviceAccountName := "" + if pd != nil { + serviceAccountName = pd.Spec.ServiceAccountName + } + return []string{serviceAccountName} + } var v1Scheme = runtime.NewScheme() if err := v1.AddToScheme(v1Scheme); err != nil { t.Errorf("Failed to add access scheme: %v", err) } - withScheme := fake.NewClientBuilder().WithScheme(v1Scheme) + withScheme := fake.NewClientBuilder().WithScheme(v1Scheme).WithIndex(&v1.Pod{}, "spec.serviceAccountName", pdStrategyTypeIndexer) fakeClient := withScheme.Build() got, err := getNodeListOfServiceAccountAccess(context.Background(), fakeClient, saa) if err != nil { @@ -1725,7 +1738,19 @@ func TestSyncRules(t *testing.T) { if err := rbacv1.AddToScheme(accessScheme); err != nil { t.Errorf("Failed to add rbacv1 scheme: %v", err) } - fakeClient := fake.NewClientBuilder().WithScheme(accessScheme).WithObjects(tt.obj...).WithLists(nodeList).Build() + pdStrategyTypeIndexer := func(obj client.Object) []string { + pd, ok := obj.(*v1.Pod) + if !ok { + panic(fmt.Errorf("indexer function for type %T's spec.strategy.type field received"+ + " object of type %T, this should never happen", v1.Pod{}, obj)) + } + serviceAccountName := "" + if pd != nil { + serviceAccountName = pd.Spec.ServiceAccountName + } + return []string{serviceAccountName} + } + fakeClient := fake.NewClientBuilder().WithScheme(accessScheme).WithObjects(tt.obj...).WithLists(nodeList).WithIndex(&v1.Pod{}, "spec.serviceAccountName", pdStrategyTypeIndexer).Build() ctr := &Controller{ Client: fakeClient, MessageLayer: messagelayer.PolicyControllerMessageLayer(), diff --git a/cloud/pkg/synccontroller/synccontroller.go b/cloud/pkg/synccontroller/synccontroller.go index cd0c4701b..b3fb12b99 100644 --- a/cloud/pkg/synccontroller/synccontroller.go +++ b/cloud/pkg/synccontroller/synccontroller.go @@ -60,11 +60,14 @@ func newSyncController(enable bool) *SyncController { objectSyncsInformer := crdInformerFactory.Reliablesyncs().V1alpha1().ObjectSyncs() clusterObjectSyncsInformer := crdInformerFactory.Reliablesyncs().V1alpha1().ClusterObjectSyncs() nodesInformer := k8sInformerFactory.Core().V1().Nodes() - nodesInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ + _, err := nodesInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ DeleteFunc: func(obj interface{}) { sctl.deleteObjectSyncs() }, }) + if err != nil { + klog.Fatalf("new synccontroller failed, add event handler err: %v", err) + } // lister sctl.nodeLister = nodesInformer.Lister() |
