[TD-14331]<fix>: make util/dnodes.py flexible (#11022)
* [TD-14331]<fix>: make util/dnodes.py flexible for 3.0 * make getPath clear
This commit is contained in:
parent
7095e7c644
commit
66f31a0077
|
@ -71,7 +71,7 @@ class TDSimClient:
|
||||||
cmd = "rm -rf " + self.logDir
|
cmd = "rm -rf " + self.logDir
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "mkdir -p " + self.logDir
|
cmd = "mkdir -p " + self.logDir
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
@ -107,36 +107,36 @@ class TDDnode:
|
||||||
self.testCluster = False
|
self.testCluster = False
|
||||||
self.valgrind = 0
|
self.valgrind = 0
|
||||||
self.cfgDict = {
|
self.cfgDict = {
|
||||||
"numOfLogLines":"100000000",
|
"numOfLogLines": "100000000",
|
||||||
"mnodeEqualVnodeNum":"0",
|
"mnodeEqualVnodeNum": "0",
|
||||||
"walLevel":"2",
|
"walLevel": "2",
|
||||||
"fsync":"1000",
|
"fsync": "1000",
|
||||||
"statusInterval":"1",
|
"statusInterval": "1",
|
||||||
"numOfMnodes":"3",
|
"numOfMnodes": "3",
|
||||||
"numOfThreadsPerCore":"2.0",
|
"numOfThreadsPerCore": "2.0",
|
||||||
"monitor":"0",
|
"monitor": "0",
|
||||||
"maxVnodeConnections":"30000",
|
"maxVnodeConnections": "30000",
|
||||||
"maxMgmtConnections":"30000",
|
"maxMgmtConnections": "30000",
|
||||||
"maxMeterConnections":"30000",
|
"maxMeterConnections": "30000",
|
||||||
"maxShellConns":"30000",
|
"maxShellConns": "30000",
|
||||||
"locale":"en_US.UTF-8",
|
"locale": "en_US.UTF-8",
|
||||||
"charset":"UTF-8",
|
"charset": "UTF-8",
|
||||||
"asyncLog":"0",
|
"asyncLog": "0",
|
||||||
"anyIp":"0",
|
"anyIp": "0",
|
||||||
"telemetryReporting":"0",
|
"telemetryReporting": "0",
|
||||||
"dDebugFlag":"135",
|
"dDebugFlag": "135",
|
||||||
"tsdbDebugFlag":"135",
|
"tsdbDebugFlag": "135",
|
||||||
"mDebugFlag":"135",
|
"mDebugFlag": "135",
|
||||||
"sdbDebugFlag":"135",
|
"sdbDebugFlag": "135",
|
||||||
"rpcDebugFlag":"135",
|
"rpcDebugFlag": "135",
|
||||||
"tmrDebugFlag":"131",
|
"tmrDebugFlag": "131",
|
||||||
"cDebugFlag":"135",
|
"cDebugFlag": "135",
|
||||||
"httpDebugFlag":"135",
|
"httpDebugFlag": "135",
|
||||||
"monitorDebugFlag":"135",
|
"monitorDebugFlag": "135",
|
||||||
"udebugFlag":"135",
|
"udebugFlag": "135",
|
||||||
"jnidebugFlag":"135",
|
"jnidebugFlag": "135",
|
||||||
"qdebugFlag":"135",
|
"qdebugFlag": "135",
|
||||||
"maxSQLLength":"1048576"
|
"maxSQLLength": "1048576"
|
||||||
}
|
}
|
||||||
|
|
||||||
def init(self, path):
|
def init(self, path):
|
||||||
|
@ -216,16 +216,16 @@ class TDDnode:
|
||||||
isFirstDir = 1
|
isFirstDir = 1
|
||||||
if updatecfgDict[0] and updatecfgDict[0][0]:
|
if updatecfgDict[0] and updatecfgDict[0][0]:
|
||||||
print(updatecfgDict[0][0])
|
print(updatecfgDict[0][0])
|
||||||
for key,value in updatecfgDict[0][0].items():
|
for key, value in updatecfgDict[0][0].items():
|
||||||
if value == 'dataDir' :
|
if value == 'dataDir':
|
||||||
if isFirstDir:
|
if isFirstDir:
|
||||||
self.cfgDict.pop('dataDir')
|
self.cfgDict.pop('dataDir')
|
||||||
self.cfg(value,key)
|
self.cfg(value, key)
|
||||||
isFirstDir = 0
|
isFirstDir = 0
|
||||||
else:
|
else:
|
||||||
self.cfg(value,key)
|
self.cfg(value, key)
|
||||||
else:
|
else:
|
||||||
self.addExtraCfg(key,value)
|
self.addExtraCfg(key, value)
|
||||||
for key, value in self.cfgDict.items():
|
for key, value in self.cfgDict.items():
|
||||||
self.cfg(key, value)
|
self.cfg(key, value)
|
||||||
|
|
||||||
|
@ -234,8 +234,7 @@ class TDDnode:
|
||||||
"dnode:%d is deployed and configured by %s" %
|
"dnode:%d is deployed and configured by %s" %
|
||||||
(self.index, self.cfgPath))
|
(self.index, self.cfgPath))
|
||||||
|
|
||||||
def getBuildPath(self):
|
def getPath(self, tool="taosd"):
|
||||||
buildPath = ""
|
|
||||||
selfPath = os.path.dirname(os.path.realpath(__file__))
|
selfPath = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
|
||||||
if ("community" in selfPath):
|
if ("community" in selfPath):
|
||||||
|
@ -243,23 +242,22 @@ class TDDnode:
|
||||||
else:
|
else:
|
||||||
projPath = selfPath[:selfPath.find("tests")]
|
projPath = selfPath[:selfPath.find("tests")]
|
||||||
|
|
||||||
|
paths = []
|
||||||
for root, dirs, files in os.walk(projPath):
|
for root, dirs, files in os.walk(projPath):
|
||||||
if (("taosd") in files):
|
if ((tool) in files):
|
||||||
rootRealPath = os.path.dirname(os.path.realpath(root))
|
rootRealPath = os.path.dirname(os.path.realpath(root))
|
||||||
if ("packaging" not in rootRealPath):
|
if ("packaging" not in rootRealPath):
|
||||||
buildPath = root[:len(root)-len("/build/bin")]
|
paths.append(os.path.join(root, tool))
|
||||||
break
|
break
|
||||||
return buildPath
|
return paths[0]
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
buildPath = self.getBuildPath()
|
binPath = self.getPath()
|
||||||
|
|
||||||
if (buildPath == ""):
|
if (binPath == ""):
|
||||||
tdLog.exit("taosd not found!")
|
tdLog.exit("taosd not found!")
|
||||||
else:
|
else:
|
||||||
tdLog.info("taosd found in %s" % buildPath)
|
tdLog.info("taosd found: %s" % binPath)
|
||||||
|
|
||||||
binPath = buildPath + "/build/bin/taosd"
|
|
||||||
|
|
||||||
if self.deployed == 0:
|
if self.deployed == 0:
|
||||||
tdLog.exit("dnode:%d is not deployed" % (self.index))
|
tdLog.exit("dnode:%d is not deployed" % (self.index))
|
||||||
|
@ -282,18 +280,22 @@ class TDDnode:
|
||||||
if self.valgrind == 0:
|
if self.valgrind == 0:
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
key = 'from offline to online'
|
key = 'from offline to online'
|
||||||
bkey = bytes(key,encoding="utf8")
|
bkey = bytes(key, encoding="utf8")
|
||||||
logFile = self.logDir + "/taosdlog.0"
|
logFile = self.logDir + "/taosdlog.0"
|
||||||
i = 0
|
i = 0
|
||||||
while not os.path.exists(logFile):
|
while not os.path.exists(logFile):
|
||||||
sleep(0.1)
|
sleep(0.1)
|
||||||
i += 1
|
i += 1
|
||||||
if i>50:
|
if i > 50:
|
||||||
break
|
break
|
||||||
popen = subprocess.Popen('tail -f ' + logFile, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
|
popen = subprocess.Popen(
|
||||||
|
'tail -f ' + logFile,
|
||||||
|
stdout=subprocess.PIPE,
|
||||||
|
stderr=subprocess.PIPE,
|
||||||
|
shell=True)
|
||||||
pid = popen.pid
|
pid = popen.pid
|
||||||
# print('Popen.pid:' + str(pid))
|
# print('Popen.pid:' + str(pid))
|
||||||
timeout = time.time() + 60*2
|
timeout = time.time() + 60 * 2
|
||||||
while True:
|
while True:
|
||||||
line = popen.stdout.readline().strip()
|
line = popen.stdout.readline().strip()
|
||||||
if bkey in line:
|
if bkey in line:
|
||||||
|
@ -303,21 +305,20 @@ class TDDnode:
|
||||||
tdLog.exit('wait too long for taosd start')
|
tdLog.exit('wait too long for taosd start')
|
||||||
tdLog.debug("the dnode:%d has been started." % (self.index))
|
tdLog.debug("the dnode:%d has been started." % (self.index))
|
||||||
else:
|
else:
|
||||||
tdLog.debug("wait 10 seconds for the dnode:%d to start." % (self.index))
|
tdLog.debug(
|
||||||
|
"wait 10 seconds for the dnode:%d to start." %
|
||||||
|
(self.index))
|
||||||
time.sleep(10)
|
time.sleep(10)
|
||||||
|
|
||||||
|
|
||||||
# time.sleep(5)
|
# time.sleep(5)
|
||||||
|
|
||||||
def startWithoutSleep(self):
|
|
||||||
buildPath = self.getBuildPath()
|
|
||||||
|
|
||||||
if (buildPath == ""):
|
def startWithoutSleep(self):
|
||||||
|
binPath = self.getPath()
|
||||||
|
|
||||||
|
if (binPath == ""):
|
||||||
tdLog.exit("taosd not found!")
|
tdLog.exit("taosd not found!")
|
||||||
else:
|
else:
|
||||||
tdLog.info("taosd found in %s" % buildPath)
|
tdLog.info("taosd found: %s" % binPath)
|
||||||
|
|
||||||
binPath = buildPath + "/build/bin/taosd"
|
|
||||||
|
|
||||||
if self.deployed == 0:
|
if self.deployed == 0:
|
||||||
tdLog.exit("dnode:%d is not deployed" % (self.index))
|
tdLog.exit("dnode:%d is not deployed" % (self.index))
|
||||||
|
@ -505,7 +506,7 @@ class TDDnodes:
|
||||||
def start(self, index):
|
def start(self, index):
|
||||||
self.check(index)
|
self.check(index)
|
||||||
self.dnodes[index - 1].start()
|
self.dnodes[index - 1].start()
|
||||||
|
|
||||||
def startWithoutSleep(self, index):
|
def startWithoutSleep(self, index):
|
||||||
self.check(index)
|
self.check(index)
|
||||||
self.dnodes[index - 1].startWithoutSleep()
|
self.dnodes[index - 1].startWithoutSleep()
|
||||||
|
|
Loading…
Reference in New Issue