Skip to content

Commit ffd3c6c

Browse files
shubham-pampattiwarsseago
authored andcommitted
OADP-2283: Remove vsc for datamover case (vmware-tanzu#278)
* remove vsc for datamover case * Move datamover deletion logic to datamover pkg * run make update
1 parent 3ec084b commit ffd3c6c

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

pkg/controller/backup_finalizer_controller.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,8 @@ func (r *backupFinalizerReconciler) Reconcile(ctx context.Context, req ctrl.Requ
250250
deleteVolumeSnapshots(volumeSnapshots, volumeSnapshotContents, log, 30, r.client, r.volumeSnapshotClient, r.resourceTimeout)
251251
}
252252
// check if the VSBs associated with the backup are in completed state, if yes then clean them up
253-
err = datamover.DeleteVSBsIfComplete(backup.Name, r.log)
253+
// Also cleanup the datamover VSCs
254+
err = datamover.CleanupDatamoverArtifacts(backup.Name, r.log, *vscList, r.volumeSnapshotClient)
254255
if err != nil {
255256
log.Error(err)
256257
}

pkg/datamover/datamover.go

+14-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ import (
55
"fmt"
66
"time"
77

8+
snapshotv1api "github.com/kubernetes-csi/external-snapshotter/client/v4/apis/volumesnapshot/v1"
9+
snapshotterClientSet "github.com/kubernetes-csi/external-snapshotter/client/v4/clientset/versioned"
10+
811
snapmoverv1alpha1 "github.com/konveyor/volume-snapshot-mover/api/v1alpha1"
912
"github.com/pkg/errors"
1013
"github.com/sirupsen/logrus"
@@ -37,7 +40,7 @@ func GetVolumeSnapMoverClient() (kbclient.Client, error) {
3740
return client, err
3841
}
3942

40-
func DeleteVSBsIfComplete(backupName string, log logrus.FieldLogger) error {
43+
func CleanupDatamoverArtifacts(backupName string, log logrus.FieldLogger, vscList snapshotv1api.VolumeSnapshotContentList, volumeSnapshotClient snapshotterClientSet.Interface) error {
4144
volumeSnapMoverClient, err := GetVolumeSnapMoverClient()
4245
if err != nil {
4346
log.Errorf(err.Error())
@@ -55,6 +58,7 @@ func DeleteVSBsIfComplete(backupName string, log logrus.FieldLogger) error {
5558
return err
5659
}
5760

61+
// clean up VSBs as well as VSCs, VSB existence implies that the VSCs are from datamover workflow
5862
if len(VSBList.Items) > 0 {
5963
err = CheckIfVolumeSnapshotBackupsAreComplete(context.Background(), VSBList, log)
6064
if err != nil {
@@ -71,6 +75,15 @@ func DeleteVSBsIfComplete(backupName string, log logrus.FieldLogger) error {
7175
return err
7276
}
7377
}
78+
79+
// Delete the VSCs
80+
for _, vsc := range vscList.Items {
81+
log.Infof("Cleaning up datamover VSC: %s", vsc.Name)
82+
err := volumeSnapshotClient.SnapshotV1().VolumeSnapshotContents().Delete(context.TODO(), vsc.Name, metav1.DeleteOptions{})
83+
if err != nil {
84+
log.Errorf("fail to delete VolumeSnapshotContent %s: %s", vsc.Namespace, err.Error())
85+
}
86+
}
7487
}
7588
return nil
7689
}

0 commit comments

Comments
 (0)