未验证 提交 66f31a00 编写于 作者: sangshuduo's avatar sangshuduo 提交者: GitHub

[TD-14331]<fix>: make util/dnodes.py flexible (#11022)

* [TD-14331]<fix>: make util/dnodes.py flexible

for 3.0

* make getPath clear
上级 7095e7c6
...@@ -107,36 +107,36 @@ class TDDnode: ...@@ -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: ...@@ -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: ...@@ -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: ...@@ -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: ...@@ -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: ...@@ -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): def startWithoutSleep(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))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册