forked from TrueCloudLab/frostfs-node
[#947] evacuate: Refactor evacuate parameters
Drop methods to make it easier to extend. Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
This commit is contained in:
parent
8e2a0611f4
commit
a6eb66bf9c
4 changed files with 43 additions and 61 deletions
|
@ -102,7 +102,7 @@ func TestEvacuateShard(t *testing.T) {
|
|||
checkHasObjects(t)
|
||||
|
||||
var prm EvacuateShardPrm
|
||||
prm.WithShardIDList(ids[2:3])
|
||||
prm.ShardID = ids[2:3]
|
||||
|
||||
t.Run("must be read-only", func(t *testing.T) {
|
||||
res, err := e.Evacuate(context.Background(), prm)
|
||||
|
@ -173,13 +173,13 @@ func TestEvacuateNetwork(t *testing.T) {
|
|||
require.NoError(t, e.shards[evacuateShardID].SetMode(mode.ReadOnly))
|
||||
|
||||
var prm EvacuateShardPrm
|
||||
prm.shardID = ids[0:1]
|
||||
prm.ShardID = ids[0:1]
|
||||
|
||||
res, err := e.Evacuate(context.Background(), prm)
|
||||
require.ErrorIs(t, err, errMustHaveTwoShards)
|
||||
require.Equal(t, uint64(0), res.Evacuated())
|
||||
|
||||
prm.handler = acceptOneOf(objects, 2)
|
||||
prm.Handler = acceptOneOf(objects, 2)
|
||||
|
||||
res, err = e.Evacuate(context.Background(), prm)
|
||||
require.ErrorIs(t, err, errReplication)
|
||||
|
@ -196,15 +196,15 @@ func TestEvacuateNetwork(t *testing.T) {
|
|||
require.NoError(t, e.shards[ids[1].String()].SetMode(mode.ReadOnly))
|
||||
|
||||
var prm EvacuateShardPrm
|
||||
prm.shardID = ids[1:2]
|
||||
prm.handler = acceptOneOf(objects, 2)
|
||||
prm.ShardID = ids[1:2]
|
||||
prm.Handler = acceptOneOf(objects, 2)
|
||||
|
||||
res, err := e.Evacuate(context.Background(), prm)
|
||||
require.ErrorIs(t, err, errReplication)
|
||||
require.Equal(t, uint64(2), res.Evacuated())
|
||||
|
||||
t.Run("no errors", func(t *testing.T) {
|
||||
prm.handler = acceptOneOf(objects, 3)
|
||||
prm.Handler = acceptOneOf(objects, 3)
|
||||
|
||||
res, err := e.Evacuate(context.Background(), prm)
|
||||
require.NoError(t, err)
|
||||
|
@ -233,15 +233,15 @@ func TestEvacuateNetwork(t *testing.T) {
|
|||
}
|
||||
|
||||
var prm EvacuateShardPrm
|
||||
prm.shardID = evacuateIDs
|
||||
prm.handler = acceptOneOf(objects, totalCount-1)
|
||||
prm.ShardID = evacuateIDs
|
||||
prm.Handler = acceptOneOf(objects, totalCount-1)
|
||||
|
||||
res, err := e.Evacuate(context.Background(), prm)
|
||||
require.ErrorIs(t, err, errReplication)
|
||||
require.Equal(t, totalCount-1, res.Evacuated())
|
||||
|
||||
t.Run("no errors", func(t *testing.T) {
|
||||
prm.handler = acceptOneOf(objects, totalCount)
|
||||
prm.Handler = acceptOneOf(objects, totalCount)
|
||||
|
||||
res, err := e.Evacuate(context.Background(), prm)
|
||||
require.NoError(t, err)
|
||||
|
@ -261,8 +261,8 @@ func TestEvacuateCancellation(t *testing.T) {
|
|||
require.NoError(t, e.shards[ids[1].String()].SetMode(mode.ReadOnly))
|
||||
|
||||
var prm EvacuateShardPrm
|
||||
prm.shardID = ids[1:2]
|
||||
prm.handler = func(ctx context.Context, a oid.Address, o *objectSDK.Object) error {
|
||||
prm.ShardID = ids[1:2]
|
||||
prm.Handler = func(ctx context.Context, a oid.Address, o *objectSDK.Object) error {
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
return ctx.Err()
|
||||
|
@ -292,8 +292,8 @@ func TestEvacuateSingleProcess(t *testing.T) {
|
|||
running := make(chan interface{})
|
||||
|
||||
var prm EvacuateShardPrm
|
||||
prm.shardID = ids[1:2]
|
||||
prm.handler = func(ctx context.Context, a oid.Address, o *objectSDK.Object) error {
|
||||
prm.ShardID = ids[1:2]
|
||||
prm.Handler = func(ctx context.Context, a oid.Address, o *objectSDK.Object) error {
|
||||
select {
|
||||
case <-running:
|
||||
default:
|
||||
|
@ -334,8 +334,8 @@ func TestEvacuateAsync(t *testing.T) {
|
|||
running := make(chan interface{})
|
||||
|
||||
var prm EvacuateShardPrm
|
||||
prm.shardID = ids[1:2]
|
||||
prm.handler = func(ctx context.Context, a oid.Address, o *objectSDK.Object) error {
|
||||
prm.ShardID = ids[1:2]
|
||||
prm.Handler = func(ctx context.Context, a oid.Address, o *objectSDK.Object) error {
|
||||
select {
|
||||
case <-running:
|
||||
default:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue