From 980fb5e2ab3674287207c9388bb8fda7a142cc64 Mon Sep 17 00:00:00 2001 From: Shubhendu Date: Wed, 7 Feb 2024 03:06:22 +0530 Subject: [PATCH] Enable expired-object-all-versions (#18954) Signed-off-by: Shubhendu Ram Tripathi --- internal/bucket/lifecycle/expiration.go | 2 +- internal/bucket/lifecycle/expiration_test.go | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/internal/bucket/lifecycle/expiration.go b/internal/bucket/lifecycle/expiration.go index 064595e1e..4ba095dca 100644 --- a/internal/bucket/lifecycle/expiration.go +++ b/internal/bucket/lifecycle/expiration.go @@ -177,7 +177,7 @@ func (e Expiration) Validate() error { return errLifecycleInvalidDeleteMarker } - if !e.DeleteMarker.set && e.IsDaysNull() && e.IsDateNull() { + if !e.DeleteMarker.set && !e.DeleteAll.set && e.IsDaysNull() && e.IsDateNull() { return errXMLNotWellFormed } diff --git a/internal/bucket/lifecycle/expiration_test.go b/internal/bucket/lifecycle/expiration_test.go index 6d632194e..50cfd7b68 100644 --- a/internal/bucket/lifecycle/expiration_test.go +++ b/internal/bucket/lifecycle/expiration_test.go @@ -94,6 +94,20 @@ func TestInvalidExpiration(t *testing.T) { `, expectedErr: errLifecycleInvalidDeleteMarker, }, + { // Expiration with a valid number of days and ExpiredObjectAllVersions + inputXML: ` + 3 + true + `, + expectedErr: nil, + }, + { // Expiration with a valid ISO 8601 date and ExpiredObjectAllVersions + inputXML: ` + 2019-04-20T00:00:00Z + true + `, + expectedErr: nil, + }, } for i, tc := range validationTestCases { t.Run(fmt.Sprintf("Test %d", i+1), func(t *testing.T) {