5dnode3mnodeStopFollowerLeader.py 4.1 KB
Newer Older
haoranc's avatar
haoranc 已提交
1 2 3 4
from ssl import ALERT_DESCRIPTION_CERTIFICATE_UNOBTAINABLE
import taos
import sys
import time
G
Ganlin Zhao 已提交
5
import os
haoranc's avatar
haoranc 已提交
6 7 8 9 10 11 12 13 14 15 16 17

from util.log import *
from util.sql import *
from util.cases import *
from util.dnodes import *
from util.dnodes import TDDnodes
from util.dnodes import TDDnode
from util.cluster import *
from test import tdDnodes
sys.path.append("./6-cluster")

from clusterCommonCreate import *
G
Ganlin Zhao 已提交
18
from clusterCommonCheck import *
haoranc's avatar
haoranc 已提交
19 20 21 22 23
import time
import socket
import subprocess
from multiprocessing import Process

G
Ganlin Zhao 已提交
24

haoranc's avatar
haoranc 已提交
25 26
class TDTestCase:

27
    def init(self, conn, logSql, replicaVar=1):
haoranc's avatar
haoranc 已提交
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
        tdLog.debug(f"start to excute {__file__}")
        tdSql.init(conn.cursor())
        self.host = socket.gethostname()


    def getBuildPath(self):
        selfPath = os.path.dirname(os.path.realpath(__file__))

        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):
                    buildPath = root[:len(root) - len("/build/bin")]
                    break
        return buildPath

    def fiveDnodeThreeMnode(self,dnodenumbers,mnodeNums,restartNumber):
        tdLog.printNoPrefix("======== test case 1: ")
        paraDict = {'dbName':     'db0_0',
                    'dropFlag':   1,
                    'event':      '',
                    'vgroups':    4,
                    'replica':    1,
                    'stbName':    'stb',
                    'colPrefix':  'c',
                    'tagPrefix':  't',
                    'colSchema':   [{'type': 'INT', 'count':1}, {'type': 'binary', 'len':20, 'count':1}],
                    'tagSchema':   [{'type': 'INT', 'count':1}, {'type': 'binary', 'len':20, 'count':1}],
                    'ctbPrefix':  'ctb',
                    'ctbNum':     1,
                    'rowsPerTbl': 10000,
                    'batchNum':   10,
                    'startTs':    1640966400000,  # 2022-01-01 00:00:00.000
                    'pollDelay':  10,
                    'showMsg':    1,
                    'showRow':    1}
        dnodenumbers=int(dnodenumbers)
        mnodeNums=int(mnodeNums)
        dbNumbers = 1
G
Ganlin Zhao 已提交
72

haoranc's avatar
haoranc 已提交
73
        tdLog.info("first check dnode and mnode")
X
Xiaoyu Wang 已提交
74
        tdSql.query("select * from information_schema.ins_dnodes;")
haoranc's avatar
haoranc 已提交
75 76 77 78 79 80 81 82 83 84 85 86
        tdSql.checkData(0,1,'%s:6030'%self.host)
        tdSql.checkData(4,1,'%s:6430'%self.host)
        clusterComCheck.checkDnodes(dnodenumbers)
        clusterComCheck.checkMnodeStatus(1)

        # fisr add three mnodes;
        tdLog.info("fisr add three mnodes and check mnode status")
        tdSql.execute("create mnode on dnode 2")
        clusterComCheck.checkMnodeStatus(2)
        tdSql.execute("create mnode on dnode 3")
        clusterComCheck.checkMnodeStatus(3)

G
Ganlin Zhao 已提交
87
        # add some error operations and
haoranc's avatar
haoranc 已提交
88 89
        tdLog.info("Confirm the status of the dnode again")
        tdSql.error("create mnode on dnode 2")
X
Xiaoyu Wang 已提交
90
        tdSql.query("select * from information_schema.ins_dnodes;")
haoranc's avatar
haoranc 已提交
91 92 93 94 95 96 97 98 99 100 101 102
        # print(tdSql.queryResult)
        clusterComCheck.checkDnodes(dnodenumbers)
        # restart all taosd
        tdDnodes=cluster.dnodes
        tdLog.info("stop two mnode ")

        tdDnodes[0].stoptaosd()
        tdDnodes[1].stoptaosd()

        # tdLog.info("check  whether 2 mnode status is  offline")
        # clusterComCheck.check3mnode2off()
        # tdSql.error("create user user1 pass '123';")
G
Ganlin Zhao 已提交
103

haoranc's avatar
haoranc 已提交
104 105 106
        tdLog.info("start one mnode" )
        tdDnodes[0].starttaosd()
        clusterComCheck.check3mnodeoff(2)
G
Ganlin Zhao 已提交
107

haoranc's avatar
haoranc 已提交
108 109 110 111 112
        clusterComCreate.create_database(tdSql, paraDict["dbName"],paraDict["dropFlag"], paraDict["vgroups"],paraDict['replica'])
        clusterComCheck.checkDb(dbNumbers,1,'db0')



G
Ganlin Zhao 已提交
113
    def run(self):
haoranc's avatar
haoranc 已提交
114 115
        # print(self.master_dnode.cfgDict)
        self.fiveDnodeThreeMnode(dnodenumbers=5,mnodeNums=3,restartNumber=1)
G
Ganlin Zhao 已提交
116

haoranc's avatar
haoranc 已提交
117 118 119 120 121 122
    def stop(self):
        tdSql.close()
        tdLog.success(f"{__file__} successfully executed")

tdCases.addLinux(__file__, TDTestCase())
tdCases.addWindows(__file__, TDTestCase())