cleaning up delete multiple (#1668)

Co-authored-by: Cesar Celis Hernandez <celis.hernandez.cesar@gmail.com>
This commit is contained in:
adfost
2022-03-07 13:04:39 -08:00
committed by GitHub
parent 7c26d583a6
commit 433868ddf5
2 changed files with 6 additions and 29 deletions

View File

@@ -573,12 +573,7 @@ func getDeleteObjectResponse(session *models.Principal, params user_api.DeleteOb
if params.AllVersions != nil {
allVersions = *params.AllVersions
}
minClient, err := newMinioClient(session)
if err != nil {
return prepareError(err)
}
client2 := minioClient{client: minClient}
err = deleteObjects(ctx, mcClient, client2, params.BucketName, prefix, version, rec, allVersions)
err = deleteObjects(ctx, mcClient, params.BucketName, prefix, version, rec, allVersions)
if err != nil {
return prepareError(err)
}
@@ -593,11 +588,6 @@ func getDeleteMultiplePathsResponse(session *models.Principal, params user_api.D
if params.AllVersions != nil {
allVersions = *params.AllVersions
}
minClient, err := newMinioClient(session)
if err != nil {
return prepareError(err)
}
client2 := minioClient{client: minClient}
for i := 0; i < len(params.Files); i++ {
if params.Files[i].VersionID != "" {
version = params.Files[i].VersionID
@@ -610,7 +600,7 @@ func getDeleteMultiplePathsResponse(session *models.Principal, params user_api.D
// create a mc S3Client interface implementation
// defining the client to be used
mcClient := mcClient{client: s3Client}
err = deleteObjects(ctx, mcClient, client2, params.BucketName, params.Files[i].Path, version, params.Files[i].Recursive, allVersions)
err = deleteObjects(ctx, mcClient, params.BucketName, params.Files[i].Path, version, params.Files[i].Recursive, allVersions)
if err != nil {
return prepareError(err)
}
@@ -619,22 +609,10 @@ func getDeleteMultiplePathsResponse(session *models.Principal, params user_api.D
}
// deleteObjects deletes either a single object or multiple objects based on recursive flag
func deleteObjects(ctx context.Context, client MCClient, client2 MinioClient, bucket string, path string, versionID string, recursive bool, allVersions bool) error {
func deleteObjects(ctx context.Context, client MCClient, bucket string, path string, versionID string, recursive bool, allVersions bool) error {
if allVersions {
if recursive {
if err := deleteMultipleObjects(ctx, client, recursive, true); err != nil {
return err
}
} else {
objects, err := listBucketObjects(ctx, client2, bucket, path, recursive, true, false)
if err != nil {
return err
}
for i := range objects {
if err := deleteSingleObject(ctx, client, bucket, path, objects[i].VersionID); err != nil {
return err
}
}
if err := deleteMultipleObjects(ctx, client, recursive, true); err != nil {
return err
}
}
if recursive {

View File

@@ -578,7 +578,6 @@ func Test_listObjects(t *testing.T) {
func Test_deleteObjects(t *testing.T) {
ctx := context.Background()
s3Client1 := s3ClientMock{}
minioClient1 := minioClientMock{}
type args struct {
bucket string
path string
@@ -696,7 +695,7 @@ func Test_deleteObjects(t *testing.T) {
t.Run(tt.test, func(t *testing.T) {
mcListMock = tt.args.listFunc
mcRemoveMock = tt.args.removeFunc
err := deleteObjects(ctx, s3Client1, minioClient1, tt.args.bucket, tt.args.path, tt.args.versionID, tt.args.recursive, false)
err := deleteObjects(ctx, s3Client1, tt.args.bucket, tt.args.path, tt.args.versionID, tt.args.recursive, false)
if err == nil && tt.wantError != nil {
t.Errorf("deleteObjects() error: %v, wantErr: %v", err, tt.wantError)
} else if err != nil && tt.wantError == nil {