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/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 dnode1 -c wallevel -v 2
system sh/cfg.sh -n dnode2 -c wallevel -v 2
system sh/cfg.sh -n dnode3 -c wallevel -v 2
system sh/cfg.sh -n dnode4 -c wallevel -v 2

print ========== step1
system sh/exec_up.sh -n dnode1 -s start
sleep 3000
sql connect

sql create database d1 maxTables 4
sql create table d1.t1 (t timestamp, i int)
sql insert into d1.t1 values(1588262400001, 15)
sql insert into d1.t1 values(1588262400002, 14)
sql insert into d1.t1 values(1588262400003, 13)
sql insert into d1.t1 values(1588262400004, 12)
sql insert into d1.t1 values(1588262400005, 11)

sql create database d2 maxTables 4
sql create table d2.t2 (t timestamp, i int) 
sql insert into d2.t2 values(1588262400001, 25)
sql insert into d2.t2 values(1588262400002, 24)
sql insert into d2.t2 values(1588262400003, 23)
sql insert into d2.t2 values(1588262400004, 22)
sql insert into d2.t2 values(1588262400005, 21)

sql show dnodes
print dnode1 openVnodes $data2_1
if $data2_1 != 2 then
	return -1
endi

print ========== step2
sql create dnode $hostname2
system sh/exec_up.sh -n dnode2 -s start
sleep 9000

sql create database d3 replica 2 maxTables 4
sql create table d3.t3 (t timestamp, i int)
sql insert into d3.t3 values(1588262400001, 35)
sql insert into d3.t3 values(1588262400002, 34)
sql insert into d3.t3 values(1588262400003, 33)
sql insert into d3.t3 values(1588262400004, 32)
sql insert into d3.t3 values(1588262400005, 31)

$x = 0
show2: 
	$x = $x + 1
	sleep 2000
	if $x == 10 then
	  return -1
	endi
	
sql show dnodes
print dnode1 openVnodes $data2_1
print dnode2 openVnodes $data2_2
if $data2_1 != 1 then
	goto show2
endi
if $data2_2 != 3 then
	goto show2
endi

print ========== step3
system sh/exec_up.sh -n dnode2 -s stop -x SIGINT
sql drop dnode $hostname2
sleep 4000

sql show dnodes
print dnode1 openVnodes $data2_1
print dnode2 openVnodes $data2_2

print ========== step4
sql create dnode $hostname3
system sh/exec_up.sh -n dnode3 -s start

sleep 5000

sql show dnodes
print dnode1 openVnodes $data2_1
print dnode2 openVnodes $data2_2
print dnode3 openVnodes $data2_3
if $data2_3 != 0 then
	return -1
endi

print ============ step 4.1
system sh/exec_up.sh -n dnode2 -s start

$x = 0
show4: 
	$x = $x + 1
	sleep 2000
	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
if $data2_1 != 1 then
	goto show4
endi
if $data2_2 != null then
	goto show4
endi
if $data2_3 != 3 then
	goto show4
endi

print ========== step5
sql select * from d1.t1 order by t desc
print $data01 $data11 $data21 $data31 $data41 

sql select * from d2.t2 order by t desc
print $data01 $data11 $data21 $data31 $data41 

sql select * from d3.t3 order by t desc
print $data01 $data11 $data21 $data31 $data41  
if $data01 != 31 then
  return -1
endi
if $data11 != 32 then
  return -1
endi
if $data21 != 33 then
  return -1
endi
if $data31 != 34 then
  return -1
endi
if $data41 != 35 then
  return -1
endi

system sh/exec_up.sh -n dnode1 -s stop  -x SIGINT
system sh/exec_up.sh -n dnode2 -s stop  -x SIGINT
system sh/exec_up.sh -n dnode3 -s stop  -x SIGINT
system sh/exec_up.sh -n dnode4 -s stop  -x SIGINT
system sh/exec_up.sh -n dnode5 -s stop  -x SIGINT
system sh/exec_up.sh -n dnode6 -s stop  -x SIGINT
system sh/exec_up.sh -n dnode7 -s stop  -x SIGINT
system sh/exec_up.sh -n dnode8 -s stop  -x SIGINT