diff options
Diffstat (limited to 'weed/s3api/object_lock_utils.go')
| -rw-r--r-- | weed/s3api/object_lock_utils.go | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/weed/s3api/object_lock_utils.go b/weed/s3api/object_lock_utils.go index 39496e14f..6b00d8595 100644 --- a/weed/s3api/object_lock_utils.go +++ b/weed/s3api/object_lock_utils.go @@ -1,6 +1,7 @@ package s3api import ( + "context" "encoding/xml" "fmt" "strconv" @@ -9,6 +10,7 @@ import ( "github.com/seaweedfs/seaweedfs/weed/glog" "github.com/seaweedfs/seaweedfs/weed/pb/filer_pb" "github.com/seaweedfs/seaweedfs/weed/s3api/s3_constants" + "github.com/seaweedfs/seaweedfs/weed/s3api/s3_objectlock" ) // ObjectLockUtils provides shared utilities for Object Lock configuration @@ -361,3 +363,28 @@ func validateDefaultRetention(retention *DefaultRetention) error { return nil } + +// ==================================================================== +// SHARED OBJECT LOCK CHECKING FUNCTIONS +// ==================================================================== +// These functions delegate to s3_objectlock package to avoid code duplication. +// They are kept here for backward compatibility with existing callers. + +// EntryHasActiveLock checks if an entry has an active retention or legal hold +// Delegates to s3_objectlock.EntryHasActiveLock +func EntryHasActiveLock(entry *filer_pb.Entry, currentTime time.Time) bool { + return s3_objectlock.EntryHasActiveLock(entry, currentTime) +} + +// HasObjectsWithActiveLocks checks if any objects in the bucket have active retention or legal hold +// Delegates to s3_objectlock.HasObjectsWithActiveLocks +func HasObjectsWithActiveLocks(ctx context.Context, client filer_pb.SeaweedFilerClient, bucketPath string) (bool, error) { + return s3_objectlock.HasObjectsWithActiveLocks(ctx, client, bucketPath) +} + +// CheckBucketForLockedObjects is a unified function that checks if a bucket has Object Lock enabled +// and if so, scans for objects with active locks. +// Delegates to s3_objectlock.CheckBucketForLockedObjects +func CheckBucketForLockedObjects(ctx context.Context, client filer_pb.SeaweedFilerClient, bucketsPath, bucketName string) error { + return s3_objectlock.CheckBucketForLockedObjects(ctx, client, bucketsPath, bucketName) +} |
