func()

in controllers/seataserver_controller.go [241:271]


func (r *SeataServerReconciler) reconcileFinalizers(ctx context.Context, instance *seatav1alpha1.SeataServer) (err error) {
	if instance.Spec.Persistence.VolumeReclaimPolicy != seatav1alpha1.VolumeReclaimPolicyDelete {
		return nil
	}
	if instance.DeletionTimestamp.IsZero() {
		if !utils.ContainsString(instance.ObjectMeta.Finalizers, utils.SeataFinalizer) {
			instance.ObjectMeta.Finalizers = append(instance.ObjectMeta.Finalizers, utils.SeataFinalizer)
			if err = r.Client.Update(ctx, instance); err != nil {
				r.recordError(ctx, types.NamespacedName{Name: instance.Name, Namespace: instance.Namespace},
					seatav1alpha1.ErrorTypeK8s_SeataServer, fmt.Sprintf("Failed to update resource SeataServer(%v) Finalizers", instance.Name), err)
				return err
			}
		}
		return r.cleanupOrphanPVCs(ctx, instance)
	} else {
		if utils.ContainsString(instance.ObjectMeta.Finalizers, utils.SeataFinalizer) {
			if err = r.cleanUpAllPVCs(ctx, instance); err != nil {
				r.recordError(ctx, types.NamespacedName{Name: instance.Name, Namespace: instance.Namespace},
					seatav1alpha1.ErrorTypeK8s_SeataServer, fmt.Sprintf("Failed to delete resource SeataServer(%v) PVCs", instance.Name), err)
				return err
			}
			instance.ObjectMeta.Finalizers = utils.RemoveString(instance.ObjectMeta.Finalizers, utils.SeataFinalizer)
			if err = r.Client.Update(ctx, instance); err != nil {
				r.recordError(ctx, types.NamespacedName{Name: instance.Name, Namespace: instance.Namespace},
					seatav1alpha1.ErrorTypeK8s_SeataServer, fmt.Sprintf("Failed to update resource SeataServer(%v) Finalizers", instance.Name), err)
				return err
			}
		}
	}
	return nil
}