Skip to content

Commit

Permalink
Only get VolumeSnapshotClass when DataUpload exists.
Browse files Browse the repository at this point in the history
Signed-off-by: Xun Jiang <[email protected]>
  • Loading branch information
blackpiglet committed Jul 3, 2024
1 parent 28d64c2 commit 78fdecb
Showing 1 changed file with 22 additions and 5 deletions.
27 changes: 22 additions & 5 deletions internal/volume/volumes_information.go
Original file line number Diff line number Diff line change
Expand Up @@ -551,6 +551,22 @@ func (v *BackupVolumesInformation) generateVolumeInfoFromPVB() {
v.volumeInfos = append(v.volumeInfos, tmpVolumeInfos...)
}

func (v *BackupVolumesInformation) getVolumeSnapshotClasses(
classes *snapshotv1api.VolumeSnapshotClassList,
) (*snapshotv1api.VolumeSnapshotClassList, error) {
if classes != nil {
return classes, nil
}

vsClassList := new(snapshotv1api.VolumeSnapshotClassList)
if err := v.crClient.List(context.TODO(), vsClassList); err != nil {
v.logger.WithError(err).Errorf("cannot list VolumeSnapshotClass %s", err.Error())
return nil, err
}

return vsClassList, nil
}

// generateVolumeInfoFromDataUpload generate BackupVolumeInfo for DataUpload.
func (v *BackupVolumesInformation) generateVolumeInfoFromDataUpload() {
if !features.IsEnabled(velerov1api.CSIFeatureFlag) {
Expand All @@ -559,11 +575,7 @@ func (v *BackupVolumesInformation) generateVolumeInfoFromDataUpload() {
}

tmpVolumeInfos := make([]*BackupVolumeInfo, 0)
vsClassList := new(snapshotv1api.VolumeSnapshotClassList)
if err := v.crClient.List(context.TODO(), vsClassList); err != nil {
v.logger.WithError(err).Errorf("cannot list VolumeSnapshotClass %s", err.Error())
return
}
var vsClassList *snapshotv1api.VolumeSnapshotClassList

for _, operation := range v.BackupOperations {
if operation.Spec.ResourceIdentifier.GroupResource.String() == kuberesource.PersistentVolumeClaims.String() {
Expand Down Expand Up @@ -593,6 +605,11 @@ func (v *BackupVolumesInformation) generateVolumeInfoFromDataUpload() {
continue
}

vsClassList, err = v.getVolumeSnapshotClasses(vsClassList)
if err != nil {
return
}

driverUsedByVSClass := ""
for index := range vsClassList.Items {
if vsClassList.Items[index].Name == dataUpload.Spec.CSISnapshot.SnapshotClass {
Expand Down

0 comments on commit 78fdecb

Please sign in to comment.