Merge pull request #13173 from taosdata/test/td-16102
test: add schemaless-insert 1-insert/opentsdb_telnet_line_taosc_insert.py to CI
This commit is contained in:
commit
5479299a48
|
@ -14,23 +14,93 @@
|
||||||
import random
|
import random
|
||||||
import string
|
import string
|
||||||
from util.sql import tdSql
|
from util.sql import tdSql
|
||||||
|
from util.dnodes import tdDnodes
|
||||||
|
import requests
|
||||||
|
import time
|
||||||
|
import socket
|
||||||
class TDCom:
|
class TDCom:
|
||||||
def init(self, conn, logSql):
|
def init(self, conn, logSql):
|
||||||
tdSql.init(conn.cursor(), logSql)
|
tdSql.init(conn.cursor(), logSql)
|
||||||
|
|
||||||
def cleanTb(self):
|
def preDefine(self):
|
||||||
|
header = {'Authorization': 'Basic cm9vdDp0YW9zZGF0YQ=='}
|
||||||
|
sql_url = "http://127.0.0.1:6041/rest/sql"
|
||||||
|
sqlt_url = "http://127.0.0.1:6041/rest/sqlt"
|
||||||
|
sqlutc_url = "http://127.0.0.1:6041/rest/sqlutc"
|
||||||
|
influx_url = "http://127.0.0.1:6041/influxdb/v1/write"
|
||||||
|
telnet_url = "http://127.0.0.1:6041/opentsdb/v1/put/telnet"
|
||||||
|
return header, sql_url, sqlt_url, sqlutc_url, influx_url, telnet_url
|
||||||
|
|
||||||
|
def genTcpParam(self):
|
||||||
|
MaxBytes = 1024*1024
|
||||||
|
host ='127.0.0.1'
|
||||||
|
port = 6046
|
||||||
|
return MaxBytes, host, port
|
||||||
|
|
||||||
|
def tcpClient(self, input):
|
||||||
|
MaxBytes = tdCom.genTcpParam()[0]
|
||||||
|
host = tdCom.genTcpParam()[1]
|
||||||
|
port = tdCom.genTcpParam()[2]
|
||||||
|
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
|
||||||
|
sock.connect((host, port))
|
||||||
|
sock.send(input.encode())
|
||||||
|
sock.close()
|
||||||
|
|
||||||
|
def restApiPost(self, sql):
|
||||||
|
requests.post(self.preDefine()[1], sql.encode("utf-8"), headers = self.preDefine()[0])
|
||||||
|
|
||||||
|
def createDb(self, dbname="test", db_update_tag=0, api_type="taosc"):
|
||||||
|
if api_type == "taosc":
|
||||||
|
if db_update_tag == 0:
|
||||||
|
tdSql.execute(f"drop database if exists {dbname}")
|
||||||
|
tdSql.execute(f"create database if not exists {dbname} precision 'us'")
|
||||||
|
else:
|
||||||
|
tdSql.execute(f"drop database if exists {dbname}")
|
||||||
|
tdSql.execute(f"create database if not exists {dbname} precision 'us' update 1")
|
||||||
|
elif api_type == "restful":
|
||||||
|
if db_update_tag == 0:
|
||||||
|
self.restApiPost(f"drop database if exists {dbname}")
|
||||||
|
self.restApiPost(f"create database if not exists {dbname} precision 'us'")
|
||||||
|
else:
|
||||||
|
self.restApiPost(f"drop database if exists {dbname}")
|
||||||
|
self.restApiPost(f"create database if not exists {dbname} precision 'us' update 1")
|
||||||
|
tdSql.execute(f'use {dbname}')
|
||||||
|
|
||||||
|
def genUrl(self, url_type, dbname, precision):
|
||||||
|
if url_type == "influxdb":
|
||||||
|
if precision is None:
|
||||||
|
url = self.preDefine()[4] + "?" + "db=" + dbname
|
||||||
|
else:
|
||||||
|
url = self.preDefine()[4] + "?" + "db=" + dbname + "&precision=" + precision
|
||||||
|
elif url_type == "telnet":
|
||||||
|
url = self.preDefine()[5] + "/" + dbname
|
||||||
|
else:
|
||||||
|
url = self.preDefine()[1]
|
||||||
|
return url
|
||||||
|
|
||||||
|
def schemalessApiPost(self, sql, url_type="influxdb", dbname="test", precision=None):
|
||||||
|
if url_type == "influxdb":
|
||||||
|
url = self.genUrl(url_type, dbname, precision)
|
||||||
|
elif url_type == "telnet":
|
||||||
|
url = self.genUrl(url_type, dbname, precision)
|
||||||
|
res = requests.post(url, sql.encode("utf-8"), headers = self.preDefine()[0])
|
||||||
|
return res
|
||||||
|
|
||||||
|
def cleanTb(self, type="taosc"):
|
||||||
|
'''
|
||||||
|
type is taosc or restful
|
||||||
|
'''
|
||||||
query_sql = "show stables"
|
query_sql = "show stables"
|
||||||
res_row_list = tdSql.query(query_sql, True)
|
res_row_list = tdSql.query(query_sql, True)
|
||||||
stb_list = map(lambda x: x[0], res_row_list)
|
stb_list = map(lambda x: x[0], res_row_list)
|
||||||
for stb in stb_list:
|
for stb in stb_list:
|
||||||
tdSql.execute(f'drop table if exists {stb}')
|
if type == "taosc":
|
||||||
|
tdSql.execute(f'drop table if exists {stb}')
|
||||||
|
elif type == "restful":
|
||||||
|
self.restApiPost(f"drop table if exists {stb}")
|
||||||
|
|
||||||
query_sql = "show tables"
|
def dateToTs(self, datetime_input):
|
||||||
res_row_list = tdSql.query(query_sql, True)
|
return int(time.mktime(time.strptime(datetime_input, "%Y-%m-%d %H:%M:%S.%f")))
|
||||||
tb_list = map(lambda x: x[0], res_row_list)
|
|
||||||
for tb in tb_list:
|
|
||||||
tdSql.execute(f'drop table if exists {tb}')
|
|
||||||
|
|
||||||
def getLongName(self, len, mode = "mixed"):
|
def getLongName(self, len, mode = "mixed"):
|
||||||
"""
|
"""
|
||||||
|
@ -47,6 +117,52 @@ class TDCom:
|
||||||
chars = ''.join(random.choice(string.ascii_letters.lower() + string.digits) for i in range(len))
|
chars = ''.join(random.choice(string.ascii_letters.lower() + string.digits) for i in range(len))
|
||||||
return chars
|
return chars
|
||||||
|
|
||||||
|
def restartTaosd(self, index=1, db_name="db"):
|
||||||
|
tdDnodes.stop(index)
|
||||||
|
tdDnodes.startWithoutSleep(index)
|
||||||
|
tdSql.execute(f"use {db_name}")
|
||||||
|
|
||||||
|
def typeof(self, variate):
|
||||||
|
v_type=None
|
||||||
|
if type(variate) is int:
|
||||||
|
v_type = "int"
|
||||||
|
elif type(variate) is str:
|
||||||
|
v_type = "str"
|
||||||
|
elif type(variate) is float:
|
||||||
|
v_type = "float"
|
||||||
|
elif type(variate) is bool:
|
||||||
|
v_type = "bool"
|
||||||
|
elif type(variate) is list:
|
||||||
|
v_type = "list"
|
||||||
|
elif type(variate) is tuple:
|
||||||
|
v_type = "tuple"
|
||||||
|
elif type(variate) is dict:
|
||||||
|
v_type = "dict"
|
||||||
|
elif type(variate) is set:
|
||||||
|
v_type = "set"
|
||||||
|
return v_type
|
||||||
|
|
||||||
|
def splitNumLetter(self, input_mix_str):
|
||||||
|
nums, letters = "", ""
|
||||||
|
for i in input_mix_str:
|
||||||
|
if i.isdigit():
|
||||||
|
nums += i
|
||||||
|
elif i.isspace():
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
letters += i
|
||||||
|
return nums, letters
|
||||||
|
|
||||||
|
def smlPass(self, func):
|
||||||
|
smlChildTableName = "no"
|
||||||
|
def wrapper(*args):
|
||||||
|
# if tdSql.getVariable("smlChildTableName")[0].upper() == "ID":
|
||||||
|
if smlChildTableName.upper() == "ID":
|
||||||
|
return func(*args)
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
return wrapper
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
self.cursor.close()
|
self.cursor.close()
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
###################################################################
|
||||||
|
# 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
|
||||||
|
#
|
||||||
|
###################################################################
|
||||||
|
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from enum import Enum
|
||||||
|
|
||||||
|
class TDSmlProtocolType(Enum):
|
||||||
|
'''
|
||||||
|
Schemaless Protocol types
|
||||||
|
0 - unknown
|
||||||
|
1 - InfluxDB Line Protocol
|
||||||
|
2 - OpenTSDB Telnet Protocl
|
||||||
|
3 - OpenTSDB JSON Protocol
|
||||||
|
'''
|
||||||
|
UNKNOWN = 0
|
||||||
|
LINE = 1
|
||||||
|
TELNET = 2
|
||||||
|
JSON = 3
|
||||||
|
|
||||||
|
class TDSmlTimestampType(Enum):
|
||||||
|
NOT_CONFIGURED = 0
|
||||||
|
HOUR = 1
|
||||||
|
MINUTE = 2
|
||||||
|
SECOND = 3
|
||||||
|
MILLI_SECOND = 4
|
||||||
|
MICRO_SECOND = 5
|
||||||
|
NANO_SECOND = 6
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -14,6 +14,8 @@ python3 ./test.py -f 0-others/udf_restart_taosd.py
|
||||||
python3 ./test.py -f 0-others/user_control.py
|
python3 ./test.py -f 0-others/user_control.py
|
||||||
python3 ./test.py -f 0-others/fsync.py
|
python3 ./test.py -f 0-others/fsync.py
|
||||||
|
|
||||||
|
python3 ./test.py -f 1-insert/opentsdb_telnet_line_taosc_insert.py
|
||||||
|
|
||||||
python3 ./test.py -f 2-query/between.py
|
python3 ./test.py -f 2-query/between.py
|
||||||
python3 ./test.py -f 2-query/distinct.py
|
python3 ./test.py -f 2-query/distinct.py
|
||||||
python3 ./test.py -f 2-query/varchar.py
|
python3 ./test.py -f 2-query/varchar.py
|
||||||
|
|
Loading…
Reference in New Issue