forked from TrueCloudLab/frostfs-node
[#132] Add cleanup table in netmap processor
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
This commit is contained in:
parent
9b97e95f82
commit
0c42db2c3c
3 changed files with 16 additions and 12 deletions
|
@ -4,7 +4,7 @@ import (
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/nspcc-dev/neofs-api-go/v2/netmap/grpc"
|
netmap "github.com/nspcc-dev/neofs-api-go/v2/netmap/grpc"
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
|
|
|
@ -4,20 +4,20 @@ import (
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/nspcc-dev/neofs-api-go/v2/netmap/grpc"
|
netmap "github.com/nspcc-dev/neofs-api-go/v2/netmap/grpc"
|
||||||
crypto "github.com/nspcc-dev/neofs-crypto"
|
crypto "github.com/nspcc-dev/neofs-crypto"
|
||||||
"github.com/nspcc-dev/neofs-node/pkg/util/test"
|
"github.com/nspcc-dev/neofs-node/pkg/util/test"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCleanupTable(t *testing.T) {
|
func TestCleanupTable(t *testing.T) {
|
||||||
var infos = []netmap.NodeInfo{
|
infos := []netmap.NodeInfo{
|
||||||
{PublicKey: crypto.MarshalPublicKey(&test.DecodeKey(1).PublicKey)},
|
{PublicKey: crypto.MarshalPublicKey(&test.DecodeKey(1).PublicKey)},
|
||||||
{PublicKey: crypto.MarshalPublicKey(&test.DecodeKey(2).PublicKey)},
|
{PublicKey: crypto.MarshalPublicKey(&test.DecodeKey(2).PublicKey)},
|
||||||
{PublicKey: crypto.MarshalPublicKey(&test.DecodeKey(3).PublicKey)},
|
{PublicKey: crypto.MarshalPublicKey(&test.DecodeKey(3).PublicKey)},
|
||||||
}
|
}
|
||||||
|
|
||||||
var mapInfos = map[string]struct{}{
|
mapInfos := map[string]struct{}{
|
||||||
hex.EncodeToString(infos[0].PublicKey): {},
|
hex.EncodeToString(infos[0].PublicKey): {},
|
||||||
hex.EncodeToString(infos[1].PublicKey): {},
|
hex.EncodeToString(infos[1].PublicKey): {},
|
||||||
hex.EncodeToString(infos[2].PublicKey): {},
|
hex.EncodeToString(infos[2].PublicKey): {},
|
||||||
|
@ -110,6 +110,5 @@ func TestCleanupTable(t *testing.T) {
|
||||||
}))
|
}))
|
||||||
require.EqualValues(t, len(infos)-1, cnt)
|
require.EqualValues(t, len(infos)-1, cnt)
|
||||||
})
|
})
|
||||||
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,17 +38,21 @@ type (
|
||||||
epochState EpochState
|
epochState EpochState
|
||||||
activeState ActiveState
|
activeState ActiveState
|
||||||
morphClient *client.Client
|
morphClient *client.Client
|
||||||
|
|
||||||
|
netmapSnapshot cleanupTable
|
||||||
}
|
}
|
||||||
|
|
||||||
// Params of the processor constructor.
|
// Params of the processor constructor.
|
||||||
Params struct {
|
Params struct {
|
||||||
Log *zap.Logger
|
Log *zap.Logger
|
||||||
PoolSize int
|
PoolSize int
|
||||||
NetmapContract util.Uint160
|
NetmapContract util.Uint160
|
||||||
EpochTimer EpochTimerReseter
|
EpochTimer EpochTimerReseter
|
||||||
MorphClient *client.Client
|
MorphClient *client.Client
|
||||||
EpochState EpochState
|
EpochState EpochState
|
||||||
ActiveState ActiveState
|
ActiveState ActiveState
|
||||||
|
CleanupEnabled bool
|
||||||
|
CleanupThreshold uint64 // in epochs
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -88,6 +92,7 @@ func New(p *Params) (*Processor, error) {
|
||||||
epochState: p.EpochState,
|
epochState: p.EpochState,
|
||||||
activeState: p.ActiveState,
|
activeState: p.ActiveState,
|
||||||
morphClient: p.MorphClient,
|
morphClient: p.MorphClient,
|
||||||
|
netmapSnapshot: newCleanupTable(p.CleanupEnabled, p.CleanupThreshold),
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue