Merge pull request #8012 from sseago/plugin-leak
Reuse existing plugin manager for get/put volume infopull/8014/head
commit
7f9fbabb7b
|
@ -0,0 +1 @@
|
|||
Reuse existing plugin manager for get/put volume info
|
|
@ -95,6 +95,7 @@ type Backupper interface {
|
|||
outBackupFile io.Writer,
|
||||
backupItemActionResolver framework.BackupItemActionResolverV2,
|
||||
asyncBIAOperations []*itemoperation.BackupOperation,
|
||||
backupStore persistence.BackupStore,
|
||||
) error
|
||||
}
|
||||
|
||||
|
@ -610,6 +611,7 @@ func (kb *kubernetesBackupper) FinalizeBackup(
|
|||
outBackupFile io.Writer,
|
||||
backupItemActionResolver framework.BackupItemActionResolverV2,
|
||||
asyncBIAOperations []*itemoperation.BackupOperation,
|
||||
backupStore persistence.BackupStore,
|
||||
) error {
|
||||
gzw := gzip.NewWriter(outBackupFile)
|
||||
defer gzw.Close()
|
||||
|
@ -726,7 +728,7 @@ func (kb *kubernetesBackupper) FinalizeBackup(
|
|||
}).Infof("Updated %d items out of an estimated total of %d (estimate will change throughout the backup finalizer)", len(backupRequest.BackedUpItems), totalItems)
|
||||
}
|
||||
|
||||
backupStore, volumeInfos, err := kb.getVolumeInfos(*backupRequest.Backup, log)
|
||||
volumeInfos, err := kb.getVolumeInfos(*backupRequest.Backup, backupStore, log)
|
||||
if err != nil {
|
||||
log.WithError(err).Errorf("fail to get the backup VolumeInfos for backup %s", backupRequest.Name)
|
||||
return err
|
||||
|
@ -812,30 +814,15 @@ type tarWriter interface {
|
|||
|
||||
func (kb *kubernetesBackupper) getVolumeInfos(
|
||||
backup velerov1api.Backup,
|
||||
backupStore persistence.BackupStore,
|
||||
log logrus.FieldLogger,
|
||||
) (persistence.BackupStore, []*volume.BackupVolumeInfo, error) {
|
||||
location := &velerov1api.BackupStorageLocation{}
|
||||
if err := kb.kbClient.Get(context.Background(), kbclient.ObjectKey{
|
||||
Namespace: backup.Namespace,
|
||||
Name: backup.Spec.StorageLocation,
|
||||
}, location); err != nil {
|
||||
return nil, nil, errors.WithStack(err)
|
||||
}
|
||||
|
||||
pluginManager := kb.pluginManager(log)
|
||||
defer pluginManager.CleanupClients()
|
||||
|
||||
backupStore, storeErr := kb.backupStoreGetter.Get(location, pluginManager, log)
|
||||
if storeErr != nil {
|
||||
return nil, nil, storeErr
|
||||
}
|
||||
|
||||
) ([]*volume.BackupVolumeInfo, error) {
|
||||
volumeInfos, err := backupStore.GetBackupVolumeInfos(backup.Name)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return backupStore, volumeInfos, nil
|
||||
return volumeInfos, nil
|
||||
}
|
||||
|
||||
// updateVolumeInfos update the VolumeInfos according to the AsyncOperations
|
||||
|
|
|
@ -4532,7 +4532,7 @@ func TestGetVolumeInfos(t *testing.T) {
|
|||
bsl := builder.ForBackupStorageLocation("velero", "default").Result()
|
||||
require.NoError(t, h.backupper.kbClient.Create(context.Background(), bsl))
|
||||
|
||||
_, _, err := h.backupper.getVolumeInfos(*backup, h.log)
|
||||
_, err := h.backupper.getVolumeInfos(*backup, backupStore, h.log)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
|
|
|
@ -85,6 +85,7 @@ func (b *fakeBackupper) FinalizeBackup(
|
|||
outBackupFile io.Writer,
|
||||
backupItemActionResolver framework.BackupItemActionResolverV2,
|
||||
asyncBIAOperations []*itemoperation.BackupOperation,
|
||||
backupStore persistence.BackupStore,
|
||||
) error {
|
||||
args := b.Called(logger, backup, inBackupFile, outBackupFile, backupItemActionResolver, asyncBIAOperations)
|
||||
return args.Error(0)
|
||||
|
|
|
@ -184,6 +184,7 @@ func (r *backupFinalizerReconciler) Reconcile(ctx context.Context, req ctrl.Requ
|
|||
outBackupFile,
|
||||
backupItemActionsResolver,
|
||||
operations,
|
||||
backupStore,
|
||||
)
|
||||
if err != nil {
|
||||
log.WithError(err).Error("error finalizing Backup")
|
||||
|
|
|
@ -225,7 +225,7 @@ func TestBackupFinalizerReconcile(t *testing.T) {
|
|||
backupStore.On("GetBackupVolumeInfos", mock.Anything).Return(nil, nil)
|
||||
backupStore.On("PutBackupVolumeInfos", mock.Anything, mock.Anything).Return(nil)
|
||||
pluginManager.On("GetBackupItemActionsV2").Return(nil, nil)
|
||||
backupper.On("FinalizeBackup", mock.Anything, mock.Anything, mock.Anything, mock.Anything, framework.BackupItemActionResolverV2{}, mock.Anything).Return(nil)
|
||||
backupper.On("FinalizeBackup", mock.Anything, mock.Anything, mock.Anything, mock.Anything, framework.BackupItemActionResolverV2{}, mock.Anything, mock.Anything).Return(nil)
|
||||
_, err := reconciler.Reconcile(context.TODO(), ctrl.Request{NamespacedName: types.NamespacedName{Namespace: test.backup.Namespace, Name: test.backup.Name}})
|
||||
gotErr := err != nil
|
||||
assert.Equal(t, test.expectError, gotErr)
|
||||
|
|
Loading…
Reference in New Issue