forked from TrueCloudLab/frostfs-s3-gw
[#667] Use separate copies numbers for system containers
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
This commit is contained in:
parent
42d6fc3fc6
commit
949fc0b484
15 changed files with 311 additions and 125 deletions
|
@ -521,6 +521,58 @@ func TestPutBucketLifecycleInvalidXML(t *testing.T) {
|
|||
assertS3Error(hc.t, w, apierr.GetAPIError(apierr.ErrMalformedXML))
|
||||
}
|
||||
|
||||
func TestPutBucketLifecycleCopiesNumbers(t *testing.T) {
|
||||
t.Run("with lifecycle container", func(t *testing.T) {
|
||||
hc := prepareHandlerContext(t)
|
||||
|
||||
bktName := "bucket-lifecycle"
|
||||
createBucket(hc, bktName)
|
||||
|
||||
cfg := &data.LifecycleConfiguration{
|
||||
Rules: []data.LifecycleRule{{
|
||||
Status: data.LifecycleStatusEnabled,
|
||||
Expiration: &data.LifecycleExpiration{Days: ptr(21)},
|
||||
}},
|
||||
}
|
||||
|
||||
hc.config.lifecycleCopiesNumbers = []uint32{1}
|
||||
hc.config.copiesNumbers = map[string][]uint32{"default": {2}}
|
||||
|
||||
putBucketLifecycleConfiguration(hc, bktName, cfg, map[string]string{"X-Amz-Meta-Frostfs-Copies-Number": "3"}, true)
|
||||
|
||||
objs := hc.tp.Objects()
|
||||
require.Len(t, objs, 1)
|
||||
require.EqualValues(t, hc.config.lifecycleCopiesNumbers, hc.tp.CopiesNumbers(addrFromObject(objs[0]).EncodeToString()))
|
||||
})
|
||||
|
||||
t.Run("without lifecycle container", func(t *testing.T) {
|
||||
hc := prepareWithoutContainersHandlerContext(t, false, true)
|
||||
|
||||
bktName := "bucket-lifecycle"
|
||||
createBucket(hc, bktName)
|
||||
|
||||
cfg := &data.LifecycleConfiguration{
|
||||
Rules: []data.LifecycleRule{{
|
||||
Status: data.LifecycleStatusEnabled,
|
||||
Expiration: &data.LifecycleExpiration{Days: ptr(21)},
|
||||
}},
|
||||
}
|
||||
|
||||
hc.config.lifecycleCopiesNumbers = []uint32{1}
|
||||
hc.config.copiesNumbers = map[string][]uint32{"default": {2}}
|
||||
|
||||
putBucketLifecycleConfiguration(hc, bktName, cfg, nil, true)
|
||||
objs := hc.tp.Objects()
|
||||
require.Len(t, objs, 1)
|
||||
require.EqualValues(t, []uint32{2}, hc.tp.CopiesNumbers(addrFromObject(objs[0]).EncodeToString()))
|
||||
|
||||
putBucketLifecycleConfiguration(hc, bktName, cfg, map[string]string{"X-Amz-Meta-Frostfs-Copies-Number": "3"}, true)
|
||||
objs = hc.tp.Objects()
|
||||
require.Len(t, objs, 1)
|
||||
require.EqualValues(t, []uint32{3}, hc.tp.CopiesNumbers(addrFromObject(objs[0]).EncodeToString()))
|
||||
})
|
||||
}
|
||||
|
||||
func putBucketLifecycleConfiguration(hc *handlerContext, bktName string, cfg *data.LifecycleConfiguration, headers map[string]string, addMD5 bool) {
|
||||
w := putBucketLifecycleConfigurationBase(hc, bktName, cfg, headers, addMD5)
|
||||
assertStatus(hc.t, w, http.StatusOK)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue