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/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 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 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

print ============== step1
print ========= start dnode1
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

sql show mnodes
print mnode1 $data2_1
print mnode1 $data2_2
print mnode1 $data2_3
if $data2_1 != master then
  goto step1
endi
if $data2_2 != slave then
  goto step1
endi
if $data2_3 != slave then
  goto step1
endi

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

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

sql show mnodes
print dnode1 ==> $data2_1
print dnode2 ==> $data2_2
print dnode3 ==> $data2_3

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

$x = 0
show2: 
	$x = $x + 1
	sleep 1000
	if $x == 40 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

sql show mnodes
print dnode1 ==> $data2_1
print dnode2 ==> $data2_2
print dnode3 ==> $data2_3

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

$x = 0
show3: 
	$x = $x + 1
	sleep 1000
	if $x == 40 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

sql show mnodes
print dnode1 ==> $data2_1
print dnode2 ==> $data2_2
print dnode3 ==> $data2_3

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

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

$x = 0
show4: 
	$x = $x + 1
	sleep 1000
	if $x == 40 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

sql show mnodes
print dnode1 ==> $data2_1
print dnode2 ==> $data2_2
print dnode3 ==> $data2_3
print dnode4 ==> $data2_4
print dnode5 ==> $data2_5

if $data2_4 != slave then
  goto show4
endi

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

$x = 0
show5: 
	$x = $x + 1
	sleep 1000
	if $x == 40 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

sql show mnodes
print dnode1 ==> $data2_1
print dnode2 ==> $data2_2
print dnode3 ==> $data2_3
print dnode4 ==> $data2_4
print dnode5 ==> $data2_5
print dnode6 ==> $data2_6
print dnode7 ==> $data2_7

if $data2_5 != slave then
  goto show5
endi

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

$x = 0
show6: 
	$x = $x + 1
	sleep 1000
	if $x == 40 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 $dnode1Vnodes != 2 then
  goto show6
endi
if $dnode4Vnodes != 2 then
  goto show6
endi
if $dnode5Vnodes != 3 then
  goto show6
endi
if $dnode6Vnodes != 2 then
  goto show6
endi

sql show mnodes
print dnode1 ==> $data2_1
print dnode2 ==> $data2_2
print dnode3 ==> $data2_3
print dnode4 ==> $data2_4
print dnode5 ==> $data2_5
print dnode6 ==> $data2_6
print dnode7 ==> $data2_7

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

$x = 0
show7: 
	$x = $x + 1
	sleep 1000
	if $x == 40 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
sql show mnodes
print dnode1 ==> $data2_1
print dnode2 ==> $data2_2
print dnode3 ==> $data2_3
print dnode4 ==> $data2_4
print dnode5 ==> $data2_5
print dnode6 ==> $data2_6
print dnode7 ==> $data2_7

if $data2_6 != slave then
  goto show7
endi

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

$x = 0
show8: 
	$x = $x + 1
	sleep 1000
	if $x == 40 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 $dnode1Vnodes != 2 then
  goto show8
endi
if $dnode5Vnodes != 2 then
  goto show8
endi
if $dnode6Vnodes != 3 then
  goto show8
endi
if $dnode7Vnodes != 2 then
  goto show8
endi

sql show mnodes
print dnode1 ==> $data2_1
print dnode2 ==> $data2_2
print dnode3 ==> $data2_3
print dnode4 ==> $data2_4
print dnode5 ==> $data2_5
print dnode6 ==> $data2_6
print dnode7 ==> $data2_7

print ============================== step9
system sh/exec.sh -n dnode1 -s stop  -x SIGINT

$x = 0
show9: 
	$x = $x + 1
	sleep 1000
	if $x == 40 then
	  return -1
	endi
sql show mnodes -x show9

print dnode1 ==> $data2_1
print dnode2 ==> $data2_2
print dnode3 ==> $data2_3
print dnode4 ==> $data2_4
print dnode5 ==> $data2_5
print dnode6 ==> $data2_6
print dnode7 ==> $data2_7

if $data2_1 != offline then
  goto show9
endi
if $data2_5 != master then
  goto show9
endi
if $data2_6 != slave then
  goto show9
endi

print ============================== step10
sql drop dnode $hostname1
$x = 0
show10: 
	$x = $x + 1
	sleep 1000
	if $x == 40 then
	  return -1
	endi
sql show mnodes -x show10

print dnode1 ==> $data2_1
print dnode2 ==> $data2_2
print dnode3 ==> $data2_3
print dnode4 ==> $data2_4
print dnode5 ==> $data2_5
print dnode6 ==> $data2_6
print dnode7 ==> $data2_7

if $data2_1 != null then
  goto show10
endi
if $data2_5 != master then
  goto show10
endi
if $data2_6 != slave then
  goto show10
endi
if $data2_7 != slave then
  goto show10
endi

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

$x = 0
show11: 
	$x = $x + 1
	sleep 1000
	if $x == 40 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 != 3 then
  goto show11
endi
if $dnode6Vnodes != 3 then
  goto show11
endi
if $dnode7Vnodes != 3 then
  goto show11
endi

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

sql show mnodes
print dnode1 ==> $data2_1
print dnode2 ==> $data2_2
print dnode3 ==> $data2_3
print dnode4 ==> $data2_4
print dnode5 ==> $data2_5
print dnode6 ==> $data2_6
print dnode7 ==> $data2_7

print ============================== step12
sql create database c_b3_d4 replica 3
sql use c_b3_d4
$x = 0
create4: 
	$x = $x + 1
	sleep 1000
	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)

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

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

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

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
