X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FMemberNode.java;h=5ae53317f084f8b0f05e0023d23c581bf0e2c03e;hp=0c1a6a27606f7082450357e16fa875662137556c;hb=207129172cb981630f955170cb67efceba02df85;hpb=713762ab12bb2d37a44679c1d6a93b08750a50a6 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/MemberNode.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/MemberNode.java index 0c1a6a2760..5ae53317f0 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/MemberNode.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/MemberNode.java @@ -100,6 +100,28 @@ public class MemberNode { fail("Member(s) " + otherMembersSet + " are not Up"); } + public void waitForMemberDown(String member) { + Stopwatch sw = Stopwatch.createStarted(); + while(sw.elapsed(TimeUnit.SECONDS) <= 10) { + CurrentClusterState state = Cluster.get(kit.getSystem()).state(); + for(Member m: state.getUnreachable()) { + if(member.equals(m.getRoles().iterator().next())) { + return; + } + } + + for(Member m: state.getMembers()) { + if(m.status() != MemberStatus.up() && member.equals(m.getRoles().iterator().next())) { + return; + } + } + + Uninterruptibles.sleepUninterruptibly(100, TimeUnit.MILLISECONDS); + } + + fail("Member " + member + " is now down"); + } + public void cleanup() { if(!cleanedUp) { cleanedUp = true;