diff --git a/controllers/backupsession_controller.go b/controllers/backupsession_controller.go index 6d0ef1f..145ece3 100644 --- a/controllers/backupsession_controller.go +++ b/controllers/backupsession_controller.go @@ -127,8 +127,6 @@ func (r *BackupSessionReconciler) Reconcile(ctx context.Context, req ctrl.Reques default: r.Log.Error(err, "unable to do snapshot backup") // TODO: cleanup existing snapshots - r.deleteVolumeSnapshots(target) - newSessionState = formolv1alpha1.Failure } } } diff --git a/controllers/backupsession_controller_helpers.go b/controllers/backupsession_controller_helpers.go index 971cd8a..4efd47b 100644 --- a/controllers/backupsession_controller_helpers.go +++ b/controllers/backupsession_controller_helpers.go @@ -95,10 +95,9 @@ func (r *BackupSessionReconciler) backupSnapshot(target formolv1alpha1.Target) e // sidecar := formolv1alpha1.GetSidecar(backupConf, target) _, vms := formolv1alpha1.GetVolumeMounts(container, targetContainer) if err := r.snapshotVolumes(vms, targetPodSpec); err != nil { - switch err.(type) { - case *NotReadyToUseError: + if IsNotReadyToUse(err) { r.Log.V(0).Info("Some volumes are still not ready to use") - default: + } else { r.Log.Error(err, "cannot snapshot the volumes") return err } @@ -225,7 +224,7 @@ func (r *BackupSessionReconciler) createVolumeFromSnapshot(vs *volumesnapshotv1. Spec: corev1.PersistentVolumeClaimSpec{ StorageClassName: &pv.Spec.StorageClassName, //AccessModes: []corev1.PersistentVolumeAccessMode{corev1.ReadOnlyMany}, - AccessModes: pv.Spec.AccessModes, + AccessModes: pv.Spec.AccessModes, DataSource: &corev1.TypedLocalObjectReference{ APIGroup: func() *string { s := "snapshot.storage.k8s.io"; return &s }(), Kind: "VolumeSnapshot", @@ -264,11 +263,11 @@ func (r *BackupSessionReconciler) snapshotVolumes(vms []corev1.VolumeMount, podS backupPVCName, err := r.createVolumeFromSnapshot(vs) if err != nil { r.Log.Error(err, "unable to create volume from snapshot", "vs", vs) - return + return err } podSpec.Volumes[i].VolumeSource.PersistentVolumeClaim = &corev1.PersistentVolumeClaimVolumeSource{ ClaimName: backupPVCName, - ReadOnly: true, + ReadOnly: true, } // The snapshot and the volume will be deleted by the Job when the backup is over } @@ -277,7 +276,3 @@ func (r *BackupSessionReconciler) snapshotVolumes(vms []corev1.VolumeMount, podS } return } - -func (r *BackupSessionReconciler) deleteVolumeSnapshots(target formolv1alpha1.Target) error { - return nil -} diff --git a/formol b/formol index 61f45a7..8975f77 160000 --- a/formol +++ b/formol @@ -1 +1 @@ -Subproject commit 61f45a79404e1f71d9f7661d295d6ac3cd07dd8c +Subproject commit 8975f77e5858ee167508ef0359c3b9d6cbaba6ee