From 39453de8fbcca8be35d76caed4a1b992f18fcd60 Mon Sep 17 00:00:00 2001 From: Cesar Celis Hernandez Date: Thu, 17 Mar 2022 14:27:45 -0400 Subject: [PATCH] To use DeleteMultipleObjects func and be able to debug via Browser (#1730) --- .github/workflows/jobs.yaml | 2 +- Makefile | 2 +- integration/user_api_bucket_test.go | 67 ++++++++++++++++------------- 3 files changed, 39 insertions(+), 32 deletions(-) diff --git a/.github/workflows/jobs.yaml b/.github/workflows/jobs.yaml index d1f8051bc..bf91982da 100644 --- a/.github/workflows/jobs.yaml +++ b/.github/workflows/jobs.yaml @@ -830,7 +830,7 @@ jobs: result=${result%\%} echo "result:" echo $result - threshold=51.0 + threshold=51.4 if (( $(echo "$result >= $threshold" |bc -l) )); then echo "It is equal or greater than threshold, passed!" else diff --git a/Makefile b/Makefile index b3eb62fb2..ab894a5f9 100644 --- a/Makefile +++ b/Makefile @@ -72,7 +72,7 @@ test-integration: @(docker network create --subnet=173.18.0.0/29 mynet123) @echo "docker run with MinIO Version below:" @echo $(MINIO_VERSION) - @(docker run -v /data1 -v /data2 -v /data3 -v /data4 --net=mynet123 -d --name minio --rm -p 9000:9000 -e MINIO_KMS_SECRET_KEY=my-minio-key:OSMM+vkKUTCvQs9YL/CVMIMt43HFhkUpqJxTmGl6rYw= $(MINIO_VERSION) server /data{1...4} && sleep 5) + @(docker run -v /data1 -v /data2 -v /data3 -v /data4 --net=mynet123 -d --name minio --rm -p 9000:9000 -p 9001:9001 -e MINIO_KMS_SECRET_KEY=my-minio-key:OSMM+vkKUTCvQs9YL/CVMIMt43HFhkUpqJxTmGl6rYw= $(MINIO_VERSION) server /data{1...4} --console-address ':9001' && sleep 5) @(docker run --net=mynet123 --ip=173.18.0.3 --name pgsqlcontainer --rm -p 5432:5432 -e POSTGRES_PASSWORD=password -d postgres && sleep 5) @echo "execute test and get coverage" @(cd integration && go test -coverpkg=../restapi -c -tags testrunmain . && mkdir -p coverage && ./integration.test -test.run "^Test*" -test.coverprofile=coverage/system.out) diff --git a/integration/user_api_bucket_test.go b/integration/user_api_bucket_test.go index 713c92346..b55bdfe81 100644 --- a/integration/user_api_bucket_test.go +++ b/integration/user_api_bucket_test.go @@ -232,25 +232,23 @@ func PutObjectTags(bucketName string, prefix string, tags map[string]string, ver func DeleteMultipleObjects(bucketName string, files []map[string]interface{}) (*http.Response, error) { /* - Helper function to delete multiple objects in a container. - POST: /buckets/{bucket_name}/delete-objects - files: [ - { - "path": "veniam tempor in", - "versionID": "ea dolor Duis", - "recursive": false - }, - { - "path": "proident eu esse", - "versionID": "eiusmod amet commodo", - "recursive": true - } - ] + Helper function to delete multiple objects in a container. + POST: /buckets/{bucket_name}/delete-objects + Example of the data being sent: + [ + { + "path": "testdeletemultipleobjs1.txt", + "versionID": "", + "recursive": false + }, + { + "path": "testdeletemultipleobjs2.txt", + "versionID": "", + "recursive": false + }, + ] */ - requestDataAdd := map[string]interface{}{ - "files": files, - } - requestDataJSON, _ := json.Marshal(requestDataAdd) + requestDataJSON, _ := json.Marshal(files) requestDataBody := bytes.NewReader(requestDataJSON) request, err := http.NewRequest( "POST", @@ -1767,22 +1765,31 @@ func TestDeleteMultipleObjects(t *testing.T) { } } - // 3. Delete these objects + // Prepare the files for deletion + files := make([]map[string]interface{}, numberOfFiles) for i := 1; i <= numberOfFiles; i++ { - deleteResponse, deleteError := DeleteObject( - bucketName, encodeBase64( - fileName+strconv.Itoa(i)+".txt"), false, false) - assert.Nil(deleteError) - if deleteError != nil { - log.Println(deleteError) - return - } - if deleteResponse != nil { - assert.Equal(200, deleteResponse.StatusCode, - inspectHTTPResponse(deleteResponse)) + files[i-1] = map[string]interface{}{ + "path": fileName + strconv.Itoa(i) + ".txt", + "versionID": "", + "recursive": false, } } + // 3. Delete these objects all at once + deleteResponse, deleteError := DeleteMultipleObjects( + bucketName, + files, + ) + assert.Nil(deleteError) + if deleteError != nil { + log.Println(deleteError) + return + } + if deleteResponse != nil { + assert.Equal(200, deleteResponse.StatusCode, + inspectHTTPResponse(deleteResponse)) + } + // 4. List the objects, empty list is expected! listResponse, listError := ListObjects(bucketName, "", "false") assert.Nil(listError)