def committed1(looper, nodeSet, client1, prepared1, faultyNodes): checkCommited(looper, nodeSet, prepared1, range(getNoInstances(len(nodeSet))), faultyNodes) return prepared1
def preprepared1(looper, nodeSet, propagated1, faultyNodes): checkPrePrepared(looper, nodeSet, propagated1, range(getNoInstances(len(nodeSet))), faultyNodes) return propagated1
def testPrimarySelectionAfterViewChange(looper, nodeSet, ready, primaryReplicas, viewChangeDone): """ Test that primary replica of a protocol instance shifts to a new node after a view change. """ # Primary replicas before view change prBeforeVC = primaryReplicas # Primary replicas after view change instanceCount = getNoInstances(nodeCount) prAfterVC = [getPrimaryReplica(nodeSet, i) for i in range(instanceCount)] # Primary replicas have moved to the next node for br, ar in zip(prBeforeVC, prAfterVC): assert ar.node.rank - br.node.rank == 1 checkProtocolInstanceSetup(looper, nodeSet, retryWait=1, timeout=5)
def replied1(looper, nodeSet, client1, committed1): for instId in range(getNoInstances(len(nodeSet))): primaryReplica = getPrimaryReplica(nodeSet, instId) looper.run(*[eventually(checkRequestReturnedToNode, node, client1.clientId, committed1.reqId, committed1.digest, instId, retryWait=1, timeout=30) for node in nodeSet]) looper.run(eventually( checkSufficientRepliesRecvd, client1.inBox, committed1.reqId, 2, retryWait=2, timeout=30)) return committed1
def primaryReplicas(nodeSet): instanceCount = getNoInstances(nodeCount) return [getPrimaryReplica(nodeSet, i) for i in range(instanceCount)]