forked from TrueCloudLab/frostfs-node
47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
|
package boot
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
|
||
|
"go.uber.org/zap"
|
||
|
)
|
||
|
|
||
|
// StorageBootParams is a group of parameters
|
||
|
// for storage node bootstrap operation.
|
||
|
type StorageBootParams struct {
|
||
|
BootstrapPeerParams
|
||
|
}
|
||
|
|
||
|
// StorageBootController is an entity that performs
|
||
|
// registration of a storage node in NeoFS network.
|
||
|
type StorageBootController struct {
|
||
|
peerBoot PeerBootstrapper
|
||
|
|
||
|
bootPrm StorageBootParams
|
||
|
|
||
|
log *zap.Logger
|
||
|
}
|
||
|
|
||
|
// SetPeerBootstrapper is a PeerBootstrapper setter.
|
||
|
func (s *StorageBootController) SetPeerBootstrapper(v PeerBootstrapper) {
|
||
|
s.peerBoot = v
|
||
|
}
|
||
|
|
||
|
// SetBootParams is a storage node bootstrap parameters setter.
|
||
|
func (s *StorageBootController) SetBootParams(v StorageBootParams) {
|
||
|
s.bootPrm = v
|
||
|
}
|
||
|
|
||
|
// SetLogger is a logging component setter.
|
||
|
func (s *StorageBootController) SetLogger(v *zap.Logger) {
|
||
|
s.log = v
|
||
|
}
|
||
|
|
||
|
// Bootstrap registers storage node in NeoFS system.
|
||
|
func (s StorageBootController) Bootstrap(context.Context) {
|
||
|
// register peer in NeoFS network
|
||
|
if err := s.peerBoot.AddPeer(s.bootPrm.BootstrapPeerParams); err != nil && s.log != nil {
|
||
|
s.log.Error("could not register storage node in network")
|
||
|
}
|
||
|
}
|