Introduce 'MemberDowned' member event (#25854)

* Introduce 'MemberDowned' member event

Compatiblity note: MemberEvent is a sealed trait, so it is debatable whether
it is acceptable to introduce a new member.

* Be more conservative (more like leaving), add test
This commit is contained in:
Arnout Engelen 2018-11-05 11:03:06 +01:00 committed by Christopher Batey
parent cb9b35d8ee
commit 079aa46733
6 changed files with 30 additions and 1 deletions

View file

@ -263,6 +263,14 @@ object ClusterEvent {
if (member.status != Exiting) throw new IllegalArgumentException("Expected Exiting status, got: " + member)
}
/**
* Member status changed to `MemberStatus.Down` and will be removed
* when all members have seen the `Down` status.
*/
final case class MemberDowned(member: Member) extends MemberEvent {
if (member.status != Down) throw new IllegalArgumentException("Expected Down status, got: " + member)
}
/**
* Member completely removed from the cluster.
* When `previousStatus` is `MemberStatus.Down` the node was removed
@ -449,6 +457,7 @@ object ClusterEvent {
case m if m.status == Up MemberUp(m)
case m if m.status == Leaving MemberLeft(m)
case m if m.status == Exiting MemberExited(m)
case m if m.status == Down MemberDowned(m)
// no events for other transitions
}