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/deploy.sh -n dnode6 -i 6
system sh/deploy.sh -n dnode7 -i 7
system sh/deploy.sh -n dnode8 -i 8

system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode5 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode6 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode7 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode8 -c numOfTotalVnodes -v 4

system sh/cfg.sh -n dnode1 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode5 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode6 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode7 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode8 -c numOfMnodes -v 3

system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 0
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 0
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 0
system sh/cfg.sh -n dnode4 -c mnodeEqualVnodeNum -v 0
system sh/cfg.sh -n dnode5 -c mnodeEqualVnodeNum -v 0
system sh/cfg.sh -n dnode6 -c mnodeEqualVnodeNum -v 0
system sh/cfg.sh -n dnode7 -c mnodeEqualVnodeNum -v 0
system sh/cfg.sh -n dnode8 -c mnodeEqualVnodeNum -v 0

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
system sh/cfg.sh -n dnode5 -c wallevel -v 1
system sh/cfg.sh -n dnode6 -c wallevel -v 1
system sh/cfg.sh -n dnode7 -c wallevel -v 1
system sh/cfg.sh -n dnode8 -c wallevel -v 1

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

sql create dnode $hostname2
sql create dnode $hostname3
system sh/exec.sh -n dnode2 -s start
system sh/exec.sh -n dnode3 -s start
sleep 3001

sql create database c_b3_d1 replica 3
sql use c_b3_d1
sql create table c_b3_t1 (t timestamp, i int)
sql insert into c_b3_t1 values(1520000020015, 15)
sql insert into c_b3_t1 values(1520000021014, 14)
sql insert into c_b3_t1 values(1520000022013, 13)
sql insert into c_b3_t1 values(1520000023012, 12)
sql insert into c_b3_t1 values(1520000024011, 11)

sql create database c_b3_d2 replica 3
sql use c_b3_d2
sql create table c_b3_t2 (t timestamp, i int)
sql insert into c_b3_t2 values(1520000020025, 25)
sql insert into c_b3_t2 values(1520000021024, 24)
sql insert into c_b3_t2 values(1520000022023, 23)
sql insert into c_b3_t2 values(1520000023022, 22)
sql insert into c_b3_t2 values(1520000024021, 21)

sql create database c_b3_d3 replica 3
sql use c_b3_d3
sql create table c_b3_t3 (t timestamp, i int) 
sql insert into c_b3_t3 values(1520000020035, 35)
sql insert into c_b3_t3 values(1520000021034, 34)
sql insert into c_b3_t3 values(1520000022033, 33)
sql insert into c_b3_t3 values(1520000023032, 32)
sql insert into c_b3_t3 values(1520000024031, 31)

$x = 0
show1: 
	$x = $x + 1
	sleep 2000
	if $x == 20 then
	  return -1
	endi
sql show dnodes -x show1
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data2_4
print dnode4 $dnode4Vnodes

if $dnode1Vnodes != 3 then
  goto show1
endi
if $dnode2Vnodes != 3 then
  goto show1
endi
if $dnode3Vnodes != 3 then
  goto show1
endi
if $dnode4Vnodes != null then
  goto show1
endi

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

$x = 0
show2: 
	$x = $x + 1
	sleep 2000
	if $x == 20 then
	  return -1
	endi
sql show dnodes -x show2
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data2_4
print dnode4 $dnode4Vnodes

if $dnode4Vnodes != 2 then
  goto show2
endi

print ============================== step3
print ========= drop dnode2
sql drop dnode $hostname2
sleep 9000

$x = 0
show3: 
	$x = $x + 1
	sleep 2000
	if $x == 20 then
	  return -1
	endi
sql show dnodes -x show3
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data2_4
print dnode4 $dnode4Vnodes

if $dnode1Vnodes != 3 then
  goto show3
endi
if $dnode2Vnodes != null then
  goto show3
endi
if $dnode3Vnodes != 3 then
  goto show3
endi
if $dnode4Vnodes != 3 then
  goto show3
endi

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

print ============================== step4
sql create dnode $hostname5
system sh/exec.sh -n dnode5 -s start
sleep 10000

$x = 0
show4: 
	$x = $x + 1
	sleep 2000
	if $x == 20 then
	  return -1
	endi
sql show dnodes -x show4
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode5Vnodes = $data2_5
print dnode5 $dnode5Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data2_4
print dnode4 $dnode4Vnodes

if $dnode5Vnodes != 2 then
  goto show4
endi

print ============================== step5
print ========= drop dnode3
sql drop dnode $hostname3
sleep 9000

$x = 0
show5: 
	$x = $x + 1
	sleep 2000
	if $x == 20 then
	  return -1
	endi
sql show dnodes -x show5
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode5Vnodes = $data2_5
print dnode5 $dnode5Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data2_4
print dnode4 $dnode4Vnodes

if $dnode1Vnodes != 3 then
  goto show5
endi
if $dnode5Vnodes != 3 then
  goto show5
endi
if $dnode3Vnodes != null then
  goto show5
endi
if $dnode4Vnodes != 3 then
  goto show5
endi

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

print ============================== step6
sql create dnode $hostname6
system sh/exec.sh -n dnode6 -s start
sleep 9000

$x = 0
show6: 
	$x = $x + 1
	sleep 2000
	if $x == 20 then
	  return -1
	endi
sql show dnodes -x show6
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode4Vnodes = $data2_4
print dnode4 $dnode4Vnodes
$dnode5Vnodes = $data2_5
print dnode5 $dnode5Vnodes
$dnode6Vnodes = $data2_6
print dnode6 $dnode6Vnodes

if $dnode6Vnodes != 2 then
  goto show6
endi

print ============================== step7
print ========= drop dnode4
sql drop dnode $hostname4
sleep 9000

$x = 0
show7: 
	$x = $x + 1
	sleep 2000
	if $x == 20 then
	  return -1
	endi
sql show dnodes -x show7
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode4Vnodes = $data2_4
print dnode4 $dnode4Vnodes
$dnode5Vnodes = $data2_5
print dnode5 $dnode5Vnodes
$dnode6Vnodes = $data2_6
print dnode6 $dnode6Vnodes

if $dnode1Vnodes != 3 then
  goto show7
endi
if $dnode5Vnodes != 3 then
  goto show7
endi
if $dnode6Vnodes != 3 then
  goto show7
endi
if $dnode4Vnodes != null then
  goto show7
endi

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

print ============================== step8
sql create dnode $hostname7
system sh/exec.sh -n dnode7 -s start
sleep 9000

$x = 0
show8: 
	$x = $x + 1
	sleep 2000
	if $x == 20 then
	  return -1
	endi
sql show dnodes -x show8
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode5Vnodes = $data2_5
print dnode5 $dnode5Vnodes
$dnode6Vnodes = $data2_6
print dnode6 $dnode6Vnodes
$dnode7Vnodes = $data2_7
print dnode7 $dnode7Vnodes

if $dnode7Vnodes != 2 then
  goto show8
endi

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

sql drop dnode $hostname1
print drop dnode1 and sleep 9000
sleep 9000

sql show mnodes
$dnode1Role = $data2_1
$dnode4Role = $data2_4
$dnode5Role = $data2_5
print dnode1 ==> $dnode1Role
print dnode4 ==> $dnode4Role
print dnode5 ==> $dnode5Role

if $dnode1Role != offline then
  return -1
endi

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

$x = 0
show9: 
	$x = $x + 1
	sleep 2000
	if $x == 20 then
	  return -1
	endi
sql show dnodes -x show9
$dnode5Vnodes = $data2_5
print dnode5 $dnode5Vnodes
$dnode6Vnodes = $data2_6
print dnode6 $dnode6Vnodes
$dnode7Vnodes = $data2_7
print dnode7 $dnode7Vnodes

if $dnode5Vnodes != 3 then
  goto show9
endi
if $dnode6Vnodes != 3 then
  goto show9
endi
if $dnode7Vnodes != 3 then
  goto show9
endi

system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep 5000

print ============================== step11
print ========= add db4

sql create database c_b3_d4 replica 3
sql use c_b3_d4
$x = 0
create4: 
	$x = $x + 1
	sleep 2000
	if $x == 20 then
	  return -1
	endi
sql create table c_b3_t4 (t timestamp, i int) -x create4
sql insert into c_b3_t4 values(1520000020045, 45)
sql insert into c_b3_t4 values(1520000021044, 44)
sql insert into c_b3_t4 values(1520000022043, 43)
sql insert into c_b3_t4 values(1520000023042, 42)
sql insert into c_b3_t4 values(1520000024041, 41)

sleep 3000

$x = 0
show11: 
	$x = $x + 1
	sleep 2000
	if $x == 20 then
	  return -1
	endi
sql show dnodes -x show11	
$dnode5Vnodes = $data2_5
print dnode5 $dnode5Vnodes
$dnode6Vnodes = $data2_6
print dnode6 $dnode6Vnodes
$dnode7Vnodes = $data2_7
print dnode7 $dnode7Vnodes

if $dnode5Vnodes != 4 then
  goto show11
endi
if $dnode6Vnodes != 4 then
  goto show11
endi
if $dnode7Vnodes != 4 then
  goto show11
endi

system sh/exec.sh -n dnode1 -s stop  -x SIGINT
sleep 5000

print ============================== step13
sql reset query cache
sleep 1000

print ========= check data

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

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 c_b3_d3.c_b3_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

print ============================================ over
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
system sh/exec.sh -n dnode6 -s stop  -x SIGINT
system sh/exec.sh -n dnode7 -s stop  -x SIGINT
system sh/exec.sh -n dnode8 -s stop  -x SIGINT
