From 979f64f53ace0edda72b16318abec6bb53f776bf Mon Sep 17 00:00:00 2001 From: WangLe1321 Date: Thu, 4 Jan 2024 14:42:32 +0800 Subject: [PATCH] br: set volume backup failed if one data plane failed --- pkg/fedvolumebackup/backup/backup_manager.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/pkg/fedvolumebackup/backup/backup_manager.go b/pkg/fedvolumebackup/backup/backup_manager.go index 86047b9240..920b5500d1 100644 --- a/pkg/fedvolumebackup/backup/backup_manager.go +++ b/pkg/fedvolumebackup/backup/backup_manager.go @@ -410,6 +410,7 @@ func (bm *backupManager) teardownVolumeBackup(ctx context.Context, volumeBackup } func (bm *backupManager) waitVolumeBackupComplete(ctx context.Context, volumeBackup *v1alpha1.VolumeBackup, backupMembers []*volumeBackupMember) error { + isBackupRunning := false for _, backupMember := range backupMembers { if pingcapv1alpha1.IsVolumeBackupInitializeFailed(backupMember.backup) || pingcapv1alpha1.IsBackupFailed(backupMember.backup) { errMsg := fmt.Sprintf("backup member %s of cluster %s failed", backupMember.backup.Name, backupMember.k8sClusterName) @@ -418,13 +419,19 @@ func (bm *backupManager) waitVolumeBackupComplete(ctx context.Context, volumeBac return nil } if !pingcapv1alpha1.IsBackupComplete(backupMember.backup) { - return controller.IgnoreErrorf( - "backup member %s of cluster %s is not complete", backupMember.backup.Name, backupMember.k8sClusterName) + isBackupRunning = true + klog.Infof( + "VolumeBackup %s/%s backup member %s of cluster %s is not complete", + volumeBackup.Namespace, volumeBackup.Name, backupMember.backup.Name, backupMember.k8sClusterName) } } - klog.Infof("VolumeBackup %s/%s backup complete", volumeBackup.Namespace, volumeBackup.Name) - return bm.setVolumeBackupComplete(&volumeBackup.Status, backupMembers) + if isBackupRunning { + return controller.IgnoreErrorf("wait VolumeBackup complete") + } else { + klog.Infof("VolumeBackup %s/%s backup complete", volumeBackup.Namespace, volumeBackup.Name) + return bm.setVolumeBackupComplete(&volumeBackup.Status, backupMembers) + } } func (bm *backupManager) setVolumeBackupSnapshotCreated(volumeBackupStatus *v1alpha1.VolumeBackupStatus) {