Merge branch 'master' into wip-2112-leader-downing-spec-jboner
Conflicts: akka-cluster/src/multi-jvm/scala/akka/cluster/MultiNodeClusterSpec.scala
This commit is contained in:
commit
1b20760583
22 changed files with 786 additions and 638 deletions
|
|
@ -20,7 +20,6 @@ object MultiNodeClusterSpec {
|
|||
unreachable-nodes-reaper-frequency = 200 ms
|
||||
periodic-tasks-initial-delay = 300 ms
|
||||
}
|
||||
|
||||
akka.test {
|
||||
single-expect-default = 5 s
|
||||
}
|
||||
|
|
@ -49,8 +48,7 @@ trait MultiNodeClusterSpec { self: MultiNodeSpec ⇒
|
|||
*/
|
||||
def assertLeader(nodesInCluster: RoleName*): Unit = if (nodesInCluster.contains(mySelf)) {
|
||||
nodesInCluster.length must not be (0)
|
||||
import Member.addressOrdering
|
||||
val expectedLeader = nodesInCluster.map(role ⇒ (role, node(role).address)).sortBy(_._2).head._1
|
||||
val expectedLeader = roleOfLeader(nodesInCluster)
|
||||
cluster.isLeader must be(ifNode(expectedLeader)(true)(false))
|
||||
}
|
||||
|
||||
|
|
@ -67,7 +65,24 @@ trait MultiNodeClusterSpec { self: MultiNodeSpec ⇒
|
|||
awaitCond(cluster.convergence.isDefined, timeout)
|
||||
if (!canNotBePartOfMemberRing.isEmpty) // don't run this on an empty set
|
||||
awaitCond(
|
||||
canNotBePartOfMemberRing forall (address => !(cluster.latestGossip.members exists (_.address == address))),
|
||||
canNotBePartOfMemberRing forall (address ⇒ !(cluster.latestGossip.members exists (_.address == address))),
|
||||
timeout)
|
||||
}
|
||||
|
||||
def roleOfLeader(nodesInCluster: Seq[RoleName]): RoleName = {
|
||||
nodesInCluster.length must not be (0)
|
||||
nodesInCluster.sorted.head
|
||||
}
|
||||
|
||||
/**
|
||||
* Sort the roles in the order used by the cluster.
|
||||
*/
|
||||
implicit val clusterOrdering: Ordering[RoleName] = new Ordering[RoleName] {
|
||||
import Member.addressOrdering
|
||||
def compare(x: RoleName, y: RoleName) = addressOrdering.compare(node(x).address, node(y).address)
|
||||
}
|
||||
|
||||
def roleName(address: Address): Option[RoleName] = {
|
||||
testConductor.getNodes.await.find(node(_).address == address)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue