Merge remote-tracking branch 'origin/develop' into feature/TD-1925
This commit is contained in:
commit
63b1615746
|
@ -250,7 +250,7 @@ static int32_t mnodeCheckDbCfg(SDbCfg *pCfg) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pCfg->daysToKeep2 < TSDB_MIN_KEEP || pCfg->daysToKeep2 > pCfg->daysToKeep) {
|
if (pCfg->daysToKeep2 < TSDB_MIN_KEEP || pCfg->daysToKeep2 > pCfg->daysToKeep) {
|
||||||
mError("invalid db option daysToKeep2:%d valid range: [%d, %d]", pCfg->daysToKeep, TSDB_MIN_KEEP, pCfg->daysToKeep);
|
mError("invalid db option daysToKeep2:%d valid range: [%d, %d]", pCfg->daysToKeep2, TSDB_MIN_KEEP, pCfg->daysToKeep);
|
||||||
return TSDB_CODE_MND_INVALID_DB_OPTION_KEEP;
|
return TSDB_CODE_MND_INVALID_DB_OPTION_KEEP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,249 @@
|
||||||
|
#!/usr/bin/python3
|
||||||
|
###################################################################
|
||||||
|
# Copyright (c) 2016 by TAOS Technologies, Inc.
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# This file is proprietary and confidential to TAOS Technologies.
|
||||||
|
# No part of this file may be reproduced, stored, transmitted,
|
||||||
|
# disclosed or used in any form or by any means other than as
|
||||||
|
# expressly provided by the written permission from Jianhui Tao
|
||||||
|
#
|
||||||
|
###################################################################
|
||||||
|
# install pip
|
||||||
|
# pip install src/connector/python/linux/python2/
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
import os.path
|
||||||
|
import time
|
||||||
|
import glob
|
||||||
|
import getopt
|
||||||
|
import subprocess
|
||||||
|
from shutil import which
|
||||||
|
from multipledispatch import dispatch
|
||||||
|
|
||||||
|
|
||||||
|
@dispatch(str, str)
|
||||||
|
def v_print(msg: str, arg: str):
|
||||||
|
if verbose:
|
||||||
|
print(msg % arg)
|
||||||
|
|
||||||
|
|
||||||
|
@dispatch(str, int)
|
||||||
|
def v_print(msg: str, arg: int):
|
||||||
|
if verbose:
|
||||||
|
print(msg % int(arg))
|
||||||
|
|
||||||
|
|
||||||
|
@dispatch(str, int, int)
|
||||||
|
def v_print(msg: str, arg1: int, arg2: int):
|
||||||
|
if verbose:
|
||||||
|
print(msg % (int(arg1), int(arg2)))
|
||||||
|
|
||||||
|
|
||||||
|
@dispatch(str, int, int, int)
|
||||||
|
def v_print(msg: str, arg1: int, arg2: int, arg3: int):
|
||||||
|
if verbose:
|
||||||
|
print(msg % (int(arg1), int(arg2), int(arg3)))
|
||||||
|
|
||||||
|
|
||||||
|
@dispatch(str, int, int, int, int)
|
||||||
|
def v_print(msg: str, arg1: int, arg2: int, arg3: int, arg4: int):
|
||||||
|
if verbose:
|
||||||
|
print(msg % (int(arg1), int(arg2), int(arg3), int(arg4)))
|
||||||
|
|
||||||
|
|
||||||
|
def isHiveMQInstalled():
|
||||||
|
v_print("%s", "Check if HiveMQ installed")
|
||||||
|
defaultHiveMQPath = "/opt/hivemq*"
|
||||||
|
hiveMQDir = glob.glob(defaultHiveMQPath)
|
||||||
|
if (len(hiveMQDir) == 0):
|
||||||
|
v_print("%s", "ERROR: HiveMQ NOT found")
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
v_print("HiveMQ installed at %s", hiveMQDir[0])
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def isMosquittoInstalled():
|
||||||
|
v_print("%s", "Check if mosquitto installed")
|
||||||
|
if not which('mosquitto_pub'):
|
||||||
|
v_print("%s", "ERROR: mosquitto is NOT installed")
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def installExtension():
|
||||||
|
currentDir = os.getcwd()
|
||||||
|
extDir = 'src/connector/hivemq-tdengine-extension'
|
||||||
|
os.chdir('../..')
|
||||||
|
os.system('git submodule update --init -- %s' % extDir)
|
||||||
|
os.chdir(extDir)
|
||||||
|
v_print("%s", "build extension..")
|
||||||
|
os.system('mvn clean package')
|
||||||
|
|
||||||
|
tdExtensionZip = 'target/hivemq-tdengine-extension*.zip'
|
||||||
|
tdExtensionZipDir = glob.glob(tdExtensionZip)
|
||||||
|
|
||||||
|
defaultHiveMQPath = "/opt/hivemq*"
|
||||||
|
hiveMQDir = glob.glob(defaultHiveMQPath)
|
||||||
|
extPath = hiveMQDir[0] + '/extensions'
|
||||||
|
|
||||||
|
tdExtDir = glob.glob(extPath + '/hivemq-tdengine-extension')
|
||||||
|
if len(tdExtDir):
|
||||||
|
v_print("%s", "delete exist extension..")
|
||||||
|
os.system('rm -rf %s' % tdExtDir[0])
|
||||||
|
|
||||||
|
v_print("%s", "unzip extension..")
|
||||||
|
os.system('unzip %s -d %s' % (tdExtensionZipDir[0], extPath))
|
||||||
|
|
||||||
|
os.chdir(currentDir)
|
||||||
|
|
||||||
|
|
||||||
|
def stopProgram(prog: str):
|
||||||
|
psCmd = "ps ax|grep -w %s| grep -v grep | awk '{print $1}'" % prog
|
||||||
|
|
||||||
|
processID = subprocess.check_output(
|
||||||
|
psCmd, shell=True).decode("utf-8")
|
||||||
|
|
||||||
|
while(processID):
|
||||||
|
killCmd = "kill -TERM %s > /dev/null 2>&1" % processID
|
||||||
|
os.system(killCmd)
|
||||||
|
time.sleep(1)
|
||||||
|
processID = subprocess.check_output(
|
||||||
|
psCmd, shell=True).decode("utf-8")
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def stopHiveMQ():
|
||||||
|
stopProgram("hivemq.jar")
|
||||||
|
v_print("%s", "ERROR: HiveMQ is NOT running")
|
||||||
|
|
||||||
|
|
||||||
|
def checkProgramRunning(prog: str):
|
||||||
|
psCmd = "ps ax|grep -w %s| grep -v grep | awk '{print $1}'" % prog
|
||||||
|
|
||||||
|
processID = subprocess.check_output(
|
||||||
|
psCmd, shell=True).decode("utf-8")
|
||||||
|
|
||||||
|
if not processID:
|
||||||
|
v_print("ERROR: %s is NOT running", prog)
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def runHiveMQ():
|
||||||
|
defaultHiveMQPath = "/opt/hivemq*"
|
||||||
|
hiveMQDir = glob.glob(defaultHiveMQPath)
|
||||||
|
runPath = hiveMQDir[0] + '/bin/run.sh > /dev/null &'
|
||||||
|
os.system(runPath)
|
||||||
|
time.sleep(10)
|
||||||
|
|
||||||
|
if not checkProgramRunning("hivemq.jar"):
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
v_print("%s", "hivemq is running")
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def getBuildPath():
|
||||||
|
selfPath = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
|
||||||
|
binPath = ''
|
||||||
|
|
||||||
|
if ("community" in selfPath):
|
||||||
|
projPath = selfPath[:selfPath.find("community")]
|
||||||
|
else:
|
||||||
|
projPath = selfPath[:selfPath.find("tests")]
|
||||||
|
|
||||||
|
for root, dirs, files in os.walk(projPath):
|
||||||
|
if ("taosd" in files):
|
||||||
|
rootRealPath = os.path.dirname(os.path.realpath(root))
|
||||||
|
if ("packaging" not in rootRealPath):
|
||||||
|
binPath = root[:len(root) - len("/build/bin")]
|
||||||
|
break
|
||||||
|
return binPath
|
||||||
|
|
||||||
|
|
||||||
|
def runTDengine():
|
||||||
|
stopProgram("taosd")
|
||||||
|
|
||||||
|
buildPath = getBuildPath()
|
||||||
|
|
||||||
|
if (buildPath == ""):
|
||||||
|
v_print("%s", "ERROR: taosd NOT found!")
|
||||||
|
sys.exit(1)
|
||||||
|
else:
|
||||||
|
v_print("%s", "taosd found in %s" % buildPath)
|
||||||
|
|
||||||
|
binPath = buildPath + "/build/bin/taosd"
|
||||||
|
|
||||||
|
os.system('%s > /dev/null &' % binPath)
|
||||||
|
time.sleep(10)
|
||||||
|
if not checkProgramRunning("taosd"):
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
v_print("%s", "TDengine is running")
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def reCreateDatabase():
|
||||||
|
buildPath = getBuildPath()
|
||||||
|
binPath = buildPath + "/build/bin/taos"
|
||||||
|
|
||||||
|
os.system('%s -s "DROP DATABASE IF EXISTS hivemq"' % binPath)
|
||||||
|
os.system('%s -s "CREATE DATABASE IF NOT EXISTS hivemq"' % binPath)
|
||||||
|
|
||||||
|
|
||||||
|
def sendMqttMsg(topic: str, payload: str):
|
||||||
|
testStr = 'mosquitto_pub -t %s -m "%s"' % (topic, payload)
|
||||||
|
os.system(testStr)
|
||||||
|
time.sleep(3)
|
||||||
|
|
||||||
|
|
||||||
|
def checkTDengineData(topic: str, payload: str):
|
||||||
|
buildPath = getBuildPath()
|
||||||
|
binPath = buildPath + "/build/bin/taos"
|
||||||
|
|
||||||
|
output = subprocess.check_output(
|
||||||
|
'%s -s "select * from hivemq.mqtt_payload"' %
|
||||||
|
binPath, shell=True).decode('utf-8')
|
||||||
|
if (topic in output) and (payload in output):
|
||||||
|
v_print("%s", output)
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
v_print("%s", "ERROR: mqtt topic or payload NOT found")
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
verbose = True
|
||||||
|
testTopic = 'test'
|
||||||
|
testPayload = 'hello world'
|
||||||
|
|
||||||
|
if not isHiveMQInstalled():
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
if not isMosquittoInstalled():
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
stopHiveMQ()
|
||||||
|
|
||||||
|
installExtension()
|
||||||
|
|
||||||
|
if not runTDengine():
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
reCreateDatabase()
|
||||||
|
|
||||||
|
if not runHiveMQ():
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
sendMqttMsg(testTopic, testPayload)
|
||||||
|
|
||||||
|
if not checkTDengineData(testTopic, testPayload):
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
sys.exit(0)
|
|
@ -115,31 +115,31 @@ if $data7_db != 20,20,20 then
|
||||||
return -1
|
return -1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
sql alter database db keep 10
|
|
||||||
sql show databases
|
|
||||||
print keep $data7_db
|
|
||||||
if $data7_db != 20,20,10 then
|
|
||||||
return -1
|
|
||||||
endi
|
|
||||||
|
|
||||||
sql alter database db keep 20
|
sql alter database db keep 20
|
||||||
sql show databases
|
sql show databases
|
||||||
print keep $data7_db
|
print keep $data7_db
|
||||||
if $data7_db != 20,20,20 then
|
if $data7_db != 20,20,20 then
|
||||||
return -1
|
return -1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
sql alter database db keep 30
|
sql alter database db keep 30
|
||||||
sql show databases
|
sql show databases
|
||||||
print keep $data7_db
|
print keep $data7_db
|
||||||
if $data7_db != 20,20,30 then
|
if $data7_db != 20,20,30 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql alter database db keep 40
|
||||||
|
sql show databases
|
||||||
|
print keep $data7_db
|
||||||
|
if $data7_db != 20,20,40 then
|
||||||
return -1
|
return -1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
sql alter database db keep 40
|
sql alter database db keep 40
|
||||||
sql alter database db keep 30
|
sql alter database db keep 30
|
||||||
sql alter database db keep 20
|
sql alter database db keep 20
|
||||||
sql alter database db keep 10
|
sql_error alter database db keep 10
|
||||||
sql_error alter database db keep 9
|
sql_error alter database db keep 9
|
||||||
sql_error alter database db keep 1
|
sql_error alter database db keep 1
|
||||||
sql alter database db keep 0
|
sql alter database db keep 0
|
||||||
|
@ -277,4 +277,4 @@ sql_error alter database db prec 'us'
|
||||||
print ============== step status
|
print ============== step status
|
||||||
sql_error alter database db status 'delete'
|
sql_error alter database db status 'delete'
|
||||||
|
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
|
|
Loading…
Reference in New Issue