Skip to content

Commit

Permalink
fix: removing lifecycle properly (#1344)
Browse files Browse the repository at this point in the history
  • Loading branch information
harshavardhana committed Jul 18, 2020
1 parent af46bf9 commit f0e2f3a
Show file tree
Hide file tree
Showing 35 changed files with 76 additions and 67 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/go-windows.yml
Expand Up @@ -39,7 +39,7 @@ jobs:
run: |
New-Item -ItemType Directory -Path "$env:temp/certs-dir"
Copy-Item -Path testcerts\* -Destination "$env:temp/certs-dir"
Invoke-WebRequest -Uri https://dl.minio.io/server/minio/release/windows-amd64/minio.exe -OutFile $HOME/minio.exe
Invoke-WebRequest -Uri https://dl.minio.io/server/minio/release/windows-amd64/archive/minio.RELEASE.2020-07-14T19-14-30Z -OutFile $HOME/minio.exe
Start-Process -NoNewWindow -FilePath "$HOME/minio.exe" -ArgumentList "-S", "$env:temp/certs-dir", "server", "$env:temp/fs{1...4}"
$env:SSL_CERT_FILE = "$env:temp/certs-dir/public.crt"
go run functional_tests.go
2 changes: 1 addition & 1 deletion .github/workflows/go.yml
Expand Up @@ -39,7 +39,7 @@ jobs:
SSL_CERT_FILE: /tmp/certs-dir/public.crt
run: |
sudo apt-get install devscripts
wget -O /tmp/minio https://dl.min.io/server/minio/release/linux-amd64/minio
wget -O /tmp/minio https://dl.minio.io/server/minio/release/linux-amd64/archive/minio.RELEASE.2020-07-14T19-14-30Z
chmod +x /tmp/minio
mkdir -p /tmp/certs-dir
cp testcerts/* /tmp/certs-dir
Expand Down
8 changes: 4 additions & 4 deletions api-bucket-lifecycle.go
Expand Up @@ -37,7 +37,7 @@ func (c Client) SetBucketLifecycle(ctx context.Context, bucketName string, confi
}

// If lifecycle is empty then delete it.
if config == nil {
if config.Empty() {
return c.removeBucketLifecycle(ctx, bucketName)
}

Expand Down Expand Up @@ -67,7 +67,7 @@ func (c Client) putBucketLifecycle(ctx context.Context, bucketName string, buf [
}

// Execute PUT to upload a new bucket lifecycle.
resp, err := c.executeMethod(ctx, "PUT", reqMetadata)
resp, err := c.executeMethod(ctx, http.MethodPut, reqMetadata)
defer closeResponse(resp)
if err != nil {
return err
Expand All @@ -88,7 +88,7 @@ func (c Client) removeBucketLifecycle(ctx context.Context, bucketName string) er
urlValues.Set("lifecycle", "")

// Execute DELETE on objectName.
resp, err := c.executeMethod(ctx, "DELETE", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodDelete, requestMetadata{
bucketName: bucketName,
queryValues: urlValues,
contentSHA256Hex: emptySHA256Hex,
Expand Down Expand Up @@ -127,7 +127,7 @@ func (c Client) getBucketLifecycle(ctx context.Context, bucketName string) ([]by
urlValues.Set("lifecycle", "")

// Execute GET on bucket to get lifecycle.
resp, err := c.executeMethod(ctx, "GET", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodGet, requestMetadata{
bucketName: bucketName,
queryValues: urlValues,
})
Expand Down
4 changes: 2 additions & 2 deletions api-bucket-notification.go
Expand Up @@ -59,7 +59,7 @@ func (c Client) SetBucketNotification(ctx context.Context, bucketName string, co
}

// Execute PUT to upload a new bucket notification.
resp, err := c.executeMethod(ctx, "PUT", reqMetadata)
resp, err := c.executeMethod(ctx, http.MethodPut, reqMetadata)
defer closeResponse(resp)
if err != nil {
return err
Expand Down Expand Up @@ -92,7 +92,7 @@ func (c Client) getBucketNotification(ctx context.Context, bucketName string) (n
urlValues.Set("notification", "")

// Execute GET on bucket to list objects.
resp, err := c.executeMethod(ctx, "GET", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodGet, requestMetadata{
bucketName: bucketName,
queryValues: urlValues,
contentSHA256Hex: emptySHA256Hex,
Expand Down
6 changes: 3 additions & 3 deletions api-bucket-policy.go
Expand Up @@ -57,7 +57,7 @@ func (c Client) putBucketPolicy(ctx context.Context, bucketName, policy string)
}

// Execute PUT to upload a new bucket policy.
resp, err := c.executeMethod(ctx, "PUT", reqMetadata)
resp, err := c.executeMethod(ctx, http.MethodPut, reqMetadata)
defer closeResponse(resp)
if err != nil {
return err
Expand All @@ -78,7 +78,7 @@ func (c Client) removeBucketPolicy(ctx context.Context, bucketName string) error
urlValues.Set("policy", "")

// Execute DELETE on objectName.
resp, err := c.executeMethod(ctx, "DELETE", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodDelete, requestMetadata{
bucketName: bucketName,
queryValues: urlValues,
contentSHA256Hex: emptySHA256Hex,
Expand Down Expand Up @@ -115,7 +115,7 @@ func (c Client) getBucketPolicy(ctx context.Context, bucketName string) (string,
urlValues.Set("policy", "")

// Execute GET on bucket to list objects.
resp, err := c.executeMethod(ctx, "GET", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodGet, requestMetadata{
bucketName: bucketName,
queryValues: urlValues,
contentSHA256Hex: emptySHA256Hex,
Expand Down
2 changes: 1 addition & 1 deletion api-bucket-replication.go
Expand Up @@ -127,7 +127,7 @@ func (c Client) getBucketReplication(ctx context.Context, bucketName string) (cf
urlValues.Set("replication", "")

// Execute GET on bucket to get replication config.
resp, err := c.executeMethod(ctx, "GET", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodGet, requestMetadata{
bucketName: bucketName,
queryValues: urlValues,
})
Expand Down
2 changes: 1 addition & 1 deletion api-bucket-versioning.go
Expand Up @@ -53,7 +53,7 @@ func (c Client) SetBucketVersioning(ctx context.Context, bucketName string, conf
}

// Execute PUT to set a bucket versioning.
resp, err := c.executeMethod(ctx, "PUT", reqMetadata)
resp, err := c.executeMethod(ctx, http.MethodPut, reqMetadata)
defer closeResponse(resp)
if err != nil {
return err
Expand Down
6 changes: 3 additions & 3 deletions api-compose-object.go
Expand Up @@ -215,7 +215,7 @@ func (c Client) copyObjectDo(ctx context.Context, srcBucket, srcObject, destBuck
headers.Set("x-amz-copy-source", s3utils.EncodePath(srcBucket+"/"+srcObject))

// Send upload-part-copy request
resp, err := c.executeMethod(ctx, "PUT", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodPut, requestMetadata{
bucketName: destBucket,
objectName: destObject,
customHeader: headers,
Expand Down Expand Up @@ -268,7 +268,7 @@ func (c Client) copyObjectPartDo(ctx context.Context, srcBucket, srcObject, dest
queryValues.Set("partNumber", strconv.Itoa(partID))
queryValues.Set("uploadId", uploadID)

resp, err := c.executeMethod(ctx, "PUT", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodPut, requestMetadata{
bucketName: destBucket,
objectName: destObject,
customHeader: headers,
Expand Down Expand Up @@ -306,7 +306,7 @@ func (c Client) uploadPartCopy(ctx context.Context, bucket, object, uploadID str
urlValues.Set("uploadId", uploadID)

// Send upload-part-copy request
resp, err := c.executeMethod(ctx, "PUT", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodPut, requestMetadata{
bucketName: bucket,
objectName: object,
customHeader: headers,
Expand Down
2 changes: 1 addition & 1 deletion api-get-object-acl.go
Expand Up @@ -42,7 +42,7 @@ type accessControlPolicy struct {

// GetObjectACL get object ACLs
func (c Client) GetObjectACL(ctx context.Context, bucketName, objectName string) (*ObjectInfo, error) {
resp, err := c.executeMethod(ctx, "GET", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodGet, requestMetadata{
bucketName: bucketName,
objectName: objectName,
queryValues: url.Values{
Expand Down
2 changes: 1 addition & 1 deletion api-get-object.go
Expand Up @@ -619,7 +619,7 @@ func (c Client) getObject(ctx context.Context, bucketName, objectName string, op
}

// Execute GET on objectName.
resp, err := c.executeMethod(ctx, "GET", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodGet, requestMetadata{
bucketName: bucketName,
objectName: objectName,
queryValues: urlValues,
Expand Down
12 changes: 6 additions & 6 deletions api-list.go
Expand Up @@ -38,7 +38,7 @@ import (
//
func (c Client) ListBuckets(ctx context.Context) ([]BucketInfo, error) {
// Execute GET on service.
resp, err := c.executeMethod(ctx, "GET", requestMetadata{contentSHA256Hex: emptySHA256Hex})
resp, err := c.executeMethod(ctx, http.MethodGet, requestMetadata{contentSHA256Hex: emptySHA256Hex})
defer closeResponse(resp)
if err != nil {
return nil, err
Expand Down Expand Up @@ -198,7 +198,7 @@ func (c Client) listObjectsV2Query(ctx context.Context, bucketName, objectPrefix
}

// Execute GET on bucket to list objects.
resp, err := c.executeMethod(ctx, "GET", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodGet, requestMetadata{
bucketName: bucketName,
queryValues: urlValues,
contentSHA256Hex: emptySHA256Hex,
Expand Down Expand Up @@ -479,7 +479,7 @@ func (c Client) listObjectVersionsQuery(ctx context.Context, bucketName, prefix,
urlValues.Set("encoding-type", "url")

// Execute GET on bucket to list objects.
resp, err := c.executeMethod(ctx, "GET", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodGet, requestMetadata{
bucketName: bucketName,
queryValues: urlValues,
contentSHA256Hex: emptySHA256Hex,
Expand Down Expand Up @@ -567,7 +567,7 @@ func (c Client) listObjectsQuery(ctx context.Context, bucketName, objectPrefix,
urlValues.Set("encoding-type", "url")

// Execute GET on bucket to list objects.
resp, err := c.executeMethod(ctx, "GET", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodGet, requestMetadata{
bucketName: bucketName,
queryValues: urlValues,
contentSHA256Hex: emptySHA256Hex,
Expand Down Expand Up @@ -795,7 +795,7 @@ func (c Client) listMultipartUploadsQuery(ctx context.Context, bucketName, keyMa
}

// Execute GET on bucketName to list multipart uploads.
resp, err := c.executeMethod(ctx, "GET", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodGet, requestMetadata{
bucketName: bucketName,
queryValues: urlValues,
contentSHA256Hex: emptySHA256Hex,
Expand Down Expand Up @@ -915,7 +915,7 @@ func (c Client) listObjectPartsQuery(ctx context.Context, bucketName, objectName
}

// Execute GET on objectName to get list of parts.
resp, err := c.executeMethod(ctx, "GET", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodGet, requestMetadata{
bucketName: bucketName,
objectName: objectName,
queryValues: urlValues,
Expand Down
4 changes: 2 additions & 2 deletions api-object-legal-hold.go
Expand Up @@ -121,7 +121,7 @@ func (c Client) PutObjectLegalHold(ctx context.Context, bucketName, objectName s
}

// Execute PUT Object Legal Hold.
resp, err := c.executeMethod(ctx, "PUT", reqMetadata)
resp, err := c.executeMethod(ctx, http.MethodPut, reqMetadata)
defer closeResponse(resp)
if err != nil {
return err
Expand Down Expand Up @@ -152,7 +152,7 @@ func (c Client) GetObjectLegalHold(ctx context.Context, bucketName, objectName s
}

// Execute GET on bucket to list objects.
resp, err := c.executeMethod(ctx, "GET", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodGet, requestMetadata{
bucketName: bucketName,
objectName: objectName,
queryValues: urlValues,
Expand Down
4 changes: 2 additions & 2 deletions api-object-lock.go
Expand Up @@ -170,7 +170,7 @@ func (c Client) SetBucketObjectLockConfig(ctx context.Context, bucketName string
}

// Execute PUT bucket object lock configuration.
resp, err := c.executeMethod(ctx, "PUT", reqMetadata)
resp, err := c.executeMethod(ctx, http.MethodPut, reqMetadata)
defer closeResponse(resp)
if err != nil {
return err
Expand All @@ -194,7 +194,7 @@ func (c Client) GetObjectLockConfig(ctx context.Context, bucketName string) (obj
urlValues.Set("object-lock", "")

// Execute GET on bucket to list objects.
resp, err := c.executeMethod(ctx, "GET", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodGet, requestMetadata{
bucketName: bucketName,
queryValues: urlValues,
contentSHA256Hex: emptySHA256Hex,
Expand Down
4 changes: 2 additions & 2 deletions api-object-retention.go
Expand Up @@ -112,7 +112,7 @@ func (c Client) PutObjectRetention(ctx context.Context, bucketName, objectName s
}

// Execute PUT Object Retention.
resp, err := c.executeMethod(ctx, "PUT", reqMetadata)
resp, err := c.executeMethod(ctx, http.MethodPut, reqMetadata)
defer closeResponse(resp)
if err != nil {
return err
Expand Down Expand Up @@ -141,7 +141,7 @@ func (c Client) GetObjectRetention(ctx context.Context, bucketName, objectName,
urlValues.Set("versionId", versionID)
}
// Execute GET on bucket to list objects.
resp, err := c.executeMethod(ctx, "GET", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodGet, requestMetadata{
bucketName: bucketName,
objectName: objectName,
queryValues: urlValues,
Expand Down
6 changes: 3 additions & 3 deletions api-object-tagging.go
Expand Up @@ -66,7 +66,7 @@ func (c Client) PutObjectTagging(ctx context.Context, bucketName, objectName str
}

// Execute PUT to set a object tagging.
resp, err := c.executeMethod(ctx, "PUT", reqMetadata)
resp, err := c.executeMethod(ctx, http.MethodPut, reqMetadata)
defer closeResponse(resp)
if err != nil {
return err
Expand Down Expand Up @@ -98,7 +98,7 @@ func (c Client) GetObjectTagging(ctx context.Context, bucketName, objectName str
}

// Execute GET on object to get object tag(s)
resp, err := c.executeMethod(ctx, "GET", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodGet, requestMetadata{
bucketName: bucketName,
objectName: objectName,
queryValues: urlValues,
Expand Down Expand Up @@ -136,7 +136,7 @@ func (c Client) RemoveObjectTagging(ctx context.Context, bucketName, objectName
}

// Execute DELETE on object to remove object tag(s)
resp, err := c.executeMethod(ctx, "DELETE", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodDelete, requestMetadata{
bucketName: bucketName,
objectName: objectName,
queryValues: urlValues,
Expand Down
6 changes: 3 additions & 3 deletions api-presigned.go
Expand Up @@ -69,7 +69,7 @@ func (c Client) PresignedGetObject(ctx context.Context, bucketName string, objec
if err = s3utils.CheckValidObjectName(objectName); err != nil {
return nil, err
}
return c.presignURL(ctx, "GET", bucketName, objectName, expires, reqParams)
return c.presignURL(ctx, http.MethodGet, bucketName, objectName, expires, reqParams)
}

// PresignedHeadObject - Returns a presigned URL to access
Expand All @@ -80,7 +80,7 @@ func (c Client) PresignedHeadObject(ctx context.Context, bucketName string, obje
if err = s3utils.CheckValidObjectName(objectName); err != nil {
return nil, err
}
return c.presignURL(ctx, "HEAD", bucketName, objectName, expires, reqParams)
return c.presignURL(ctx, http.MethodHead, bucketName, objectName, expires, reqParams)
}

// PresignedPutObject - Returns a presigned URL to upload an object
Expand All @@ -90,7 +90,7 @@ func (c Client) PresignedPutObject(ctx context.Context, bucketName string, objec
if err = s3utils.CheckValidObjectName(objectName); err != nil {
return nil, err
}
return c.presignURL(ctx, "PUT", bucketName, objectName, expires, nil)
return c.presignURL(ctx, http.MethodPut, bucketName, objectName, expires, nil)
}

// Presign - returns a presigned URL for any http method of your choice
Expand Down
2 changes: 1 addition & 1 deletion api-put-bucket.go
Expand Up @@ -87,7 +87,7 @@ func (c Client) doMakeBucket(ctx context.Context, bucketName string, location st
}

// Execute PUT to create a new bucket.
resp, err := c.executeMethod(ctx, "PUT", reqMetadata)
resp, err := c.executeMethod(ctx, http.MethodPut, reqMetadata)
defer closeResponse(resp)
if err != nil {
return err
Expand Down
6 changes: 3 additions & 3 deletions api-put-object-multipart.go
Expand Up @@ -208,7 +208,7 @@ func (c Client) initiateMultipartUpload(ctx context.Context, bucketName, objectN
}

// Execute POST on an objectName to initiate multipart upload.
resp, err := c.executeMethod(ctx, "POST", reqMetadata)
resp, err := c.executeMethod(ctx, http.MethodPost, reqMetadata)
defer closeResponse(resp)
if err != nil {
return initiateMultipartUploadResult{}, err
Expand Down Expand Up @@ -279,7 +279,7 @@ func (c Client) uploadPart(ctx context.Context, bucketName, objectName, uploadID
}

// Execute PUT on each part.
resp, err := c.executeMethod(ctx, "PUT", reqMetadata)
resp, err := c.executeMethod(ctx, http.MethodPut, reqMetadata)
defer closeResponse(resp)
if err != nil {
return ObjectPart{}, err
Expand Down Expand Up @@ -330,7 +330,7 @@ func (c Client) completeMultipartUpload(ctx context.Context, bucketName, objectN
}

// Execute POST to complete multipart upload for an objectName.
resp, err := c.executeMethod(ctx, "POST", reqMetadata)
resp, err := c.executeMethod(ctx, http.MethodPost, reqMetadata)
defer closeResponse(resp)
if err != nil {
return UploadInfo{}, err
Expand Down
2 changes: 1 addition & 1 deletion api-put-object-streaming.go
Expand Up @@ -443,7 +443,7 @@ func (c Client) putObjectDo(ctx context.Context, bucketName, objectName string,
reqMetadata.queryValues = urlValues
}
// Execute PUT an objectName.
resp, err := c.executeMethod(ctx, "PUT", reqMetadata)
resp, err := c.executeMethod(ctx, http.MethodPut, reqMetadata)
defer closeResponse(resp)
if err != nil {
return UploadInfo{}, err
Expand Down
6 changes: 3 additions & 3 deletions api-remove.go
Expand Up @@ -38,7 +38,7 @@ func (c Client) RemoveBucket(ctx context.Context, bucketName string) error {
return err
}
// Execute DELETE on bucket.
resp, err := c.executeMethod(ctx, "DELETE", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodDelete, requestMetadata{
bucketName: bucketName,
contentSHA256Hex: emptySHA256Hex,
})
Expand Down Expand Up @@ -90,7 +90,7 @@ func (c Client) RemoveObject(ctx context.Context, bucketName, objectName string,
headers.Set(amzBypassGovernance, "true")
}
// Execute DELETE on objectName.
resp, err := c.executeMethod(ctx, "DELETE", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodDelete, requestMetadata{
bucketName: bucketName,
objectName: objectName,
contentSHA256Hex: emptySHA256Hex,
Expand Down Expand Up @@ -308,7 +308,7 @@ func (c Client) abortMultipartUpload(ctx context.Context, bucketName, objectName
urlValues.Set("uploadId", uploadID)

// Execute DELETE on multipart upload.
resp, err := c.executeMethod(ctx, "DELETE", requestMetadata{
resp, err := c.executeMethod(ctx, http.MethodDelete, requestMetadata{
bucketName: bucketName,
objectName: objectName,
queryValues: urlValues,
Expand Down

0 comments on commit f0e2f3a

Please sign in to comment.