[#315] netmap: Add maintenance node state
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
parent
3dad44232e
commit
3d6b5d807b
2 changed files with 41 additions and 0 deletions
|
@ -558,3 +558,21 @@ func (x *NodeInfo) SetOnline() {
|
||||||
func (x NodeInfo) IsOnline() bool {
|
func (x NodeInfo) IsOnline() bool {
|
||||||
return x.m.GetState() == netmap.Online
|
return x.m.GetState() == netmap.Online
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetMaintenance sets the state of the node to "maintenance". When a node updates
|
||||||
|
// information about itself in the network map, this
|
||||||
|
// state declares temporal unavailability for a node.
|
||||||
|
//
|
||||||
|
// See also IsMaintenance.
|
||||||
|
func (x *NodeInfo) SetMaintenance() {
|
||||||
|
x.m.SetState(netmap.Maintenance)
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsMaintenance checks if the node is in the "maintenance" state.
|
||||||
|
//
|
||||||
|
// Zero NodeInfo has undefined state.
|
||||||
|
//
|
||||||
|
// See also SetMaintenance.
|
||||||
|
func (x NodeInfo) IsMaintenance() bool {
|
||||||
|
return x.m.GetState() == netmap.Maintenance
|
||||||
|
}
|
||||||
|
|
|
@ -22,3 +22,26 @@ func TestNodeInfo_SetAttribute(t *testing.T) {
|
||||||
n.SetAttribute(key, val)
|
n.SetAttribute(key, val)
|
||||||
require.Equal(t, val, n.Attribute(key))
|
require.Equal(t, val, n.Attribute(key))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestNodeInfo_Status(t *testing.T) {
|
||||||
|
var n NodeInfo
|
||||||
|
|
||||||
|
require.False(t, n.IsOnline())
|
||||||
|
require.False(t, n.IsOffline())
|
||||||
|
require.False(t, n.IsMaintenance())
|
||||||
|
|
||||||
|
n.SetOnline()
|
||||||
|
require.True(t, n.IsOnline())
|
||||||
|
require.False(t, n.IsOffline())
|
||||||
|
require.False(t, n.IsMaintenance())
|
||||||
|
|
||||||
|
n.SetOffline()
|
||||||
|
require.True(t, n.IsOffline())
|
||||||
|
require.False(t, n.IsOnline())
|
||||||
|
require.False(t, n.IsMaintenance())
|
||||||
|
|
||||||
|
n.SetMaintenance()
|
||||||
|
require.True(t, n.IsMaintenance())
|
||||||
|
require.False(t, n.IsOnline())
|
||||||
|
require.False(t, n.IsOffline())
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue