Skip to content

Commit 0ec58d2

Browse files
committed
Lint fix - Add sentinel error for VPC
1 parent 13aa533 commit 0ec58d2

File tree

2 files changed

+15
-11
lines changed

2 files changed

+15
-11
lines changed

internal/controller/linodevpc_controller.go

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,9 @@ func (r *LinodeVPCReconciler) handleRetainedVPC(ctx context.Context, logger logr
372372
func (r *LinodeVPCReconciler) handleRetainedSubnets(ctx context.Context, logger logr.Logger, vpcScope *scope.VPCScope) error {
373373
vpc, err := getVPC(ctx, vpcScope)
374374
if err != nil {
375+
if errors.Is(err, ErrVPCNotFound) {
376+
return nil
377+
}
375378
logger.Error(err, "Failed to fetch VPC for subnet deletion")
376379
if vpcScope.LinodeVPC.ObjectMeta.DeletionTimestamp.Add(reconciler.DefaultTimeout(r.ReconcileTimeout, reconciler.DefaultVPCControllerReconcileTimeout)).After(time.Now()) {
377380
logger.Info("re-queuing VPC deletion due to fetch error for subnet deletion")
@@ -380,10 +383,6 @@ func (r *LinodeVPCReconciler) handleRetainedSubnets(ctx context.Context, logger
380383
return err
381384
}
382385

383-
if vpc == nil {
384-
return nil
385-
}
386-
387386
// index the subnets by ID for quick lookup
388387
apiSubnets := make(map[int]linodego.VPCSubnet)
389388
for _, s := range vpc.Subnets {
@@ -433,17 +432,17 @@ func (r *LinodeVPCReconciler) handleRetainedSubnets(ctx context.Context, logger
433432
func (r *LinodeVPCReconciler) deleteVPCResources(ctx context.Context, logger logr.Logger, vpcScope *scope.VPCScope) error {
434433
vpc, err := getVPC(ctx, vpcScope)
435434
if err != nil {
435+
if errors.Is(err, ErrVPCNotFound) {
436+
logger.Info("VPC not found, nothing to do")
437+
return nil
438+
}
436439
logger.Error(err, "Failed to fetch VPC")
437440
if vpcScope.LinodeVPC.ObjectMeta.DeletionTimestamp.Add(reconciler.DefaultTimeout(r.ReconcileTimeout, reconciler.DefaultVPCControllerReconcileTimeout)).After(time.Now()) {
438441
logger.Info("re-queuing VPC deletion due to fetch error")
439442
return util.ErrReconcileAgain
440443
}
441444
return err
442445
}
443-
if vpc == nil {
444-
logger.Info("VPC not found, nothing to do")
445-
return nil
446-
}
447446

448447
for i := range vpc.Subnets {
449448
if len(vpc.Subnets[i].Linodes) == 0 {

internal/controller/linodevpc_controller_helpers.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ import (
2929
"github.com/linode/cluster-api-provider-linode/util"
3030
)
3131

32+
var (
33+
// ErrVPCNotFound is a sentinel error to indicate that a VPC was not found.
34+
ErrVPCNotFound = errors.New("VPC not found")
35+
)
36+
3237
func reconcileVPC(ctx context.Context, vpcScope *scope.VPCScope, logger logr.Logger) error {
3338
createConfig := linodeVPCSpecToVPCCreateConfig(vpcScope.LinodeVPC.Spec)
3439
if createConfig == nil {
@@ -132,17 +137,17 @@ func linodeVPCSpecToVPCCreateConfig(vpcSpec infrav1alpha2.LinodeVPCSpec) *linode
132137

133138
// getVPC fetches a VPC and handles not-found errors.
134139
// It returns the VPC if found.
135-
// It returns nil, nil if the VPC is not found.
140+
// It returns nil, ErrVPCNotFound if the VPC is not found.
136141
// It returns nil and an error for other API errors.
137142
func getVPC(ctx context.Context, vpcScope *scope.VPCScope) (*linodego.VPC, error) {
138143
if vpcScope.LinodeVPC.Spec.VPCID == nil {
139-
return nil, nil
144+
return nil, ErrVPCNotFound
140145
}
141146

142147
vpc, err := vpcScope.LinodeClient.GetVPC(ctx, *vpcScope.LinodeVPC.Spec.VPCID)
143148
if err != nil {
144149
if util.IgnoreLinodeAPIError(err, http.StatusNotFound) == nil {
145-
return nil, nil
150+
return nil, ErrVPCNotFound
146151
}
147152
return nil, err
148153
}

0 commit comments

Comments
 (0)