test: modify testcase of muti-mnodes
This commit is contained in:
parent
94fd30919f
commit
d01e4031bd
|
@ -21,45 +21,41 @@ class ClusterDnodes(TDDnodes):
|
|||
self.testCluster = False
|
||||
self.valgrind = 0
|
||||
self.killValgrind = 1
|
||||
self.independent = True
|
||||
self.dnodeNums = 5
|
||||
|
||||
# def getTDDnodes(dnodeNums):
|
||||
|
||||
# return
|
||||
|
||||
|
||||
class ConfigureyCluster:
|
||||
"""configure dnodes and return TDDnodes list, it can """
|
||||
"""This will create defined number of dnodes and create a cluset.
|
||||
at the same time, it will return TDDnodes list: dnodes, """
|
||||
hostname= socket.gethostname()
|
||||
|
||||
def __init__(self):
|
||||
self.dnodes = None
|
||||
self.dnodes_nums = 5
|
||||
self.dnodes = []
|
||||
self.dnodeNums = 5
|
||||
self.independent = True
|
||||
self.start_port = 6030
|
||||
self.startPort = 6030
|
||||
self.portStep = 100
|
||||
hostname1= socket.gethostname()
|
||||
self.mnodeNums = 0
|
||||
|
||||
def configure_cluster(self ,dnodes_nums=5,independent=True,start_port=6030,portStep=100,hostname="%s"%hostname1):
|
||||
self.start_port=int(start_port)
|
||||
def configure_cluster(self ,dnodeNums=5,mnodeNums=0,startPort=6030,portStep=100,hostname="%s"%hostname):
|
||||
self.startPort=int(startPort)
|
||||
self.portStep=int(portStep)
|
||||
self.hostname=hostname
|
||||
self.dnodes_nums = int(dnodes_nums)
|
||||
self.independent = independent
|
||||
self.dnodeNums = int(dnodeNums)
|
||||
self.mnodeNums = int(mnodeNums)
|
||||
self.dnodes = []
|
||||
start_port_sec = 6130
|
||||
for num in range(1, (self.dnodes_nums+1)):
|
||||
startPort_sec = int(startPort+portStep)
|
||||
for num in range(1, (self.dnodeNums+1)):
|
||||
dnode = TDDnode(num)
|
||||
dnode.addExtraCfg("firstEp", f"{hostname}:{self.start_port}")
|
||||
dnode.addExtraCfg("firstEp", f"{hostname}:{self.startPort}")
|
||||
dnode.addExtraCfg("fqdn", f"{hostname}")
|
||||
dnode.addExtraCfg("serverPort", f"{self.start_port + (num-1)*self.portStep}")
|
||||
# dnode.addExtraCfg("monitorFqdn", hostname)
|
||||
# dnode.addExtraCfg("monitorPort", 7043)
|
||||
dnode.addExtraCfg("secondEp", f"{hostname}:{start_port_sec}")
|
||||
# configure three dnoe don't support vnodes
|
||||
if self.dnodes_nums > 4 :
|
||||
if self.independent and (num < 4):
|
||||
dnode.addExtraCfg("supportVnodes", 0)
|
||||
dnode.addExtraCfg("serverPort", f"{self.startPort + (num-1)*self.portStep}")
|
||||
dnode.addExtraCfg("secondEp", f"{hostname}:{startPort_sec}")
|
||||
print(num,self.mnodeNums)
|
||||
|
||||
# configure dnoe of independent mnodes
|
||||
if num <= self.mnodeNums and self.mnodeNums != 0 :
|
||||
dnode.addExtraCfg("supportVnodes", 0)
|
||||
print("-----------------88888123131231320999999")
|
||||
# print(dnode)
|
||||
self.dnodes.append(dnode)
|
||||
return self.dnodes
|
||||
|
@ -69,24 +65,7 @@ class ConfigureyCluster:
|
|||
for dnode in self.dnodes[1:]:
|
||||
# print(dnode.cfgDict)
|
||||
dnode_id = dnode.cfgDict["fqdn"] + ":" +dnode.cfgDict["serverPort"]
|
||||
print(dnode_id)
|
||||
tdSql.execute(" create dnode '%s';"%dnode_id)
|
||||
# count=0
|
||||
# while count < 10:
|
||||
# time.sleep(1)
|
||||
# tdSql.query("show dnodes;")
|
||||
# if tdSql.checkRows(self.dnodes_nums) :
|
||||
# print("mnode is three nodes")
|
||||
# if tdSql.queryResult[0][4]=='leader' :
|
||||
# if tdSql.queryResult[2][4]=='offline':
|
||||
# if tdSql.queryResult[1][2]=='follower':
|
||||
# print("stop mnodes on dnode 3 successfully in 10s")
|
||||
# break
|
||||
# count+=1
|
||||
# else:
|
||||
# print("stop mnodes on dnode 3 failed in 10s")
|
||||
# return -1
|
||||
checkstatus=False
|
||||
|
||||
|
||||
|
||||
|
@ -97,206 +76,19 @@ class ConfigureyCluster:
|
|||
tdSql.query("show dnodes")
|
||||
# tdLog.debug(tdSql.queryResult)
|
||||
status=0
|
||||
for i in range(self.dnodes_nums):
|
||||
for i in range(self.dnodeNums):
|
||||
if tdSql.queryResult[i][4] == "ready":
|
||||
status+=1
|
||||
tdLog.debug(status)
|
||||
# tdLog.debug(status)
|
||||
|
||||
if status == self.dnodes_nums:
|
||||
tdLog.debug(" create cluster with %d dnode and check cluster dnode all ready within 5s! " %self.dnodes_nums)
|
||||
if status == self.dnodeNums:
|
||||
tdLog.debug(" create cluster with %d dnode and check cluster dnode all ready within 5s! " %self.dnodeNums)
|
||||
break
|
||||
count+=1
|
||||
time.sleep(1)
|
||||
else:
|
||||
tdLog.debug("create cluster with %d dnode but check dnode not ready within 5s ! "%self.dnodes_nums)
|
||||
tdLog.debug("create cluster with %d dnode but check dnode not ready within 5s ! "%self.dnodeNums)
|
||||
return -1
|
||||
|
||||
|
||||
cluster = ConfigureyCluster()
|
||||
|
||||
# def start(self ,dnodes_nums):
|
||||
|
||||
# self.TDDnodes = ClusterDnodes(dnodes)
|
||||
# self.TDDnodes.init("")
|
||||
# self.TDDnodes.setTestCluster(testCluster)
|
||||
# self.TDDnodes.setValgrind(valgrind)
|
||||
# self.TDDnodes.stopAll()
|
||||
# for dnode in self.TDDnodes.dnodes:
|
||||
# self.TDDnodes.deploy(dnode.index,{})
|
||||
|
||||
# for dnode in self.TDDnodes.dnodes:
|
||||
# self.TDDnodes.starttaosd(dnode.index)
|
||||
|
||||
# # create cluster
|
||||
# for dnode in self.TDDnodes.dnodes[1:]:
|
||||
# # print(dnode.cfgDict)
|
||||
# dnode_id = dnode.cfgDict["fqdn"] + ":" +dnode.cfgDict["serverPort"]
|
||||
# dnode_first_host = dnode.cfgDict["firstEp"].split(":")[0]
|
||||
# dnode_first_port = dnode.cfgDict["firstEp"].split(":")[-1]
|
||||
# cmd = f" taos -h {dnode_first_host} -P {dnode_first_port} -s ' create dnode \"{dnode_id} \" ' ;"
|
||||
# print(cmd)
|
||||
# os.system(cmd)
|
||||
|
||||
# time.sleep(2)
|
||||
# tdLog.info(" create cluster with %d dnode done! " %dnodes_nums)
|
||||
|
||||
# def buildcluster(self,dnodenumber):
|
||||
# self.depoly_cluster(dnodenumber)
|
||||
# self.master_dnode = self.TDDnodes.dnodes[0]
|
||||
# self.host=self.master_dnode.cfgDict["fqdn"]
|
||||
# conn1 = taos.connect(self.master_dnode.cfgDict["fqdn"] , config=self.master_dnode.cfgDir)
|
||||
# tdSql.init(conn1.cursor())
|
||||
|
||||
# def checkdnodes(self,dnodenumber):
|
||||
# count=0
|
||||
# while count < 10:
|
||||
# time.sleep(1)
|
||||
# statusReadyBumber=0
|
||||
# tdSql.query("show dnodes;")
|
||||
# if tdSql.checkRows(dnodenumber) :
|
||||
# print("dnode is %d nodes"%dnodenumber)
|
||||
# for i in range(dnodenumber):
|
||||
# if tdSql.queryResult[i][4] !='ready' :
|
||||
# status=tdSql.queryResult[i][4]
|
||||
# print("dnode:%d status is %s "%(i,status))
|
||||
# break
|
||||
# else:
|
||||
# statusReadyBumber+=1
|
||||
# print(statusReadyBumber)
|
||||
# if statusReadyBumber == dnodenumber :
|
||||
# print("all of %d mnodes is ready in 10s "%dnodenumber)
|
||||
# return True
|
||||
# break
|
||||
# count+=1
|
||||
# else:
|
||||
# print("%d mnodes is not ready in 10s "%dnodenumber)
|
||||
# return False
|
||||
|
||||
|
||||
# def check3mnode(self):
|
||||
# count=0
|
||||
# while count < 10:
|
||||
# time.sleep(1)
|
||||
# tdSql.query("show mnodes;")
|
||||
# if tdSql.checkRows(3) :
|
||||
# print("mnode is three nodes")
|
||||
# if tdSql.queryResult[0][2]=='leader' :
|
||||
# if tdSql.queryResult[1][2]=='follower':
|
||||
# if tdSql.queryResult[2][2]=='follower':
|
||||
# print("three mnodes is ready in 10s")
|
||||
# break
|
||||
# elif tdSql.queryResult[0][2]=='follower' :
|
||||
# if tdSql.queryResult[1][2]=='leader':
|
||||
# if tdSql.queryResult[2][2]=='follower':
|
||||
# print("three mnodes is ready in 10s")
|
||||
# break
|
||||
# elif tdSql.queryResult[0][2]=='follower' :
|
||||
# if tdSql.queryResult[1][2]=='follower':
|
||||
# if tdSql.queryResult[2][2]=='leader':
|
||||
# print("three mnodes is ready in 10s")
|
||||
# break
|
||||
# count+=1
|
||||
# else:
|
||||
# print("three mnodes is not ready in 10s ")
|
||||
# return -1
|
||||
|
||||
# tdSql.query("show mnodes;")
|
||||
# tdSql.checkRows(3)
|
||||
# tdSql.checkData(0,1,'%s:6030'%self.host)
|
||||
# tdSql.checkData(0,3,'ready')
|
||||
# tdSql.checkData(1,1,'%s:6130'%self.host)
|
||||
# tdSql.checkData(1,3,'ready')
|
||||
# tdSql.checkData(2,1,'%s:6230'%self.host)
|
||||
# tdSql.checkData(2,3,'ready')
|
||||
|
||||
# def check3mnode1off(self):
|
||||
# count=0
|
||||
# while count < 10:
|
||||
# time.sleep(1)
|
||||
# tdSql.query("show mnodes;")
|
||||
# if tdSql.checkRows(3) :
|
||||
# print("mnode is three nodes")
|
||||
# if tdSql.queryResult[0][2]=='offline' :
|
||||
# if tdSql.queryResult[1][2]=='leader':
|
||||
# if tdSql.queryResult[2][2]=='follower':
|
||||
# print("stop mnodes on dnode 2 successfully in 10s")
|
||||
# break
|
||||
# elif tdSql.queryResult[1][2]=='follower':
|
||||
# if tdSql.queryResult[2][2]=='leader':
|
||||
# print("stop mnodes on dnode 2 successfully in 10s")
|
||||
# break
|
||||
# count+=1
|
||||
# else:
|
||||
# print("stop mnodes on dnode 2 failed in 10s ")
|
||||
# return -1
|
||||
# tdSql.error("drop mnode on dnode 1;")
|
||||
|
||||
# tdSql.query("show mnodes;")
|
||||
# tdSql.checkRows(3)
|
||||
# tdSql.checkData(0,1,'%s:6030'%self.host)
|
||||
# tdSql.checkData(0,2,'offline')
|
||||
# tdSql.checkData(0,3,'ready')
|
||||
# tdSql.checkData(1,1,'%s:6130'%self.host)
|
||||
# tdSql.checkData(1,3,'ready')
|
||||
# tdSql.checkData(2,1,'%s:6230'%self.host)
|
||||
# tdSql.checkData(2,3,'ready')
|
||||
|
||||
# def check3mnode2off(self):
|
||||
# count=0
|
||||
# while count < 40:
|
||||
# time.sleep(1)
|
||||
# tdSql.query("show mnodes;")
|
||||
# if tdSql.checkRows(3) :
|
||||
# print("mnode is three nodes")
|
||||
# if tdSql.queryResult[0][2]=='leader' :
|
||||
# if tdSql.queryResult[1][2]=='offline':
|
||||
# if tdSql.queryResult[2][2]=='follower':
|
||||
# print("stop mnodes on dnode 2 successfully in 10s")
|
||||
# break
|
||||
# count+=1
|
||||
# else:
|
||||
# print("stop mnodes on dnode 2 failed in 10s ")
|
||||
# return -1
|
||||
# tdSql.error("drop mnode on dnode 2;")
|
||||
|
||||
# tdSql.query("show mnodes;")
|
||||
# tdSql.checkRows(3)
|
||||
# tdSql.checkData(0,1,'%s:6030'%self.host)
|
||||
# tdSql.checkData(0,2,'leader')
|
||||
# tdSql.checkData(0,3,'ready')
|
||||
# tdSql.checkData(1,1,'%s:6130'%self.host)
|
||||
# tdSql.checkData(1,2,'offline')
|
||||
# tdSql.checkData(1,3,'ready')
|
||||
# tdSql.checkData(2,1,'%s:6230'%self.host)
|
||||
# tdSql.checkData(2,2,'follower')
|
||||
# tdSql.checkData(2,3,'ready')
|
||||
|
||||
# def check3mnode3off(self):
|
||||
# count=0
|
||||
# while count < 10:
|
||||
# time.sleep(1)
|
||||
# tdSql.query("show mnodes;")
|
||||
# if tdSql.checkRows(3) :
|
||||
# print("mnode is three nodes")
|
||||
# if tdSql.queryResult[0][2]=='leader' :
|
||||
# if tdSql.queryResult[2][2]=='offline':
|
||||
# if tdSql.queryResult[1][2]=='follower':
|
||||
# print("stop mnodes on dnode 3 successfully in 10s")
|
||||
# break
|
||||
# count+=1
|
||||
# else:
|
||||
# print("stop mnodes on dnode 3 failed in 10s")
|
||||
# return -1
|
||||
# tdSql.error("drop mnode on dnode 3;")
|
||||
# tdSql.query("show mnodes;")
|
||||
# tdSql.checkRows(3)
|
||||
# tdSql.checkData(0,1,'%s:6030'%self.host)
|
||||
# tdSql.checkData(0,2,'leader')
|
||||
# tdSql.checkData(0,3,'ready')
|
||||
# tdSql.checkData(1,1,'%s:6130'%self.host)
|
||||
# tdSql.checkData(1,2,'follower')
|
||||
# tdSql.checkData(1,3,'ready')
|
||||
# tdSql.checkData(2,1,'%s:6230'%self.host)
|
||||
# tdSql.checkData(2,2,'offline')
|
||||
# tdSql.checkData(2,3,'ready')
|
||||
|
||||
cluster = ConfigureyCluster()
|
|
@ -159,13 +159,10 @@ class TDTestCase:
|
|||
tdSql.query("show mnodes;")
|
||||
tdSql.checkRows(3)
|
||||
tdSql.checkData(0,1,'%s:6030'%self.host)
|
||||
tdSql.checkData(0,2,'leader')
|
||||
tdSql.checkData(0,3,'ready')
|
||||
tdSql.checkData(1,1,'%s:6130'%self.host)
|
||||
tdSql.checkData(1,2,'offline')
|
||||
tdSql.checkData(1,3,'ready')
|
||||
tdSql.checkData(2,1,'%s:6230'%self.host)
|
||||
tdSql.checkData(2,2,'follower')
|
||||
tdSql.checkData(2,3,'ready')
|
||||
|
||||
def check3mnode3off(self):
|
||||
|
@ -265,13 +262,6 @@ class TDTestCase:
|
|||
while stopcount <= 2:
|
||||
for i in range(dnodenumber):
|
||||
tdDnodes[i].stoptaosd()
|
||||
# if i == 1 :
|
||||
# self.check3mnode2off()
|
||||
# elif i == 2 :
|
||||
# self.check3mnode3off()
|
||||
# elif i == 0:
|
||||
# self.check3mnode1off()
|
||||
|
||||
tdDnodes[i].starttaosd()
|
||||
# self.check3mnode()
|
||||
stopcount+=1
|
||||
|
|
|
@ -112,7 +112,7 @@ python3 ./test.py -f 2-query/twa.py
|
|||
|
||||
python3 ./test.py -f 6-cluster/5dnode1mnode.py
|
||||
python3 ./test.py -f 6-cluster/5dnode2mnode.py
|
||||
python3 ./test.py -f 6-cluster/5dnode3mnodeStop.py -N 5
|
||||
python3 ./test.py -f 6-cluster/5dnode3mnodeStop.py -N 5 -M 3
|
||||
# python3 ./test.py -f 6-cluster/5dnode3mnodeDrop.py -N 5
|
||||
# BUG python3 ./test.py -f 6-cluster/5dnode3mnodeStopInsert.py
|
||||
|
||||
|
|
|
@ -59,11 +59,12 @@ if __name__ == "__main__":
|
|||
logSql = True
|
||||
stop = 0
|
||||
restart = False
|
||||
dnodeNums = 1
|
||||
dnodeNums = 5
|
||||
mnodeNums = 0
|
||||
updateCfgDict = {}
|
||||
execCmd = ""
|
||||
opts, args = getopt.gnu_getopt(sys.argv[1:], 'f:p:m:l:scghrd:k:e:N:', [
|
||||
'file=', 'path=', 'master', 'logSql', 'stop', 'cluster', 'valgrind', 'help', 'restart', 'updateCfgDict', 'killv', 'execCmd','dnodeNums'])
|
||||
opts, args = getopt.gnu_getopt(sys.argv[1:], 'f:p:m:l:scghrd:k:e:N:M:', [
|
||||
'file=', 'path=', 'master', 'logSql', 'stop', 'cluster', 'valgrind', 'help', 'restart', 'updateCfgDict', 'killv', 'execCmd','dnodeNums','mnodeNums'])
|
||||
for key, value in opts:
|
||||
if key in ['-h', '--help']:
|
||||
tdLog.printNoPrefix(
|
||||
|
@ -79,7 +80,8 @@ if __name__ == "__main__":
|
|||
tdLog.printNoPrefix('-d update cfg dict, base64 json str')
|
||||
tdLog.printNoPrefix('-k not kill valgrind processer')
|
||||
tdLog.printNoPrefix('-e eval str to run')
|
||||
tdLog.printNoPrefix('-N create dnodes numbers clusters')
|
||||
tdLog.printNoPrefix('-N create dnodes numbers in clusters')
|
||||
tdLog.printNoPrefix('-M create mnode numbers in clusters')
|
||||
|
||||
sys.exit(0)
|
||||
|
||||
|
@ -133,6 +135,9 @@ if __name__ == "__main__":
|
|||
if key in ['-N', '--dnodeNums']:
|
||||
dnodeNums = value
|
||||
|
||||
if key in ['-M', '--mnodeNums']:
|
||||
mnodeNums = value
|
||||
|
||||
if not execCmd == "":
|
||||
tdDnodes.init(deployPath)
|
||||
print(execCmd)
|
||||
|
@ -244,9 +249,8 @@ if __name__ == "__main__":
|
|||
tdDnodes.start(1)
|
||||
tdCases.logSql(logSql)
|
||||
else :
|
||||
print("start cluster and dnodes number")
|
||||
|
||||
dnodeslist = cluster.configure_cluster(dnodes_nums=dnodeNums,independent=True)
|
||||
tdLog.debug("create an cluster with %s nodes and make %s dnode as independent mnode"%(dnodeNums,mnodeNums))
|
||||
dnodeslist = cluster.configure_cluster(dnodeNums=dnodeNums,mnodeNums=mnodeNums)
|
||||
tdDnodes = ClusterDnodes(dnodeslist)
|
||||
tdDnodes.init(deployPath, masterIp)
|
||||
tdDnodes.setTestCluster(testCluster)
|
||||
|
|
Loading…
Reference in New Issue