cleaning up delete multiple (#1668)
Co-authored-by: Cesar Celis Hernandez <celis.hernandez.cesar@gmail.com>
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user