From 414db326bb88ead28bb5e089dbe5ce07dbb8491a Mon Sep 17 00:00:00 2001 From: Cesar Celis Hernandez Date: Wed, 9 Mar 2022 17:07:15 -0500 Subject: [PATCH] Adding bucket encryption test (#1687) --- Makefile | 2 +- integration/user_api_bucket_test.go | 62 +++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index c4d3f8ed9..c1aa31b73 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 $(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 -e MINIO_KMS_SECRET_KEY=my-minio-key:OSMM+vkKUTCvQs9YL/CVMIMt43HFhkUpqJxTmGl6rYw= $(MINIO_VERSION) server /data{1...4} && 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 e0c52d968..1eb4ed85f 100644 --- a/integration/user_api_bucket_test.go +++ b/integration/user_api_bucket_test.go @@ -2941,3 +2941,65 @@ func TestSetBucketVersioning(t *testing.T) { } assert.Equal(false, result.IsVersioned, result) } + +func EnableBucketEncryption(bucketName string, encType string, kmsKeyID string) (*http.Response, error) { + /* + Helper function to enable bucket encryption + HTTP Verb: POST + URL: /buckets/{bucket_name}/encryption/enable + Body: + { + "encType":"sse-s3", + "kmsKeyID":"" + } + */ + requestDataAdd := map[string]interface{}{ + "encType": encType, + "kmsKeyID": kmsKeyID, + } + requestDataJSON, _ := json.Marshal(requestDataAdd) + requestDataBody := bytes.NewReader(requestDataJSON) + request, err := http.NewRequest( + "POST", "http://localhost:9090/api/v1/buckets/"+bucketName+"/encryption/enable", requestDataBody) + if err != nil { + log.Println(err) + } + request.Header.Add("Cookie", fmt.Sprintf("token=%s", token)) + request.Header.Add("Content-Type", "application/json") + + // Performing the call + client := &http.Client{ + Timeout: 2 * time.Second, + } + response, err := client.Do(request) + return response, err +} + +func TestEnableBucketEncryption(t *testing.T) { + + // Variables + assert := assert.New(t) + bucketName := "test-enable-bucket-encryption" + locking := false + versioning := false + encType := "sse-s3" + kmsKeyID := "" + + // 1. Add bucket + if !BucketGotAdded(bucketName, locking, versioning, nil, nil, assert, 201) { + return + } + + // 2. Enable Bucket's Encryption + resp, err := EnableBucketEncryption(bucketName, encType, kmsKeyID) + assert.Nil(err) + if err != nil { + log.Println(err) + return + } + if resp != nil { + assert.Equal( + 200, resp.StatusCode, "Status Code is incorrect") + } + +}