From 5a98518574b3deecee5f1d85f7a284589fad6e2a Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Fri, 20 Sep 2024 22:35:38 -0700 Subject: [PATCH] Revert "Add header for lifecycle config expiry to ignore replication (#1999)" This reverts commit 2a9a820e0980e4baeb39f949632fe3d8ecd5bc3b. --- api-bucket-lifecycle.go | 31 ++++++++++++------------------- api-put-object.go | 2 -- constants.go | 3 --- pkg/lifecycle/lifecycle.go | 5 ++--- 4 files changed, 14 insertions(+), 27 deletions(-) diff --git a/api-bucket-lifecycle.go b/api-bucket-lifecycle.go index 465fc151ff..fec5cece50 100644 --- a/api-bucket-lifecycle.go +++ b/api-bucket-lifecycle.go @@ -41,28 +41,23 @@ func (c *Client) SetBucketLifecycle(ctx context.Context, bucketName string, conf if config.Empty() { return c.removeBucketLifecycle(ctx, bucketName) } - expAfterRepl := config.ExpireAfterReplication - config.ExpireAfterReplication = "" + buf, err := xml.Marshal(config) if err != nil { return err } // Save the updated lifecycle. - return c.putBucketLifecycle(ctx, bucketName, buf, expAfterRepl) + return c.putBucketLifecycle(ctx, bucketName, buf) } // Saves a new bucket lifecycle. -func (c *Client) putBucketLifecycle(ctx context.Context, bucketName string, buf []byte, expAfterRepl string) error { +func (c *Client) putBucketLifecycle(ctx context.Context, bucketName string, buf []byte) error { // Get resources properly escaped and lined up before // using them in http request. urlValues := make(url.Values) urlValues.Set("lifecycle", "") - var cheaders http.Header - if expAfterRepl != "" { - cheaders = make(http.Header) - cheaders.Set(minioLifecycleExpiryAfterReplication, expAfterRepl) - } + // Content-length is mandatory for put lifecycle request reqMetadata := requestMetadata{ bucketName: bucketName, @@ -70,7 +65,6 @@ func (c *Client) putBucketLifecycle(ctx context.Context, bucketName string, buf contentBody: bytes.NewReader(buf), contentLength: int64(len(buf)), contentMD5Base64: sumMD5Base64(buf), - customHeader: cheaders, } // Execute PUT to upload a new bucket lifecycle. @@ -120,7 +114,7 @@ func (c *Client) GetBucketLifecycleWithInfo(ctx context.Context, bucketName stri return nil, time.Time{}, err } - bucketLifecycle, updatedAt, expAfterRepl, err := c.getBucketLifecycle(ctx, bucketName) + bucketLifecycle, updatedAt, err := c.getBucketLifecycle(ctx, bucketName) if err != nil { return nil, time.Time{}, err } @@ -129,12 +123,11 @@ func (c *Client) GetBucketLifecycleWithInfo(ctx context.Context, bucketName stri if err = xml.Unmarshal(bucketLifecycle, config); err != nil { return nil, time.Time{}, err } - config.ExpireAfterReplication = expAfterRepl return config, updatedAt, nil } // Request server for current bucket lifecycle. -func (c *Client) getBucketLifecycle(ctx context.Context, bucketName string) ([]byte, time.Time, string, error) { +func (c *Client) getBucketLifecycle(ctx context.Context, bucketName string) ([]byte, time.Time, error) { // Get resources properly escaped and lined up before // using them in http request. urlValues := make(url.Values) @@ -149,18 +142,18 @@ func (c *Client) getBucketLifecycle(ctx context.Context, bucketName string) ([]b defer closeResponse(resp) if err != nil { - return nil, time.Time{}, "", err + return nil, time.Time{}, err } if resp != nil { if resp.StatusCode != http.StatusOK { - return nil, time.Time{}, "", httpRespToErrorResponse(resp, bucketName, "") + return nil, time.Time{}, httpRespToErrorResponse(resp, bucketName, "") } } lcBytes, err := io.ReadAll(resp.Body) if err != nil { - return nil, time.Time{}, "", err + return nil, time.Time{}, err } const minIOLifecycleCfgUpdatedAt = "X-Minio-LifecycleConfig-UpdatedAt" @@ -168,9 +161,9 @@ func (c *Client) getBucketLifecycle(ctx context.Context, bucketName string) ([]b if timeStr := resp.Header.Get(minIOLifecycleCfgUpdatedAt); timeStr != "" { updatedAt, err = time.Parse(iso8601DateFormat, timeStr) if err != nil { - return nil, time.Time{}, "", err + return nil, time.Time{}, err } } - expAfterRepl := resp.Header.Get(minioLifecycleExpiryAfterReplication) - return lcBytes, updatedAt, expAfterRepl, nil + + return lcBytes, updatedAt, nil } diff --git a/api-put-object.go b/api-put-object.go index aefd636c00..dbb476a97b 100644 --- a/api-put-object.go +++ b/api-put-object.go @@ -45,8 +45,6 @@ const ( ReplicationStatusFailed ReplicationStatus = "FAILED" // ReplicationStatusReplica indicates object is a replica of a source ReplicationStatusReplica ReplicationStatus = "REPLICA" - // ReplicationStatusReplicaEdge indicates object is a replica of a edge source - ReplicationStatusReplicaEdge ReplicationStatus = "REPLICA-EDGE" ) // Empty returns true if no replication status set. diff --git a/constants.go b/constants.go index d536428c71..4099a37f9a 100644 --- a/constants.go +++ b/constants.go @@ -127,7 +127,4 @@ const ( minioTgtReplicationReady = "X-Minio-Replication-Ready" // Header asks if delete marker replication request can be sent by source now. isMinioTgtReplicationReady = "X-Minio-Check-Replication-Ready" - - // Header indicating if ilm expiry ignores replication status - minioLifecycleExpiryAfterReplication = "X-Minio-Lifecycle-Expiry-After-Replication" ) diff --git a/pkg/lifecycle/lifecycle.go b/pkg/lifecycle/lifecycle.go index 6a86bccb5b..e706b57de6 100644 --- a/pkg/lifecycle/lifecycle.go +++ b/pkg/lifecycle/lifecycle.go @@ -496,9 +496,8 @@ type Rule struct { // Configuration is a collection of Rule objects. type Configuration struct { - XMLName xml.Name `xml:"LifecycleConfiguration,omitempty" json:"-"` - Rules []Rule `xml:"Rule"` - ExpireAfterReplication string `xml:"-" json:"-"` + XMLName xml.Name `xml:"LifecycleConfiguration,omitempty" json:"-"` + Rules []Rule `xml:"Rule"` } // Empty check if lifecycle configuration is empty