forked from TrueCloudLab/frostfs-node
[#1796] ir/netmap: Allow to call AddPeer
with ONLINE state only
In previous implementation Inner Ring allowed storage nodes with any state to register in the network. According to the current design, only nodes with ONLINE state are allowed to enter the network map. Create new `state` sub-package of `nodevalidation` package of Inner Ring application. Define `state.NetMapCandidateValidator` type and provide `NodeValidator` interface required by the Inner Ring's processor of `Netmap` contract's notification events. Embed new validator into the one used by the Inner Ring application. From now all `AddPeer` notifications with node state other than `ONLINE` will be denied. Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
8bf82d738b
commit
8858840751
3 changed files with 99 additions and 0 deletions
|
@ -22,6 +22,7 @@ import (
|
|||
"github.com/nspcc-dev/neofs-node/pkg/innerring/processors/netmap"
|
||||
nodevalidator "github.com/nspcc-dev/neofs-node/pkg/innerring/processors/netmap/nodevalidation"
|
||||
addrvalidator "github.com/nspcc-dev/neofs-node/pkg/innerring/processors/netmap/nodevalidation/maddress"
|
||||
statevalidation "github.com/nspcc-dev/neofs-node/pkg/innerring/processors/netmap/nodevalidation/state"
|
||||
subnetvalidator "github.com/nspcc-dev/neofs-node/pkg/innerring/processors/netmap/nodevalidation/subnet"
|
||||
"github.com/nspcc-dev/neofs-node/pkg/innerring/processors/reputation"
|
||||
"github.com/nspcc-dev/neofs-node/pkg/innerring/processors/settlement"
|
||||
|
@ -689,6 +690,8 @@ func New(ctx context.Context, log *zap.Logger, cfg *viper.Viper, errChan chan<-
|
|||
}
|
||||
}
|
||||
|
||||
var netMapCandidateStateValidator statevalidation.NetMapCandidateValidator
|
||||
|
||||
// create netmap processor
|
||||
server.netmapProcessor, err = netmap.New(&netmap.Params{
|
||||
Log: log,
|
||||
|
@ -711,6 +714,7 @@ func New(ctx context.Context, log *zap.Logger, cfg *viper.Viper, errChan chan<-
|
|||
),
|
||||
AlphabetSyncHandler: alphaSync,
|
||||
NodeValidator: nodevalidator.New(
|
||||
&netMapCandidateStateValidator,
|
||||
addrvalidator.New(),
|
||||
locodeValidator,
|
||||
subnetValidator,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue