[#16] executor: Fix multipart expiration condition

Wrong comparison operator was used.

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
This commit is contained in:
Denis Kirillov 2024-07-30 14:53:27 +03:00
parent ba26d975e0
commit c9011f6da2
2 changed files with 31 additions and 1 deletions

View file

@ -257,7 +257,7 @@ func (e *Executor) matchMultipartByRuleFn(ni *netmap.NetworkInfo, rule data.Life
return false
}
return multipartCreationEpoch+multipartDuration >= ni.CurrentEpoch()
return multipartCreationEpoch+multipartDuration <= ni.CurrentEpoch()
}, nil
}

View file

@ -367,6 +367,36 @@ func TestExecutorMultipleRulesMultiparts(t *testing.T) {
require.Equal(t, multiparts[0].Key, "obj1")
}
func TestExecutorAbortMultipartsInDays(t *testing.T) {
ec := newExecutorContext(t)
defer ec.cancel()
bktInfo, err := ec.createBktInfo(data.VersioningUnversioned)
require.NoError(t, err)
err = ec.tree.CreateMultipartUpload(ec.ctx, bktInfo, &data.MultipartInfo{Key: "obj1", UploadID: "upload1", Meta: map[string]string{}})
require.NoError(t, err)
lifecycleCfg := &data.LifecycleConfiguration{Rules: []data.LifecycleRule{{
Status: "Enabled",
AbortIncompleteMultipartUpload: &data.AbortIncompleteMultipartUpload{DaysAfterInitiation: ptrInt(1)},
ID: "for obj1",
}}}
ec.jobs <- Job{
ContainerID: bktInfo.CID,
PrivateKey: ec.key,
LifecycleConfiguration: lifecycleCfg,
Epoch: 1000,
}
ec.close()
multiparts, err := ec.tree.GetMultipartUploadsByPrefix(ec.ctx, bktInfo, "")
require.NoError(t, err)
require.Len(t, multiparts, 0)
}
func ptrUint64(val uint64) *uint64 {
return &val
}