* The probe was remote * Default timeouts too tight for membership changes
This commit is contained in:
parent
6cb326e171
commit
e6b2d0d689
1 changed files with 28 additions and 12 deletions
|
|
@ -149,27 +149,31 @@ class BasicClusterManualSpec extends WordSpec with ScalaFutures with Eventually
|
||||||
val cluster3 = Cluster(system3)
|
val cluster3 = Cluster(system3)
|
||||||
|
|
||||||
//#cluster-subscribe
|
//#cluster-subscribe
|
||||||
val testProbe = TestProbe[MemberEvent]()
|
val probe1 = TestProbe[MemberEvent]()(system1)
|
||||||
cluster1.subscriptions ! Subscribe(testProbe.ref, classOf[MemberEvent])
|
cluster1.subscriptions ! Subscribe(probe1.ref, classOf[MemberEvent])
|
||||||
//#cluster-subscribe
|
//#cluster-subscribe
|
||||||
|
|
||||||
cluster1.manager ! Join(cluster1.selfMember.address)
|
cluster1.manager ! Join(cluster1.selfMember.address)
|
||||||
eventually {
|
eventually {
|
||||||
cluster1.state.members.toList.map(_.status) shouldEqual List(MemberStatus.up)
|
cluster1.state.members.toList.map(_.status) shouldEqual List(MemberStatus.up)
|
||||||
}
|
}
|
||||||
testProbe.expectMsg(MemberUp(cluster1.selfMember))
|
probe1.expectMsg(MemberUp(cluster1.selfMember))
|
||||||
|
|
||||||
cluster2.manager ! Join(cluster1.selfMember.address)
|
cluster2.manager ! Join(cluster1.selfMember.address)
|
||||||
testProbe.expectMsgType[MemberJoined].member.address shouldEqual cluster2.selfMember.address
|
probe1.within(10.seconds) {
|
||||||
testProbe.expectMsgType[MemberUp].member.address shouldEqual cluster2.selfMember.address
|
probe1.expectMsgType[MemberJoined].member.address shouldEqual cluster2.selfMember.address
|
||||||
|
probe1.expectMsgType[MemberUp].member.address shouldEqual cluster2.selfMember.address
|
||||||
|
}
|
||||||
eventually {
|
eventually {
|
||||||
cluster1.state.members.toList.map(_.status) shouldEqual List(MemberStatus.up, MemberStatus.up)
|
cluster1.state.members.toList.map(_.status) shouldEqual List(MemberStatus.up, MemberStatus.up)
|
||||||
cluster2.state.members.toList.map(_.status) shouldEqual List(MemberStatus.up, MemberStatus.up)
|
cluster2.state.members.toList.map(_.status) shouldEqual List(MemberStatus.up, MemberStatus.up)
|
||||||
}
|
}
|
||||||
|
|
||||||
cluster3.manager ! Join(cluster1.selfMember.address)
|
cluster3.manager ! Join(cluster1.selfMember.address)
|
||||||
testProbe.expectMsgType[MemberJoined].member.address shouldEqual cluster3.selfMember.address
|
probe1.within(10.seconds) {
|
||||||
testProbe.expectMsgType[MemberUp].member.address shouldEqual cluster3.selfMember.address
|
probe1.expectMsgType[MemberJoined].member.address shouldEqual cluster3.selfMember.address
|
||||||
|
probe1.expectMsgType[MemberUp].member.address shouldEqual cluster3.selfMember.address
|
||||||
|
}
|
||||||
eventually {
|
eventually {
|
||||||
cluster1.state.members.toList.map(_.status) shouldEqual List(MemberStatus.up, MemberStatus.up, MemberStatus.up)
|
cluster1.state.members.toList.map(_.status) shouldEqual List(MemberStatus.up, MemberStatus.up, MemberStatus.up)
|
||||||
cluster2.state.members.toList.map(_.status) shouldEqual List(MemberStatus.up, MemberStatus.up, MemberStatus.up)
|
cluster2.state.members.toList.map(_.status) shouldEqual List(MemberStatus.up, MemberStatus.up, MemberStatus.up)
|
||||||
|
|
@ -178,9 +182,11 @@ class BasicClusterManualSpec extends WordSpec with ScalaFutures with Eventually
|
||||||
|
|
||||||
//#cluster-leave-example
|
//#cluster-leave-example
|
||||||
cluster1.manager ! Leave(cluster2.selfMember.address)
|
cluster1.manager ! Leave(cluster2.selfMember.address)
|
||||||
testProbe.expectMsgType[MemberLeft].member.address shouldEqual cluster2.selfMember.address
|
probe1.within(10.seconds) {
|
||||||
testProbe.expectMsgType[MemberExited].member.address shouldEqual cluster2.selfMember.address
|
probe1.expectMsgType[MemberLeft].member.address shouldEqual cluster2.selfMember.address
|
||||||
testProbe.expectMsgType[MemberRemoved].member.address shouldEqual cluster2.selfMember.address
|
probe1.expectMsgType[MemberExited].member.address shouldEqual cluster2.selfMember.address
|
||||||
|
probe1.expectMsgType[MemberRemoved].member.address shouldEqual cluster2.selfMember.address
|
||||||
|
}
|
||||||
//#cluster-leave-example
|
//#cluster-leave-example
|
||||||
|
|
||||||
eventually {
|
eventually {
|
||||||
|
|
@ -188,11 +194,21 @@ class BasicClusterManualSpec extends WordSpec with ScalaFutures with Eventually
|
||||||
cluster3.state.members.toList.map(_.status) shouldEqual List(MemberStatus.up, MemberStatus.up)
|
cluster3.state.members.toList.map(_.status) shouldEqual List(MemberStatus.up, MemberStatus.up)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
eventually {
|
||||||
|
cluster2.isTerminated should ===(true)
|
||||||
|
}
|
||||||
|
// via coordinated shutdown
|
||||||
|
system2.whenTerminated.futureValue
|
||||||
|
|
||||||
system1.log.info("Downing node 3")
|
system1.log.info("Downing node 3")
|
||||||
cluster1.manager ! Down(cluster3.selfMember.address)
|
cluster1.manager ! Down(cluster3.selfMember.address)
|
||||||
testProbe.expectMsgType[MemberRemoved](10.seconds).member.address shouldEqual cluster3.selfMember.address
|
probe1.expectMsgType[MemberRemoved](10.seconds).member.address shouldEqual cluster3.selfMember.address
|
||||||
|
|
||||||
|
probe1.expectNoMessage()
|
||||||
|
|
||||||
|
// via coordinated shutdown
|
||||||
|
system3.whenTerminated.futureValue
|
||||||
|
|
||||||
testProbe.expectNoMessage()
|
|
||||||
} finally {
|
} finally {
|
||||||
system1.terminate().futureValue
|
system1.terminate().futureValue
|
||||||
system2.terminate().futureValue
|
system2.terminate().futureValue
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue