Skip to content

Commit 5eafa2f

Browse files
committed
Fixes for golangcilint 1.64.6
This patch fixes several nitpicks raised by golangcilint 1.64.6 It also bumps the builder image for CI to - golang 1.24 - golangcilint 1.64.6 Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
1 parent 84ed1e9 commit 5eafa2f

File tree

10 files changed

+168
-63
lines changed

10 files changed

+168
-63
lines changed

.ci/Dockerfile.depend

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ RUN apt-get update \
1111
&& DEBIAN_FRONTEND=noninteractive apt-get install -y -qq \
1212
apt-utils wget cmake curl git
1313

14-
ENV GOVERSION=1.22.3
14+
ENV GOVERSION=1.24.0
1515
ENV GOROOT="/root/.go"
1616
ENV GOPATH="/root/go"
1717
ENV PATH=$GOROOT/bin:$PATH
@@ -22,7 +22,7 @@ RUN mkdir -p "${GOROOT}" &&\
2222
RUN wget -nv "https://dl.google.com/go/go${GOVERSION}.linux-amd64.tar.gz" -O "/tmp/go.tar.gz" && \
2323
tar -C "${GOROOT}" --strip-components=1 -xzf "/tmp/go.tar.gz" && \
2424
rm -f "/tmp/go.tar.gz" && \
25-
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.61.0
25+
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.64.6
2626

2727
# Get modules used by the source code
2828
COPY . /vpp-dataplane

calico-vpp-agent/cmd/calico_vpp_dataplane.go

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -178,13 +178,17 @@ func main() {
178178
}
179179

180180
if ourBGPSpec != nil {
181-
prefixWatcher.SetOurBGPSpec(ourBGPSpec.(*common.LocalNodeSpec))
182-
connectivityServer.SetOurBGPSpec(ourBGPSpec.(*common.LocalNodeSpec))
183-
routingServer.SetOurBGPSpec(ourBGPSpec.(*common.LocalNodeSpec))
184-
serviceServer.SetOurBGPSpec(ourBGPSpec.(*common.LocalNodeSpec))
185-
localSIDWatcher.SetOurBGPSpec(ourBGPSpec.(*common.LocalNodeSpec))
186-
netWatcher.SetOurBGPSpec(ourBGPSpec.(*common.LocalNodeSpec))
187-
cniServer.SetOurBGPSpec(ourBGPSpec.(*common.LocalNodeSpec))
181+
bgpSpec, ok := ourBGPSpec.(*common.LocalNodeSpec)
182+
if !ok {
183+
panic("ourBGPSpec is not *common.LocalNodeSpec")
184+
}
185+
prefixWatcher.SetOurBGPSpec(bgpSpec)
186+
connectivityServer.SetOurBGPSpec(bgpSpec)
187+
routingServer.SetOurBGPSpec(bgpSpec)
188+
serviceServer.SetOurBGPSpec(bgpSpec)
189+
localSIDWatcher.SetOurBGPSpec(bgpSpec)
190+
netWatcher.SetOurBGPSpec(bgpSpec)
191+
cniServer.SetOurBGPSpec(bgpSpec)
188192
}
189193

190194
if *config.GetCalicoVppFeatureGates().MultinetEnabled {
@@ -193,8 +197,12 @@ func main() {
193197
}
194198

195199
if felixConfig != nil {
196-
cniServer.SetFelixConfig(felixConfig.(*felixconfig.Config))
197-
connectivityServer.SetFelixConfig(felixConfig.(*felixconfig.Config))
200+
felixCfg, ok := felixConfig.(*felixconfig.Config)
201+
if !ok {
202+
panic("ourBGPSpec is not *felixconfig.Config")
203+
}
204+
cniServer.SetFelixConfig(felixCfg)
205+
connectivityServer.SetFelixConfig(felixCfg)
198206
}
199207

200208
Go(routeWatcher.WatchRoutes)

calico-vpp-agent/cni/cni_server.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,11 @@ func (s *Server) newLocalPodSpecFromAdd(request *cniproto.AddRequest) (*storage.
171171
if !ok {
172172
s.log.Errorf("trying to create a pod in an unexisting network %s", podSpec.NetworkName)
173173
} else {
174-
_, route, err := net.ParseCIDR(value.(*watchers.NetworkDefinition).Range)
174+
networkDefinition, ok := value.(*watchers.NetworkDefinition)
175+
if !ok || networkDefinition == nil {
176+
panic("Value is not of type *watchers.NetworkDefinition")
177+
}
178+
_, route, err := net.ParseCIDR(networkDefinition.Range)
175179
if err == nil {
176180
podSpec.Routes = append(podSpec.Routes, storage.LocalIPNet{
177181
IP: route.IP,

calico-vpp-agent/cni/network_vpp.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,11 @@ func (s *Server) AddVppInterface(podSpec *storage.LocalPodSpec, doHostSideConf b
243243
if !ok {
244244
s.log.Errorf("network not found %s", podSpec.NetworkName)
245245
} else {
246-
vni = value.(*watchers.NetworkDefinition).Vni
246+
networkDefinition, ok := value.(*watchers.NetworkDefinition)
247+
if !ok || networkDefinition == nil {
248+
panic("networkDefinition not of type *watchers.NetworkDefinition")
249+
}
250+
vni = networkDefinition.Vni
247251
}
248252
}
249253

@@ -312,7 +316,11 @@ func (s *Server) DelVppInterface(podSpec *storage.LocalPodSpec) {
312316
if !ok {
313317
deleteLocalPodAddress = false
314318
} else {
315-
vni = value.(*watchers.NetworkDefinition).Vni
319+
networkDefinition, ok := value.(*watchers.NetworkDefinition)
320+
if !ok || networkDefinition == nil {
321+
panic("networkDefinition not of type *watchers.NetworkDefinition")
322+
}
323+
vni = networkDefinition.Vni
316324
}
317325
}
318326
if deleteLocalPodAddress {

calico-vpp-agent/cni/network_vpp_routes.go

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,11 @@ func (s *Server) RoutePodInterface(podSpec *storage.LocalPodSpec, stack *vpplink
3737
if !ok {
3838
s.log.Errorf("network not found %s", podSpec.NetworkName)
3939
} else {
40-
table = value.(*watchers.NetworkDefinition).VRF.Tables[idx]
40+
networkDefinition, ok := value.(*watchers.NetworkDefinition)
41+
if !ok || networkDefinition == nil {
42+
panic("networkDefinition not of type *watchers.NetworkDefinition")
43+
}
44+
table = networkDefinition.VRF.Tables[idx]
4145
}
4246
} else if inPodVrf {
4347
table = podSpec.GetVrfId(vpplink.IpFamilyFromIPNet(containerIP))
@@ -83,7 +87,11 @@ func (s *Server) UnroutePodInterface(podSpec *storage.LocalPodSpec, swIfIndex ui
8387
if !ok {
8488
s.log.Errorf("network not found %s", podSpec.NetworkName)
8589
} else {
86-
table = value.(*watchers.NetworkDefinition).VRF.Tables[idx]
90+
networkDefinition, ok := value.(*watchers.NetworkDefinition)
91+
if !ok || networkDefinition == nil {
92+
panic("networkDefinition not of type *watchers.NetworkDefinition")
93+
}
94+
table = networkDefinition.VRF.Tables[idx]
8795
}
8896
} else if inPodVrf {
8997
table = podSpec.GetVrfId(vpplink.IpFamilyFromIPNet(containerIP))
@@ -205,7 +213,11 @@ func (s *Server) CreatePodVRF(podSpec *storage.LocalPodSpec, stack *vpplink.Clea
205213
if !ok {
206214
return errors.Errorf("network not found %s", podSpec.NetworkName)
207215
}
208-
vrfIndex = value.(*watchers.NetworkDefinition).PodVRF.Tables[idx]
216+
networkDefinition, ok := value.(*watchers.NetworkDefinition)
217+
if !ok || networkDefinition == nil {
218+
panic("networkDefinition not of type *watchers.NetworkDefinition")
219+
}
220+
vrfIndex = networkDefinition.PodVRF.Tables[idx]
209221
}
210222
s.log.Infof("pod(add) VRF %d %s default route via VRF %d", vrfId, ipFamily.Str, vrfIndex)
211223
err = s.vpp.AddDefaultRouteViaTable(vrfId, vrfIndex, ipFamily.IsIp6)
@@ -373,7 +385,11 @@ func (s *Server) DeletePodVRF(podSpec *storage.LocalPodSpec) {
373385
if !ok {
374386
s.log.Errorf("network not found %s", podSpec.NetworkName)
375387
} else {
376-
vrfIndex = value.(*watchers.NetworkDefinition).PodVRF.Tables[idx]
388+
networkDefinition, ok := value.(*watchers.NetworkDefinition)
389+
if !ok || networkDefinition == nil {
390+
panic("networkDefinition not of type *watchers.NetworkDefinition")
391+
}
392+
vrfIndex = networkDefinition.PodVRF.Tables[idx]
377393
}
378394
}
379395
s.log.Infof("pod(del) VRF %d %s default route via VRF %d", vrfId, ipFamily.Str, vrfIndex)

calico-vpp-agent/connectivity/connectivity_server.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,11 @@ func (s *ConnectivityServer) ServeConnectivity(t *tomb.Tomb) error {
191191
if !ok {
192192
s.log.Errorf("evt.New is not a *common.NodeWireguardPublicKey %v", evt.New)
193193
}
194-
s.providers[WIREGUARD].(*WireguardProvider).nodesToWGPublicKey[new.Name] = new.WireguardPublicKey
194+
wgProvider, ok := s.providers[WIREGUARD].(*WireguardProvider)
195+
if !ok {
196+
panic("Type is not WireguardProvider")
197+
}
198+
wgProvider.nodesToWGPublicKey[new.Name] = new.WireguardPublicKey
195199
change := common.GetStringChangeType(old.WireguardPublicKey, new.WireguardPublicKey)
196200
if change != common.ChangeSame {
197201
s.log.Infof("connectivity(upd) WireguardPublicKey Changed (%s) %s->%s", old.Name, old.WireguardPublicKey, new.WireguardPublicKey)
@@ -420,5 +424,9 @@ func (s *ConnectivityServer) ForceNodeAddition(newNode common.LocalNodeSpec, new
420424
// ForceWGPublicKeyAddition will add other node information as provided by calico configuration
421425
// The usage is mainly for testing purposes.
422426
func (s *ConnectivityServer) ForceWGPublicKeyAddition(newNode string, wgPublicKey string) {
423-
s.providers[WIREGUARD].(*WireguardProvider).nodesToWGPublicKey[newNode] = wgPublicKey
427+
wgProvider, ok := s.providers[WIREGUARD].(*WireguardProvider)
428+
if !ok {
429+
panic("Type is not WireguardProvider")
430+
}
431+
wgProvider.nodesToWGPublicKey[newNode] = wgPublicKey
424432
}

calico-vpp-agent/services/service_server.go

Lines changed: 63 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -185,23 +185,39 @@ func NewServiceServer(vpp *vpplink.VppLink, k8sclient *kubernetes.Clientset, log
185185
60*time.Second,
186186
cache.ResourceEventHandlerFuncs{
187187
AddFunc: func(obj interface{}) {
188-
localService := server.resolveLocalServiceFromService(obj.(*v1.Service))
188+
service, ok := obj.(*v1.Service)
189+
if !ok {
190+
panic("wrong type for obj, not *v1.Service")
191+
}
192+
localService := server.resolveLocalServiceFromService(service)
189193
server.handleServiceEndpointEvent(localService, nil)
190194
},
191195
UpdateFunc: func(old interface{}, obj interface{}) {
192-
oldLocalService := server.resolveLocalServiceFromService(old.(*v1.Service))
193-
localService := server.resolveLocalServiceFromService(obj.(*v1.Service))
196+
service, ok := obj.(*v1.Service)
197+
if !ok {
198+
panic("wrong type for obj, not *v1.Service")
199+
}
200+
oldService, ok := old.(*v1.Service)
201+
if !ok {
202+
panic("wrong type for old, not *v1.Service")
203+
}
204+
oldLocalService := server.resolveLocalServiceFromService(oldService)
205+
localService := server.resolveLocalServiceFromService(service)
194206
server.handleServiceEndpointEvent(localService, oldLocalService)
195207
},
196208
DeleteFunc: func(obj interface{}) {
197-
service, ok := obj.(*v1.Service)
198-
if !ok {
199-
service, ok = obj.(cache.DeletedFinalStateUnknown).Obj.(*v1.Service)
209+
switch value := obj.(type) {
210+
case cache.DeletedFinalStateUnknown:
211+
service, ok := value.Obj.(*v1.Service)
200212
if !ok {
201213
panic(fmt.Sprintf("obj.(cache.DeletedFinalStateUnknown).Obj not a (*v1.Service) %v", obj))
202214
}
215+
server.deleteServiceByName(serviceID(&service.ObjectMeta))
216+
case *v1.Service:
217+
server.deleteServiceByName(serviceID(&value.ObjectMeta))
218+
default:
219+
log.Errorf("unknown type in service deleteFunction %v", obj)
203220
}
204-
server.deleteServiceByName(serviceID(&service.ObjectMeta))
205221
},
206222
})
207223

@@ -213,23 +229,42 @@ func NewServiceServer(vpp *vpplink.VppLink, k8sclient *kubernetes.Clientset, log
213229
60*time.Second,
214230
cache.ResourceEventHandlerFuncs{
215231
AddFunc: func(obj interface{}) {
216-
localService := server.resolveLocalServiceFromEndpoints(obj.(*v1.Endpoints))
217-
server.handleServiceEndpointEvent(localService, nil)
232+
endpoints, ok := obj.(*v1.Endpoints)
233+
if !ok {
234+
panic("wrong type for obj, not *v1.Endpoints")
235+
}
236+
server.handleServiceEndpointEvent(
237+
server.resolveLocalServiceFromEndpoints(endpoints),
238+
nil,
239+
)
218240
},
219241
UpdateFunc: func(old interface{}, obj interface{}) {
220-
oldLocalService := server.resolveLocalServiceFromEndpoints(old.(*v1.Endpoints))
221-
localService := server.resolveLocalServiceFromEndpoints(obj.(*v1.Endpoints))
222-
server.handleServiceEndpointEvent(localService, oldLocalService)
242+
endpoints, ok := obj.(*v1.Endpoints)
243+
if !ok {
244+
panic("wrong type for obj, not *v1.Endpoints")
245+
}
246+
oldEndpoints, ok := old.(*v1.Endpoints)
247+
if !ok {
248+
panic("wrong type for old, not *v1.Endpoints")
249+
}
250+
server.handleServiceEndpointEvent(
251+
server.resolveLocalServiceFromEndpoints(endpoints),
252+
server.resolveLocalServiceFromEndpoints(oldEndpoints),
253+
)
223254
},
224255
DeleteFunc: func(obj interface{}) {
225-
ep, ok := obj.(*v1.Endpoints)
226-
if !ok {
227-
ep, ok = obj.(cache.DeletedFinalStateUnknown).Obj.(*v1.Endpoints)
256+
switch value := obj.(type) {
257+
case cache.DeletedFinalStateUnknown:
258+
endpoints, ok := value.Obj.(*v1.Endpoints)
228259
if !ok {
229260
panic(fmt.Sprintf("obj.(cache.DeletedFinalStateUnknown).Obj not a (*v1.Endpoints) %v", obj))
230261
}
262+
server.deleteServiceByName(serviceID(&endpoints.ObjectMeta))
263+
case *v1.Service:
264+
server.deleteServiceByName(serviceID(&value.ObjectMeta))
265+
default:
266+
log.Errorf("unknown type in service deleteFunction %v", obj)
231267
}
232-
server.deleteServiceByName(serviceID(&ep.ObjectMeta))
233268
},
234269
})
235270

@@ -296,7 +331,7 @@ func (s *Server) findMatchingService(ep *v1.Endpoints) *v1.Service {
296331
s.log.Errorf("Error getting endpoint %+v key: %v", ep, err)
297332
return nil
298333
}
299-
service, found, err := s.serviceStore.GetByKey(key)
334+
value, found, err := s.serviceStore.GetByKey(key)
300335
if err != nil {
301336
s.log.Errorf("Error getting service %s: %v", key, err)
302337
return nil
@@ -305,7 +340,11 @@ func (s *Server) findMatchingService(ep *v1.Endpoints) *v1.Service {
305340
s.log.Debugf("Service %s not found", key)
306341
return nil
307342
}
308-
return service.(*v1.Service)
343+
service, ok := value.(*v1.Service)
344+
if !ok {
345+
panic("s.serviceStore.GetByKey did not return value of type *v1.Service")
346+
}
347+
return service
309348
}
310349

311350
func (s *Server) findMatchingEndpoint(service *v1.Service) *v1.Endpoints {
@@ -314,7 +353,7 @@ func (s *Server) findMatchingEndpoint(service *v1.Service) *v1.Endpoints {
314353
s.log.Errorf("Error getting service %+v key: %v", service, err)
315354
return nil
316355
}
317-
ep, found, err := s.endpointStore.GetByKey(key)
356+
value, found, err := s.endpointStore.GetByKey(key)
318357
if err != nil {
319358
s.log.Errorf("Error getting endpoint %s: %v", key, err)
320359
return nil
@@ -323,7 +362,11 @@ func (s *Server) findMatchingEndpoint(service *v1.Service) *v1.Endpoints {
323362
s.log.Debugf("Endpoint %s not found", key)
324363
return nil
325364
}
326-
return ep.(*v1.Endpoints)
365+
endpoints, ok := value.(*v1.Endpoints)
366+
if !ok {
367+
panic("s.serviceStore.GetByKey did not return value of type *v1.Service")
368+
}
369+
return endpoints
327370
}
328371

329372
/**

calico-vpp-agent/watchers/bgpfilter_watcher.go

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,23 @@ func (w *BGPFilterWatcher) WatchBGPFilters(t *tomb.Tomb) error {
7171
w.log.Debug("BGPFilter watch returned, restarting...")
7272
goto restart
7373
case watch.EventType(api.WatchModified):
74-
filter := *event.Object.(*calicov3.BGPFilter)
75-
w.UpdateFilter(filter)
74+
filter, ok := event.Object.(*calicov3.BGPFilter)
75+
if !ok || filter == nil {
76+
w.log.Fatal("api.WatchModified Object is not BGPFilter or is nil")
77+
}
78+
w.UpdateFilter(*filter)
7679
case watch.EventType(api.WatchAdded):
77-
filter := *event.Object.(*calicov3.BGPFilter)
78-
w.AddNewFilter(filter)
80+
filter, ok := event.Object.(*calicov3.BGPFilter)
81+
if !ok || filter == nil {
82+
w.log.Fatal("api.WatchAdded Object is not BGPFilter or is nil")
83+
}
84+
w.AddNewFilter(*filter)
7985
case watch.EventType(api.WatchDeleted):
80-
filter := *event.Previous.(*calicov3.BGPFilter)
81-
w.RemoveFilter(filter)
86+
filter, ok := event.Previous.(*calicov3.BGPFilter)
87+
if !ok || filter == nil {
88+
w.log.Fatal("api.WatchDeleted Previous is not BGPFilter or is nil")
89+
}
90+
w.RemoveFilter(*filter)
8291
}
8392
}
8493
}

0 commit comments

Comments
 (0)