Merge pull request #18729 from hseeberger/hseeberger-18575-publish-member-joined

Publish MemberJoined
This commit is contained in:
drewhk 2015-11-11 11:23:04 +01:00
commit 48282fc753
7 changed files with 113 additions and 90 deletions

View file

@ -121,6 +121,13 @@ object ClusterEvent {
def member: Member
}
/**
* Member status changed to Joining.
*/
final case class MemberJoined(member: Member) extends MemberEvent {
if (member.status != Joining) throw new IllegalArgumentException("Expected Joining status, got: " + member)
}
/**
* Member status changed to WeaklyUp.
* A joining member can be moved to `WeaklyUp` if convergence
@ -138,6 +145,13 @@ object ClusterEvent {
if (member.status != Up) throw new IllegalArgumentException("Expected Up status, got: " + member)
}
/**
* Member status changed to Leaving.
*/
final case class MemberLeft(member: Member) extends MemberEvent {
if (member.status != Leaving) throw new IllegalArgumentException("Expected Leaving status, got: " + member)
}
/**
* Member status changed to `MemberStatus.Exiting` and will be removed
* when all members have seen the `Exiting` status.
@ -279,8 +293,10 @@ object ClusterEvent {
newMember
}
val memberEvents = (newMembers ++ changedMembers) collect {
case m if m.status == Joining MemberJoined(m)
case m if m.status == WeaklyUp MemberWeaklyUp(m)
case m if m.status == Up MemberUp(m)
case m if m.status == Leaving MemberLeft(m)
case m if m.status == Exiting MemberExited(m)
// no events for other transitions
}