Skip to content

Commit d6959bf

Browse files
committed
remove finalizers when delete is successful
1 parent 5a5cf32 commit d6959bf

File tree

1 file changed

+30
-14
lines changed

1 file changed

+30
-14
lines changed

controllers/bucket_controller.go

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,36 @@ func (b BucketReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl
7676
return result, err
7777
}
7878

79+
if bucket.DeletionTimestamp != nil {
80+
deleted, err := clnt.Delete()
81+
if err != nil {
82+
log.Error(err, "unable to delete bucket")
83+
b.EventRecorder.Event(&bucket, corev1.EventTypeWarning, "unable to delete bucket", fmt.Sprintf("unable to delete bucket: %v", bucket.Spec.Name))
84+
return ctrl.Result{RequeueAfter: 30 * time.Second}, nil
85+
}
86+
if !deleted {
87+
log.Info("unable to delete bucket for unknown reason")
88+
b.EventRecorder.Event(&bucket, corev1.EventTypeWarning, "unable to delete bucket", fmt.Sprintf("unable to delete bucket: %v", bucket.Spec.Name))
89+
return ctrl.Result{RequeueAfter: 30 * time.Second}, nil
90+
}
91+
log.Info("bucket deleted")
92+
b.EventRecorder.Event(&bucket, corev1.EventTypeNormal, "BucketDeleted", fmt.Sprintf("bucket %v deleted", bucket.Spec.Name))
93+
94+
//Removing oadpFinalizerBucket from bucket.Finalizers
95+
var newFinalizers []string
96+
for _, finalizer := range bucket.Finalizers {
97+
if finalizer == oadpFinalizerBucket {
98+
continue
99+
}
100+
newFinalizers = append(newFinalizers, finalizer)
101+
}
102+
bucket.Finalizers = newFinalizers
103+
err = b.Client.Update(ctx, &bucket, &client.UpdateOptions{})
104+
if err != nil {
105+
b.EventRecorder.Event(&bucket, corev1.EventTypeWarning, "UnableToRemoveFinalizer", fmt.Sprintf("unable to remove finalizer: %v", err))
106+
}
107+
return ctrl.Result{Requeue: true}, nil
108+
}
79109
var ok bool
80110
if ok, err = clnt.Exists(); !ok {
81111
// Handle Deletion.
@@ -98,20 +128,6 @@ func (b BucketReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl
98128
b.EventRecorder.Event(&bucket, corev1.EventTypeWarning, "BucketNotFound", fmt.Sprintf("unable to find bucket: %v", err))
99129
return ctrl.Result{RequeueAfter: 1 * time.Minute}, nil
100130
}
101-
if bucket.DeletionTimestamp != nil {
102-
deleted, err := clnt.Delete()
103-
if err != nil {
104-
log.Error(err, "unable to delete bucket")
105-
b.EventRecorder.Event(&bucket, corev1.EventTypeWarning, "unable to delete bucket", fmt.Sprintf("unable to delete bucket: %v", bucket.Spec.Name))
106-
return ctrl.Result{RequeueAfter: 30 * time.Second}, nil
107-
}
108-
if !deleted {
109-
log.Info("unable to delete bucket for unknown reason")
110-
b.EventRecorder.Event(&bucket, corev1.EventTypeWarning, "unable to delete bucket", fmt.Sprintf("unable to delete bucket: %v", bucket.Spec.Name))
111-
return ctrl.Result{RequeueAfter: 30 * time.Second}, nil
112-
}
113-
return ctrl.Result{Requeue: true}, nil
114-
}
115131

116132
// Update status with updated value
117133
bucket.Status.LastSynced = &v1.Time{Time: time.Now()}

0 commit comments

Comments
 (0)