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 mgmtEqualVnodeNum -v 4
system sh/cfg.sh -n dnode2 -c mgmtEqualVnodeNum -v 4
system sh/cfg.sh -n dnode3 -c mgmtEqualVnodeNum -v 4
system sh/cfg.sh -n dnode4 -c mgmtEqualVnodeNum -v 4

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

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

sql create database d1 maxTables 4
sql create table d1.t1 (t timestamp, i int)
sql insert into d1.t1 values(now+1s, 15)
sql insert into d1.t1 values(now+2s, 14)
sql insert into d1.t1 values(now+3s, 13)
sql insert into d1.t1 values(now+4s, 12)
sql insert into d1.t1 values(now+5s, 11)

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

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

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

print ========== step3
sql create database d2 maxTables 4

sql create table d2.t2 (t timestamp, i int) 
sql insert into d2.t2 values(now+1s, 25)
sql insert into d2.t2 values(now+2s, 24)
sql insert into d2.t2 values(now+3s, 23)
sql insert into d2.t2 values(now+4s, 22)
sql insert into d2.t2 values(now+5s, 21)

$x = 0
sql show dnodes
print dnode1 openVnodes $data2_1
print dnode2 openVnodes $data2_2
if $data2_1 != 4 then
	return -1
endi
if $data2_2 != 2 then
	return -1
endi

print ========== step4
sql drop dnode $hostname2

$x = 0
show4: 
	$x = $x + 1
	sleep 2000
	if $x == 30 then
	  return -1
	endi
sql show dnodes
print dnode1 openVnodes $data2_1
print dnode2 openVnodes $data2_2
if $data2_1 != 2 then
    goto show4
endi
if $data2_2 != NULL then
    goto show4
endi
if $rows != 1 then
    goto show4
endi

system sh/exec_up.sh -n dnode2 -s stop -x SIGINT

print ========== step5
sleep 2000
sql create dnode $hostname2
system sh/deploy.sh -n dnode2 -i 2
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
system sh/cfg.sh -n dnode2 -c mgmtEqualVnodeNum -v 4
system sh/cfg.sh -n dnode2 -c wallevel -v 1
system sh/exec_up.sh -n dnode2 -s start

$x = 0
show5: 
	$x = $x + 1
	sleep 3000
	if $x == 20 then 
	  return -1
	endi
sql show dnodes
print dnode1 openVnodes $data2_1
print dnode2 openVnodes $data2_2
if $data2_1 != 4 then
    goto show5
endi
if $data2_2 != 2 then
    goto show5
endi

print ========== step6
sql create database d3 maxTables 4
sql create table d3.t3 (t timestamp, i int)
sql insert into d3.t3 values(now+1s, 35)
sql insert into d3.t3 values(now+2s, 34)
sql insert into d3.t3 values(now+3s, 33)
sql insert into d3.t3 values(now+4s, 32)
sql insert into d3.t3 values(now+5s, 31)

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

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

$x = 0
show7: 
	$x = $x + 1
	sleep 3000
	if $x == 20 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 != 4 then
  goto show7
endi
if $data2_2 != 2 then
  goto show7
endi
if $data2_3 != 3 then
  goto show7
endi

print ========== step8
sql create database d4
sql create table d4.t4 (t timestamp, i int) 
sql insert into d4.t4 values(now+1s, 45)
sql insert into d4.t4 values(now+2s, 44)
sql insert into d4.t4 values(now+3s, 43)
sql insert into d4.t4 values(now+4s, 42)
sql insert into d4.t4 values(now+5s, 41)

$x = 0
show8: 
	$x = $x + 1
	sleep 2000
	if $x == 30 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 != 4 then
  goto show8
endi
if $data2_2 != 2 then
  goto show8
endi
if $data2_3 != 2 then
  goto show8
endi

print ========== step9
sql drop dnode $hostname2

$x = 0
show9: 
	$x = $x + 1
	sleep 2000
	if $x == 30 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 != 4 then
  goto show9
endi
if $data2_2 != NULL then
  goto show9
endi
if $data2_3 != 0 then
  goto show9
endi

system sh/exec_up.sh -n dnode2 -s stop -x SIGINT

print ========== step10
sql select * from d1.t1  order by t desc
print $data01 $data11 $data21 $data31 $data41  order by t desc
if $data01 != 11 then
  return -1
endi
if $data11 != 12 then
  return -1
endi
if $data21 != 13 then
  return -1
endi
if $data31 != 14 then
  return -1
endi
if $data41 != 15 then
  return -1
endi

sql select * from d2.t2  order by t desc
print $data01 $data11 $data21 $data31 $data41  order by t desc
if $data01 != 21 then
  return -1
endi
if $data11 != 22 then
  return -1
endi
if $data21 != 23 then
  return -1
endi
if $data31 != 24 then
  return -1
endi
if $data41 != 25 then
  return -1
endi

sql select * from d3.t3  order by t desc
print $data01 $data11 $data21 $data31 $data41   order by t desc
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

sql select * from d4.t4  order by t desc
print $data01 $data11 $data21 $data31 $data41   order by t desc
if $data01 != 41 then
  return -1
endi
if $data11 != 42 then
  return -1
endi
if $data21 != 43 then
  return -1
endi
if $data31 != 44 then
  return -1
endi
if $data41 != 45 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