From 8c82644e0226d3e12595d3fd1107f1fdb4b656bc Mon Sep 17 00:00:00 2001 From: Shaleen Saxena Date: Thu, 5 Feb 2015 14:59:21 -0500 Subject: [PATCH] Make get followers more reliable Making the get followers more reliable, by retrying if correct number of followers is not found. Change-Id: Icfc692302a4ef5224dbd1a6c707f18a96762474b Signed-off-by: Shaleen Saxena --- test/csit/libraries/ClusterStateLibrary.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/test/csit/libraries/ClusterStateLibrary.py b/test/csit/libraries/ClusterStateLibrary.py index 8f25e415d7..1c4bc89d14 100644 --- a/test/csit/libraries/ClusterStateLibrary.py +++ b/test/csit/libraries/ClusterStateLibrary.py @@ -36,9 +36,11 @@ def getClusterRoles(shardName,numOfShards=3,numOfTries=3,sleepBetweenRetriesInSe if(resp.status_code != 200): sleep(sleepBetweenRetriesInSecs) continue + print resp.text data = json.loads(resp.text) if('value' in data): dataValue = data['value'] + print "datavalue RaftState is", dataValue['RaftState'] if(dataValue['RaftState']=='Follower'): dict[ip]='Follower' break; @@ -90,12 +92,17 @@ def getLeader(shardName,numOfShards=3,numOfTries=3,sleepBetweenRetriesInSecs=1,p # Or [] # def getFollowers (shardName,numOfShards=3,numOfTries=3,sleepBetweenRetriesInSecs=1,port=8181,*ips): - dict = getClusterRoles(shardName,numOfShards,numOfTries,sleepBetweenRetriesInSecs,port,*ips) - result = [] + for i in range(6): # Try 6 times to find all followers + dict = getClusterRoles(shardName,numOfShards,numOfTries,sleepBetweenRetriesInSecs,port,*ips) + result = [] - for ip in dict.keys(): - if(dict[ip]=='Follower'): - result.append(ip) + for ip in dict.keys(): + if(dict[ip]=='Follower'): + result.append(ip) + print "i=", i, "result=", result + if (len(result) == (len(ips) - 1)): + break; + sleep(1) return result # -- 2.36.6