system sh/stop_dnodes.sh

system sh/deploy.sh -n dnode1 -i 1
system sh/deploy.sh -n dnode2 -i 2
system sh/deploy.sh -n dnode3 -i 3
system sh/deploy.sh -n dnode4 -i 4
system sh/deploy.sh -n dnode5 -i 5

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

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

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

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

sql create dnode $hostname2
sql create dnode $hostname3
system sh/exec.sh -n dnode2 -s start
system sh/exec.sh -n dnode3 -s start
$x = 0
step1: 
	$x = $x + 1
	sleep 1000
	if $x == 10 then
		return -1
	endi

sql show dnodes
print dnode1 $data4_1
print dnode2 $data4_2
print dnode3 $data4_3

if $data4_1 != ready then
  goto step1
endi
if $data4_2 != ready then
  goto step1
endi
if $data4_3 != ready then
  goto step1
endi

print ========== step2

sql create database d1 replica 2  
sql create table d1.t1 (t timestamp, i int) 

print ========== step2.1

sql show dnodes
print dnode1 openVnodes $data2_1
print dnode2 openVnodes $data2_2
print dnode3 openVnodes $data2_3
print dnode4 openVnodes $data2_4

if $data2_1 != 0 then
	return -1
endi
if $data2_2 != 1 then
	return -1
endi
if $data2_3 != 1 then
	return -1
endi

print ========== step3
sql create dnode $hostname4
system sh/exec.sh -n dnode4 -s start

$x = 0
show3: 
	$x = $x + 1
	sleep 1000
	if $x == 10 then 
	  return -1
	endi

sql show dnodes
print dnode1 openVnodes $data2_1
print dnode2 openVnodes $data2_2
print dnode3 openVnodes $data2_3
print dnode4 openVnodes $data2_4

if $data2_2 != 1 then
	goto show3
endi
if $data2_3 != 1 then
	goto show3
endi
if $data2_4 != 0 then
	goto show3
endi

sql show d1.vgroups;
print d1.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09

print ========== step4
sql drop dnode $hostname3

$i = 0
$rowNum = 10000

while $i < $rowNum
  $ts = 1500000000000 + $i
  sql insert into d1.t1 values( $ts , $i )
  
  $i = $i + 1
endw 

print insert $rowNum finished

$x = 0
show4: 
	$x = $x + 1
	sleep 1000
	if $x == 40 then 
	  return -1
	endi

sql show dnodes
print dnode1 openVnodes $data2_1
print dnode2 openVnodes $data2_2
print dnode3 openVnodes $data2_3
print dnode4 openVnodes $data2_4
print dnode5 openVnodes $data2_5

if $data2_2 != 1 then
	goto show4
endi
if $data2_3 != null then
	goto show4
endi
if $data2_4 != 1 then
	goto show4
endi

system sh/exec.sh -n dnode3 -s stop  -x SIGINT

print ========== step5
sql select count(*) from d1.t1 
print select count(*) from d1.t1 ==> $data00 
if $data00 != $rowNum then
  return -1
endi

system sh/exec.sh -n dnode1 -s stop  -x SIGINT
system sh/exec.sh -n dnode2 -s stop  -x SIGINT
system sh/exec.sh -n dnode3 -s stop  -x SIGINT
system sh/exec.sh -n dnode4 -s stop  -x SIGINT
system sh/exec.sh -n dnode5 -s stop  -x SIGINT