[#653] Support removal old unversioned objects

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
This commit is contained in:
Denis Kirillov 2025-03-05 17:44:23 +03:00 committed by Alexey Vanin
parent c0c99a1839
commit 4a430257a4
18 changed files with 289 additions and 61 deletions

View file

@ -8,6 +8,7 @@ import (
"net/http/httptest"
"net/url"
"testing"
"time"
"git.frostfs.info/TrueCloudLab/frostfs-s3-gw/api"
"git.frostfs.info/TrueCloudLab/frostfs-s3-gw/api/data"
@ -471,6 +472,27 @@ func TestDeleteBucketByNotOwner(t *testing.T) {
deleteBucket(t, hc, bktName, http.StatusNoContent)
}
func TestRemovalOnReplace(t *testing.T) {
hc := prepareHandlerContext(t)
bktName, objName := "bucket", "object"
bktInfo := createTestBucket(hc, bktName)
putObject(hc, bktName, objName)
require.Len(t, hc.MockedPool().AllObjects(bktInfo.CID), 1)
putObject(hc, bktName, objName)
require.Len(t, hc.MockedPool().AllObjects(bktInfo.CID), 2)
hc.layerFeatures.SetRemoveOnReplace(true)
putObject(hc, bktName, objName)
time.Sleep(time.Second)
require.Len(t, hc.MockedPool().AllObjects(bktInfo.CID), 2)
}
func createBucketAndObject(tc *handlerContext, bktName, objName string) (*data.BucketInfo, *data.ObjectInfo) {
bktInfo := createTestBucket(tc, bktName)