[TD-3938]<test>: add test case
This commit is contained in:
parent
408425e88b
commit
51ecfc0486
|
@ -15,6 +15,7 @@ from fabric import Connection
|
||||||
import random
|
import random
|
||||||
import time
|
import time
|
||||||
import logging
|
import logging
|
||||||
|
import os
|
||||||
|
|
||||||
class Node:
|
class Node:
|
||||||
def __init__(self, index, username, hostIP, hostName, password, homeDir):
|
def __init__(self, index, username, hostIP, hostName, password, homeDir):
|
||||||
|
@ -23,6 +24,7 @@ class Node:
|
||||||
self.hostIP = hostIP
|
self.hostIP = hostIP
|
||||||
self.hostName = hostName
|
self.hostName = hostName
|
||||||
self.homeDir = homeDir
|
self.homeDir = homeDir
|
||||||
|
self.corePath = '/coredump'
|
||||||
self.conn = Connection("{}@{}".format(username, hostName), connect_kwargs={"password": "{}".format(password)})
|
self.conn = Connection("{}@{}".format(username, hostName), connect_kwargs={"password": "{}".format(password)})
|
||||||
|
|
||||||
def buildTaosd(self):
|
def buildTaosd(self):
|
||||||
|
@ -127,21 +129,37 @@ class Node:
|
||||||
print("remove taosd error for node %d " % self.index)
|
print("remove taosd error for node %d " % self.index)
|
||||||
logging.exception(e)
|
logging.exception(e)
|
||||||
|
|
||||||
|
|
||||||
|
def detectCoredumpFile(self):
|
||||||
|
try:
|
||||||
|
result = self.conn.run("find /coredump -name 'core_*' ", hide=True)
|
||||||
|
output = result.stdout
|
||||||
|
print("output: %s" % output)
|
||||||
|
return output
|
||||||
|
except Exception as e:
|
||||||
|
print("find coredump file error on node %d " % self.index)
|
||||||
|
logging.exception(e)
|
||||||
|
|
||||||
|
|
||||||
class Nodes:
|
class Nodes:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.tdnodes = []
|
self.tdnodes = []
|
||||||
self.tdnodes.append(Node(0, 'root', '52.143.103.7', 'node1', 'a', '/root/'))
|
self.tdnodes.append(Node(0, 'root', '192.168.17.194', 'taosdata', 'r', '/root/'))
|
||||||
self.tdnodes.append(Node(1, 'root', '52.250.48.222', 'node2', 'a', '/root/'))
|
# self.tdnodes.append(Node(1, 'root', '52.250.48.222', 'node2', 'a', '/root/'))
|
||||||
self.tdnodes.append(Node(2, 'root', '51.141.167.23', 'node3', 'a', '/root/'))
|
# self.tdnodes.append(Node(2, 'root', '51.141.167.23', 'node3', 'a', '/root/'))
|
||||||
self.tdnodes.append(Node(3, 'root', '52.247.207.173', 'node4', 'a', '/root/'))
|
# self.tdnodes.append(Node(3, 'root', '52.247.207.173', 'node4', 'a', '/root/'))
|
||||||
self.tdnodes.append(Node(4, 'root', '51.141.166.100', 'node5', 'a', '/root/'))
|
# self.tdnodes.append(Node(4, 'root', '51.141.166.100', 'node5', 'a', '/root/'))
|
||||||
|
|
||||||
def stopOneNode(self, index):
|
def stopOneNode(self, index):
|
||||||
|
self.tdnodes[index].stopTaosd()
|
||||||
self.tdnodes[index].forceStopOneTaosd()
|
self.tdnodes[index].forceStopOneTaosd()
|
||||||
|
|
||||||
def startOneNode(self, index):
|
def startOneNode(self, index):
|
||||||
self.tdnodes[index].startOneTaosd()
|
self.tdnodes[index].startOneTaosd()
|
||||||
|
|
||||||
|
def detectCoredumpFile(self, index):
|
||||||
|
return self.tdnodes[index].detectCoredumpFile()
|
||||||
|
|
||||||
def stopAllTaosd(self):
|
def stopAllTaosd(self):
|
||||||
for i in range(len(self.tdnodes)):
|
for i in range(len(self.tdnodes)):
|
||||||
self.tdnodes[i].stopTaosd()
|
self.tdnodes[i].stopTaosd()
|
||||||
|
@ -166,14 +184,32 @@ class Nodes:
|
||||||
for i in range(len(self.tdnodes)):
|
for i in range(len(self.tdnodes)):
|
||||||
self.tdnodes[i].removeData()
|
self.tdnodes[i].removeData()
|
||||||
|
|
||||||
# kill taosd randomly every 10 mins
|
class Test:
|
||||||
nodes = Nodes()
|
def __init__(self):
|
||||||
loop = 0
|
self.nodes = Nodes()
|
||||||
while True:
|
|
||||||
loop = loop + 1
|
# kill taosd randomly every 10 mins
|
||||||
|
def randomlyKillDnode(self):
|
||||||
|
loop = 0
|
||||||
|
while True:
|
||||||
index = random.randint(0, 4)
|
index = random.randint(0, 4)
|
||||||
print("loop: %d, kill taosd on node%d" %(loop, index))
|
print("loop: %d, kill taosd on node%d" %(loop, index))
|
||||||
nodes.stopOneNode(index)
|
self.nodes.stopOneNode(index)
|
||||||
time.sleep(60)
|
time.sleep(60)
|
||||||
nodes.startOneNode(index)
|
self.nodes.startOneNode(index)
|
||||||
time.sleep(600)
|
time.sleep(600)
|
||||||
|
loop = loop + 1
|
||||||
|
|
||||||
|
def detectCoredump(self):
|
||||||
|
loop = 0
|
||||||
|
while True:
|
||||||
|
for i in range(len(self.nodes.tdnodes)):
|
||||||
|
result = self.nodes.detectCoredumpFile(i)
|
||||||
|
print("core file path is %s" % result)
|
||||||
|
if result and not result.isspace():
|
||||||
|
self.nodes.stopAllTaosd()
|
||||||
|
print("sleep for 10 mins")
|
||||||
|
time.sleep(600)
|
||||||
|
|
||||||
|
test = Test()
|
||||||
|
test.detectCoredump()
|
Loading…
Reference in New Issue