frostfs-node/pkg/local_object_storage/shard/mode.go
Leonard Lyubich dae8d3de5b [#189] shard: Fix missing return statement in SetMode method
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-12-11 17:19:37 +03:00

56 lines
1,020 B
Go

package shard
// Mode represents enumeration of Shard work modes.
type Mode uint32
// TODO: more detailed description of shard modes.
const (
_ Mode = iota
// ModeActive is a Mode value for active shard.
ModeActive
// ModeInactive is a Mode value for inactive shard.
ModeInactive
// ModeReadOnly is a Mode value for read-only shard.
ModeReadOnly
// ModeFault is a Mode value for faulty shard.
ModeFault
// ModeEvacuate is a Mode value for evacuating shard.
ModeEvacuate
)
func (m Mode) String() string {
switch m {
default:
return "UNDEFINED"
case ModeActive:
return "ACTIVE"
case ModeInactive:
return "INACTIVE"
case ModeReadOnly:
return "READ_ONLY"
case ModeFault:
return "FAULT"
case ModeEvacuate:
return "EVACUATE"
}
}
// SetMode sets mode of the shard.
//
// Returns any error encountered that did not allow
// to set shard mode.
func (s *Shard) SetMode(m Mode) error {
s.mode.Store(uint32(m))
return nil
}
func (s *Shard) getMode() Mode {
return Mode(s.mode.Load())
}