Fail Delete Backup if BSL is not available

Signed-off-by: Anshul Ahuja <anshul.ahu@gmail.com>
This commit is contained in:
Anshul Ahuja
2024-07-19 04:32:39 +00:00
parent 55e027897c
commit 82faa554bd
2 changed files with 12 additions and 3 deletions

View File

@@ -248,7 +248,11 @@ func (r *backupDeletionReconciler) Reconcile(ctx context.Context, req ctrl.Reque
backupStore, err := r.backupStoreGetter.Get(location, pluginManager, log)
if err != nil {
return ctrl.Result{}, errors.Wrap(err, "error getting the backup store")
_, patchErr := r.patchDeleteBackupRequest(ctx, dbr, func(r *velerov1api.DeleteBackupRequest) {
r.Status.Phase = velerov1api.DeleteBackupRequestPhaseProcessed
r.Status.Errors = append(r.Status.Errors, fmt.Sprintf("cannot delete backup because backup storage location %s is currently unavailable, error: %s", location.Name, err.Error()))
})
return ctrl.Result{}, patchErr
}
actions, err := pluginManager.GetDeleteItemActions()

View File

@@ -125,8 +125,13 @@ func TestBackupDeletionControllerReconcile(t *testing.T) {
td := setupBackupDeletionControllerTest(t, defaultTestDbr(), location, backup)
td.controller.backupStoreGetter = &fakeErrorBackupStoreGetter{}
_, err := td.controller.Reconcile(ctx, td.req)
assert.Error(t, err)
assert.True(t, strings.HasPrefix(err.Error(), "error getting the backup store"))
assert.Nil(t, err)
res := &velerov1api.DeleteBackupRequest{}
err = td.fakeClient.Get(ctx, td.req.NamespacedName, res)
require.NoError(t, err)
assert.Equal(t, "Processed", string(res.Status.Phase))
assert.Equal(t, 1, len(res.Status.Errors))
assert.True(t, strings.HasPrefix(res.Status.Errors[0], fmt.Sprintf("cannot delete backup because backup storage location %s is currently unavailable", location.Name)))
})
t.Run("missing spec.backupName", func(t *testing.T) {