package governance import ( "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/morph/event" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/morph/event/rolemanagement" "github.com/nspcc-dev/neo-go/pkg/core/native" "github.com/nspcc-dev/neo-go/pkg/core/native/noderoles" "github.com/nspcc-dev/neo-go/pkg/util" "go.uber.org/zap" ) func (gp *Processor) HandleAlphabetSync(e event.Event) { var ( typ string hash util.Uint256 ) switch et := e.(type) { case Sync: typ = "sync" hash = et.TxHash() case rolemanagement.Designate: if et.Role != noderoles.NeoFSAlphabet { return } typ = native.DesignationEventName hash = et.TxHash default: return } gp.log.Info("new event", zap.String("type", typ)) // send event to the worker pool err := gp.pool.Submit(func() { gp.processAlphabetSync(hash) }) if err != nil { // there system can be moved into controlled degradation stage gp.log.Warn("governance worker pool drained", zap.Int("capacity", gp.pool.Cap())) } }