@@ -111,66 +111,68 @@ func (c *Controller) initRuntime() error {
111
111
return nil
112
112
}
113
113
114
- func (c * Controller ) reconcileRouters (event subnetEvent ) error {
114
+ func (c * Controller ) reconcileRouters (event * subnetEvent ) error {
115
115
subnets , err := c .subnetsLister .List (labels .Everything ())
116
116
if err != nil {
117
117
klog .Errorf ("failed to list subnets %v" , err )
118
118
return err
119
119
}
120
120
121
- var ok bool
122
- var oldSubnet , newSubnet * kubeovnv1.Subnet
123
- if event .old != nil {
124
- if oldSubnet , ok = event .old .(* kubeovnv1.Subnet ); ! ok {
125
- klog .Errorf ("expected old subnet in subnetEvent but got %#v" , event .old )
126
- return nil
121
+ if event != nil {
122
+ var ok bool
123
+ var oldSubnet , newSubnet * kubeovnv1.Subnet
124
+ if event .old != nil {
125
+ if oldSubnet , ok = event .old .(* kubeovnv1.Subnet ); ! ok {
126
+ klog .Errorf ("expected old subnet in subnetEvent but got %#v" , event .old )
127
+ return nil
128
+ }
127
129
}
128
- }
129
- if event .new != nil {
130
- if newSubnet , ok = event .new .( * kubeovnv1. Subnet ); ! ok {
131
- klog . Errorf ( "expected new subnet in subnetEvent but got %#v" , event . new )
132
- return nil
130
+ if event . new != nil {
131
+ if newSubnet , ok = event .new .( * kubeovnv1. Subnet ); ! ok {
132
+ klog . Errorf ( "expected new subnet in subnetEvent but got %#v" , event .new )
133
+ return nil
134
+ }
133
135
}
134
- }
135
136
136
- // handle policy routing
137
- rulesToAdd , rulesToDel , routesToAdd , routesToDel , err := c .diffPolicyRouting (oldSubnet , newSubnet )
138
- if err != nil {
139
- klog .Errorf ("failed to get policy routing difference: %v" , err )
140
- return err
141
- }
142
- // add new routes first
143
- for _ , r := range routesToAdd {
144
- if err = netlink .RouteReplace (& r ); err != nil && ! errors .Is (err , syscall .EEXIST ) {
145
- klog .Errorf ("failed to replace route for subnet %s: %v" , newSubnet .Name , err )
137
+ // handle policy routing
138
+ rulesToAdd , rulesToDel , routesToAdd , routesToDel , err := c .diffPolicyRouting (oldSubnet , newSubnet )
139
+ if err != nil {
140
+ klog .Errorf ("failed to get policy routing difference: %v" , err )
146
141
return err
147
142
}
148
- }
149
- // next, add new rules
150
- for _ , r := range rulesToAdd {
151
- if err = netlink . RuleAdd ( & r ); err != nil && ! errors . Is ( err , syscall . EEXIST ) {
152
- klog . Errorf ( "failed to add network rule for subnet %s: %v" , newSubnet . Name , err )
153
- return err
143
+ // add new routes first
144
+ for _ , r := range routesToAdd {
145
+ if err = netlink . RouteReplace ( & r ); err != nil && ! errors . Is ( err , syscall . EEXIST ) {
146
+ klog . Errorf ( "failed to replace route for subnet %s: %v" , newSubnet . Name , err )
147
+ return err
148
+ }
154
149
}
155
- }
156
- // then delete old network rules
157
- for _ , r := range rulesToDel {
158
- // loop to delete all matched rules
159
- for {
160
- if err = netlink .RuleDel (& r ); err != nil {
161
- if ! errors .Is (err , syscall .ENOENT ) {
162
- klog .Errorf ("failed to delete network rule for subnet %s: %v" , oldSubnet .Name , err )
163
- return err
150
+ // next, add new rules
151
+ for _ , r := range rulesToAdd {
152
+ if err = netlink .RuleAdd (& r ); err != nil && ! errors .Is (err , syscall .EEXIST ) {
153
+ klog .Errorf ("failed to add network rule for subnet %s: %v" , newSubnet .Name , err )
154
+ return err
155
+ }
156
+ }
157
+ // then delete old network rules
158
+ for _ , r := range rulesToDel {
159
+ // loop to delete all matched rules
160
+ for {
161
+ if err = netlink .RuleDel (& r ); err != nil {
162
+ if ! errors .Is (err , syscall .ENOENT ) {
163
+ klog .Errorf ("failed to delete network rule for subnet %s: %v" , oldSubnet .Name , err )
164
+ return err
165
+ }
166
+ break
164
167
}
165
- break
166
168
}
167
169
}
168
- }
169
- // last, delete old network routes
170
- for _ , r := range routesToDel {
171
- if err = netlink . RouteDel ( & r ); err != nil && ! errors . Is ( err , syscall . ENOENT ) {
172
- klog . Errorf ( "failed to delete route for subnet %s: %v" , oldSubnet . Name , err )
173
- return err
170
+ // last, delete old network routes
171
+ for _ , r := range routesToDel {
172
+ if err = netlink . RouteDel ( & r ); err != nil && ! errors . Is ( err , syscall . ENOENT ) {
173
+ klog . Errorf ( "failed to delete route for subnet %s: %v" , oldSubnet . Name , err )
174
+ return err
175
+ }
174
176
}
175
177
}
176
178
0 commit comments