system sh/stop_dnodes.sh

system sh/ip.sh -i 1 -s up
system sh/ip.sh -i 2 -s up
system sh/ip.sh -i 3 -s up
system sh/ip.sh -i 4 -s up

system sh/deploy.sh -n dnode1 -m 192.168.0.1 -i 192.168.0.1
system sh/deploy.sh -n dnode2 -m 192.168.0.1 -i 192.168.0.2
system sh/deploy.sh -n dnode3 -m 192.168.0.1 -i 192.168.0.3
system sh/deploy.sh -n dnode4 -m 192.168.0.1 -i 192.168.0.4

system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 8
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 8
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 8
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 8

system sh/cfg.sh -n dnode1 -c statusInterval -v 1
system sh/cfg.sh -n dnode2 -c statusInterval -v 1
system sh/cfg.sh -n dnode3 -c statusInterval -v 1
system sh/cfg.sh -n dnode4 -c statusInterval -v 1

system sh/cfg.sh -n dnode1 -c balanceMonitorInterval -v 1
system sh/cfg.sh -n dnode2 -c balanceMonitorInterval -v 1
system sh/cfg.sh -n dnode3 -c balanceMonitorInterval -v 1
system sh/cfg.sh -n dnode4 -c balanceMonitorInterval -v 1

system sh/cfg.sh -n dnode1 -c balanceStartInterval -v 10
system sh/cfg.sh -n dnode2 -c balanceStartInterval -v 10
system sh/cfg.sh -n dnode3 -c balanceStartInterval -v 10
system sh/cfg.sh -n dnode4 -c balanceStartInterval -v 10

system sh/cfg.sh -n dnode1 -c clog -v 1
system sh/cfg.sh -n dnode2 -c clog -v 1
system sh/cfg.sh -n dnode3 -c clog -v 1
system sh/cfg.sh -n dnode4 -c clog -v 1

system sh/cfg.sh -n dnode1 -c mgmtEqualVnodeNum -v 0
system sh/cfg.sh -n dnode2 -c mgmtEqualVnodeNum -v 0
system sh/cfg.sh -n dnode3 -c mgmtEqualVnodeNum -v 0
system sh/cfg.sh -n dnode4 -c mgmtEqualVnodeNum -v 0

system sh/cfg.sh -n dnode1 -c sessionsPerVnode -v 4
system sh/cfg.sh -n dnode2 -c sessionsPerVnode -v 4
system sh/cfg.sh -n dnode3 -c sessionsPerVnode -v 4
system sh/cfg.sh -n dnode4 -c sessionsPerVnode -v 4

system sh/cfg.sh -n dnode1 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 3

system sh/cfg.sh -n dnode1 -c maxVnodeConnections -v 1000
system sh/cfg.sh -n dnode1 -c maxMeterConnections -v 1000
system sh/cfg.sh -n dnode1 -c maxShellConns       -v 1000
system sh/cfg.sh -n dnode1 -c maxMgmtConnections  -v 1000

system sh/cfg.sh -n dnode2 -c maxVnodeConnections -v 1000
system sh/cfg.sh -n dnode2 -c maxMeterConnections -v 1000
system sh/cfg.sh -n dnode2 -c maxShellConns       -v 1000
system sh/cfg.sh -n dnode2 -c maxMgmtConnections  -v 1000

$dbPrefix = db
$tbPrefix = tb
$mtPrefix = mt
$stPrefix = st
$tbNum = 5
$rowNum = 20
$totalNum = 200

print ============== step1
print ========= start dnode1
system sh/exec.sh -n dnode1 -s start

sql connect
sleep 3000

$i = 0
$db = $dbPrefix . $i
$mt = $mtPrefix . $i
$st = $stPrefix . $i

sql create database $db tables 4
sql use $db
sql create table $mt (ts timestamp, tbcol int, tbcol2 float) TAGS(tgcol int)

$i = 0
while $i < $tbNum
  $tb = $tbPrefix . $i
  sql create table $tb using $mt tags( $i )
  
  $x = -20
  $y = 0
  while $y < $rowNum
    $ms = $x . s 
    sql insert into $tb values (now $ms , $x , $x ) 
    $x = $x + 1
	$y = $y + 1
  endw 
 
  $i = $i + 1
endw 

sleep 100

print =============== step2
$i = 0
$tb = $tbPrefix . $i
$st = $stPrefix . $i

sql select count(*), count(tbcol), count(tbcol2) from $tb interval(1d)
print select count(*), count(tbcol), count(tbcol2) from $tb interval(1d) ===> $data00 $data01 $data02, $data03
if $data01 != $rowNum then 
  return -1
endi
if $data02 != $rowNum then 
  return -1
endi
if $data03 != $rowNum then 
  return -1
endi

sql show tables
if $rows != 5 then 
  return -1
endi

sql create table $st as select count(*), count(tbcol), count(tbcol2) from $tb interval(10s)

sql show tables
if $rows != 6 then 
  return -1
endi

print =============== step3
print sleep 22 seconds
sleep 22000 

sql select * from $tb
if $rows != 20 then
  return -1
endi

sql select * from $mt
if $rows != 100 then
  return -1
endi

sql select * from $st
print select * from $st => $data01
if $rows == 0 then 
  return -1
endi

$x = 0
show1: 
	$x = $x + 1
	sleep 1000
	if $x == 20 then 
	  return -1
	endi
sql show dnodes -x show1
$dnode1Vnodes = $data3_192.168.0.1
print 192.168.0.1 $dnode1Vnodes
$dnode2Vnodes = $data3_192.168.0.2
print 192.168.0.2 $dnode2Vnodes

if $dnode1Vnodes != 6 then
  goto show1
endi
if $dnode2Vnodes != null then
  goto show1
endi

print =============== step4 start dnode2
sql create dnode 192.168.0.2
system sh/exec.sh -n dnode2 -s start
sleep 8000

$x = 0
show2: 
	$x = $x + 1
	sleep 3000
	if $x == 20 then 
	  return -1
	endi
sql show dnodes -x show2
$dnode1Vnodes = $data3_192.168.0.1
print 192.168.0.1 $dnode1Vnodes
$dnode2Vnodes = $data3_192.168.0.2
print 192.168.0.2 $dnode2Vnodes

if $dnode1Vnodes != 7 then
  goto show2
endi
if $dnode2Vnodes != 7 then
  goto show2
endi

print =============== step5 drop dnode1
system sh/exec.sh -n dnode1 -s stop
print stop dnode1 and sleep 10000
sleep 10000

sql drop dnode 192.168.0.1
print drop dnode1 and sleep 9000
sleep 9000

$x = 0
show6: 
	$x = $x + 1
	sleep 3000
	if $x == 20 then 
	  return -1
	endi
sql show dnodes -x show6
$dnode1Vnodes = $data3_192.168.0.1
print 192.168.0.1 $dnode1Vnodes
$dnode2Vnodes = $data3_192.168.0.2
print 192.168.0.2 $dnode2Vnodes

if $dnode1Vnodes != null then
  goto show6
endi
if $dnode2Vnodes != 6 then
  goto show6
endi

print =============== step6

print select * from $tb
sql select * from $tb
if $rows != 20 then
  return -1
endi

print select * from $mt
sql select * from $mt
if $rows != 80 then
  return -1
endi


print =============== step7
$i = 0
while $i < $tbNum
  $tb = $tbPrefix . $i
  
  $x = 0
  $y = 0
  while $y < $rowNum
    $ms = $x . s
    sql insert into $tb values (now + $ms , $y , $y ) 
    $x = $x + 1
	$y = $y + 1
  endw 
 
  $i = $i + 1
endw 

$i = 0
$tb = $tbPrefix . $i
$st = $stPrefix . $i

print =============== step8
print sleep 22 seconds
sleep 22000 

print select * from $st
sql select * from $st
if $rows == 0 then
  return -1
endi


print  =============== clear
system sh/exec.sh -n dnode1 -s stop
system sh/exec.sh -n dnode2 -s stop

