From af6366e102b9aaa049638e345ae9310eada9236c Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Tue, 8 Jun 2021 20:11:27 -0700 Subject: [PATCH] fix: allow GetBucketLifecycle in NAS gateway --- cmd/bucket-metadata-sys.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/cmd/bucket-metadata-sys.go b/cmd/bucket-metadata-sys.go index 6ce992dbd..f614d2faf 100644 --- a/cmd/bucket-metadata-sys.go +++ b/cmd/bucket-metadata-sys.go @@ -262,6 +262,22 @@ func (sys *BucketMetadataSys) GetObjectLockConfig(bucket string) (*objectlock.Co // GetLifecycleConfig returns configured lifecycle config // The returned object may not be modified. func (sys *BucketMetadataSys) GetLifecycleConfig(bucket string) (*lifecycle.Lifecycle, error) { + if globalIsGateway && globalGatewayName == NASBackendGateway { + // Only needed in case of NAS gateway. + objAPI := newObjectLayerFn() + if objAPI == nil { + return nil, errServerNotInitialized + } + meta, err := loadBucketMetadata(GlobalContext, objAPI, bucket) + if err != nil { + return nil, err + } + if meta.lifecycleConfig == nil { + return nil, BucketLifecycleNotFound{Bucket: bucket} + } + return meta.lifecycleConfig, nil + } + meta, err := sys.GetConfig(bucket) if err != nil { if errors.Is(err, errConfigNotFound) { @@ -421,6 +437,7 @@ func (sys *BucketMetadataSys) GetConfig(bucket string) (BucketMetadata, error) { sys.Lock() sys.metadataMap[bucket] = meta sys.Unlock() + return meta, nil }