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 numOfMPeers -v 3
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode5 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode6 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode7 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode8 -c numOfMPeers -v 3

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

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

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

sql connect
sleep 4001
sql create dnode 192.168.0.2
sql create dnode 192.168.0.3
system sh/exec.sh -n dnode2 -s start
system sh/exec.sh -n dnode3 -s start
sleep 4001

sql create database c_b2_d1 replica 2 tables 4
sql use c_b2_d1
sql create table c_b2_t1 (t timestamp, i int)
sql insert into c_b2_t1 values(1520000020015, 15)
sql insert into c_b2_t1 values(1520000021014, 14)
sql insert into c_b2_t1 values(1520000022013, 13)
sql insert into c_b2_t1 values(1520000023012, 12)
sql insert into c_b2_t1 values(1520000024011, 11)

sql create database c_b2_d2 replica 2 tables 4
sql use c_b2_d2
sql create table c_b2_t2 (t timestamp, i int)
sql insert into c_b2_t2 values(1520000020025, 25)
sql insert into c_b2_t2 values(1520000021024, 24)
sql insert into c_b2_t2 values(1520000022023, 23)
sql insert into c_b2_t2 values(1520000023022, 22)
sql insert into c_b2_t2 values(1520000024021, 21)

sql create database c_b2_d3 replica 2 tables 4
sql use c_b2_d3
sql create table c_b2_t3 (t timestamp, i int)
sql insert into c_b2_t3 values(1520000020035, 35)
sql insert into c_b2_t3 values(1520000021034, 34)
sql insert into c_b2_t3 values(1520000022033, 33)
sql insert into c_b2_t3 values(1520000023032, 32)
sql insert into c_b2_t3 values(1520000024031, 31)

$x = 0
show1: 
	$x = $x + 1
	sleep 3000
	if $x == 20 then 
	  return -1
	endi
sql show dnodes -x show1
$dnode1Vnodes = $data3_192.168.0.1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data3_192.168.0.2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data3_192.168.0.3
print dnode3 $dnode3Vnodes

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

print ============================== step2
print ========= drop dnode2
sql drop dnode 192.168.0.2
sleep 9000

$x = 0
show2: 
	$x = $x + 1
	sleep 3000
	if $x == 20 then 
	  return -1
	endi
sql show dnodes -x show2
$dnode1Vnodes = $data3_192.168.0.1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data3_192.168.0.2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data3_192.168.0.3
print dnode3 $dnode3Vnodes

if $dnode1Vnodes != 1 then
  goto show2
endi
if $dnode2Vnodes != null then
  goto show2
endi
if $dnode3Vnodes != 1 then
  goto show2
endi

sql show mnodes
$dnode1Role = $data3_192.168.0.1
$dnode2Role = $data3_192.168.0.2
$dnode3Role = $data3_192.168.0.3
$dnode4Role = $data3_192.168.0.4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role

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

print ============================== step3
print ========= start dnode2
sql create dnode 192.168.0.2

sleep 3000
system sh/deploy.sh -n dnode2 -i 2
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode2 -c clog -v 1
system sh/cfg.sh -n dnode2 -c mgmtEqualVnodeNum -v 0
sleep 3000

system sh/exec.sh -n dnode2 -s start
sleep 10000

$x = 0
show3: 
	$x = $x + 1
	sleep 3000
	if $x == 20 then 
	  return -1
	endi
sql show dnodes -x show3
$dnode1Vnodes = $data3_192.168.0.1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data3_192.168.0.2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data3_192.168.0.3
print dnode3 $dnode3Vnodes

if $dnode1Vnodes != 2 then
  goto show3
endi
if $dnode2Vnodes != 2 then
  goto show3
endi
if $dnode3Vnodes != 2 then
  goto show3
endi

sql show mnodes
$dnode1Role = $data3_192.168.0.1
$dnode2Role = $data3_192.168.0.2
$dnode3Role = $data3_192.168.0.3
$dnode4Role = $data3_192.168.0.4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role

print ============================== step4
print ========= drop dnode3
sql drop dnode 192.168.0.3
sleep 9000

$x = 0
show4: 
	$x = $x + 1
	sleep 3000
	if $x == 20 then 
	  return -1
	endi
sql show dnodes -x show4
$dnode1Vnodes = $data3_192.168.0.1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data3_192.168.0.2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data3_192.168.0.3
print dnode3 $dnode3Vnodes

if $dnode1Vnodes != 1 then
  goto show4
endi
if $dnode2Vnodes != 1 then
  goto show4
endi
if $dnode3Vnodes != null then
  goto show4
endi

sql show mnodes
$dnode1Role = $data3_192.168.0.1
$dnode2Role = $data3_192.168.0.2
$dnode3Role = $data3_192.168.0.3
$dnode4Role = $data3_192.168.0.4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role

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

print ============================== step5
print ========= start dnode3
sql create dnode 192.168.0.3

sleep 3000
system sh/deploy.sh -n dnode3 -i 3
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode3 -c clog -v 1
system sh/cfg.sh -n dnode3 -c mgmtEqualVnodeNum -v 0
sleep 3000

system sh/exec.sh -n dnode3 -s start
sleep 9000

$x = 0
show5: 
	$x = $x + 1
	sleep 2000
	if $x == 30 then
	  return -1
	endi
sql show dnodes -x show5
$dnode1Vnodes = $data3_192.168.0.1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data3_192.168.0.2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data3_192.168.0.3
print dnode3 $dnode3Vnodes

if $dnode1Vnodes != 2 then
  goto show5
endi
if $dnode2Vnodes != 2 then
  goto show5
endi
if $dnode3Vnodes != 2 then
  goto show5
endi

sql show mnodes
$dnode1Role = $data3_192.168.0.1
$dnode2Role = $data3_192.168.0.2
$dnode3Role = $data3_192.168.0.3
$dnode4Role = $data3_192.168.0.4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role

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

sql drop dnode 192.168.0.1
print drop dnode1 and sleep 9000
sleep 9000

$x = 0
show6: 
	$x = $x + 1
	sleep 2000
	if $x == 30 then
	  return -1
	endi
sql show dnodes -x show6
$dnode1Vnodes = $data3_192.168.0.1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data3_192.168.0.2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data3_192.168.0.3
print dnode3 $dnode3Vnodes

if $dnode1Vnodes != null then
  goto show6
endi
if $dnode2Vnodes != 1 then
  goto show6
endi
if $dnode3Vnodes != 1 then
  goto show6
endi

sql show mnodes
$dnode1Role = $data3_192.168.0.1
$dnode2Role = $data3_192.168.0.2
$dnode3Role = $data3_192.168.0.3
$dnode4Role = $data3_192.168.0.4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role

print ============================== step7
print ========= start dnode1
sql create dnode 192.168.0.1

sql show mnodes
$dnode1Role = $data3_192.168.0.1
$dnode2Role = $data3_192.168.0.2
$dnode3Role = $data3_192.168.0.3
$dnode4Role = $data3_192.168.0.4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role

sleep 3000
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode1 -c clog -v 1
system sh/cfg.sh -n dnode1 -c mgmtEqualVnodeNum -v 0
sleep 3000

system sh/exec.sh -n dnode1 -s start
sleep 9000

$x = 0

show7: 
	sql show mnodes
	$dnode1Role = $data3_192.168.0.1
	$dnode2Role = $data3_192.168.0.2
	$dnode3Role = $data3_192.168.0.3
	$dnode4Role = $data3_192.168.0.4
	print dnode1 ==> $dnode1Role
	print dnode2 ==> $dnode2Role
	print dnode3 ==> $dnode3Role
	print dnode4 ==> $dnode4Role

	$x = $x + 1
	sleep 2000
	if $x == 30 then
	  return -1
	endi
sql show dnodes -x show7
$dnode1Vnodes = $data3_192.168.0.1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data3_192.168.0.2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data3_192.168.0.3
print dnode3 $dnode3Vnodes

if $dnode1Vnodes != 2 then
  goto show7
endi
if $dnode2Vnodes != 2 then
  goto show7
endi
if $dnode3Vnodes != 2 then
  goto show7
endi

print ============================== step8
print ========= add db4

sql create database c_b2_d4 replica 2 tables 4
sql use c_b2_d4
sql create table c_b2_t4 (t timestamp, i int) 
sql insert into c_b2_t4 values(1520000020045, 45)
sql insert into c_b2_t4 values(1520000021044, 44)
sql insert into c_b2_t4 values(1520000022043, 43)
sql insert into c_b2_t4 values(1520000023042, 42)
sql insert into c_b2_t4 values(1520000024041, 41)

sql create dnode 192.168.0.4
system sh/exec.sh -n dnode4 -s start
sleep 9000

sql show mnodes
$dnode1Role = $data3_192.168.0.1
$dnode2Role = $data3_192.168.0.2
$dnode3Role = $data3_192.168.0.3
$dnode4Role = $data3_192.168.0.4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role

$x = 0
show8: 
	$x = $x + 1
	sleep 2000
	if $x == 30 then
	  return -1
	endi
sql show dnodes -x show8
$dnode1Vnodes = $data3_192.168.0.1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data3_192.168.0.2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data3_192.168.0.3
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data3_192.168.0.4
print dnode4 $dnode4Vnodes

if $dnode1Vnodes != 2 then
  goto show8
endi
if $dnode2Vnodes != 2 then
  goto show8
endi
if $dnode3Vnodes != 2 then
  goto show8
endi
if $dnode4Vnodes != 2 then
  goto show8
endi

print ============================== step9
print ========= drop dnode1.4
sql drop dnode 192.168.0.1
sql drop dnode 192.168.0.4
sleep 10000

sql show mnodes
$dnode1Role = $data3_192.168.0.1
$dnode2Role = $data3_192.168.0.2
$dnode3Role = $data3_192.168.0.3
$dnode4Role = $data3_192.168.0.4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role

$x = 0
show9: 
	$x = $x + 1
	sleep 2000
	if $x == 30 then
	  return -1
	endi
sql show dnodes -x show9
$dnode1Vnodes = $data3_192.168.0.1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data3_192.168.0.2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data3_192.168.0.3
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data3_192.168.0.4
print dnode4 $dnode4Vnodes

if $dnode1Vnodes != null then
  goto show9
endi
if $dnode2Vnodes != 0 then
  goto show9
endi
if $dnode3Vnodes != 0 then
  goto show9
endi
if $dnode4Vnodes != null then
  goto show9
endi

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

print ============================== step10
print ========= start dnode1.4
sql create dnode 192.168.0.1
sql create dnode 192.168.0.4

sleep 3000
system sh/deploy.sh -n dnode1 -i 1
ssystem sh/cfg.sh -n dnode1 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode1 -c clog -v 1
system sh/cfg.sh -n dnode1 -c mgmtEqualVnodeNum -v 0
sleep 3000

sleep 3000
system sh/deploy.sh -n dnode4 -i 4
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode4 -c clog -v 1
system sh/cfg.sh -n dnode4 -c mgmtEqualVnodeNum -v 0
sleep 3000

system sh/exec.sh -n dnode1 -s start
system sh/exec.sh -n dnode4 -s start
sleep 10000

$x = 0
show10: 
	sql show mnodes
	$dnode1Role = $data3_192.168.0.1
	$dnode2Role = $data3_192.168.0.2
	$dnode3Role = $data3_192.168.0.3
	$dnode4Role = $data3_192.168.0.4
	print dnode1 ==> $dnode1Role
	print dnode2 ==> $dnode2Role
	print dnode3 ==> $dnode3Role
	print dnode4 ==> $dnode4Role
	
	$x = $x + 1
	sleep 2000
	if $x == 30 then
	  return -1
	endi
sql show dnodes -x show10
$dnode1Vnodes = $data3_192.168.0.1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data3_192.168.0.2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data3_192.168.0.3
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data3_192.168.0.4
print dnode4 $dnode4Vnodes

if $dnode1Vnodes != 2 then
  goto show10
endi
if $dnode2Vnodes != 2 then
  goto show10
endi
if $dnode3Vnodes != 2 then
  goto show10
endi
if $dnode4Vnodes != 2 then
  goto show10
endi

print ============================== step11

sql show mnodes
$dnode1Role = $data3_192.168.0.1
$dnode2Role = $data3_192.168.0.2
$dnode3Role = $data3_192.168.0.3
$dnode4Role = $data3_192.168.0.4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role

sql create database c_b2_d5 replica 2 tables 4
sql use c_b2_d5;
sql create table c_b2_t5 (t timestamp, i int)
sql insert into c_b2_t5 values(1520000020055, 55)
sql insert into c_b2_t5 values(1520000021054, 54)
sql insert into c_b2_t5 values(1520000022053, 53)
sql insert into c_b2_t5 values(1520000023052, 52)
sql insert into c_b2_t5 values(1520000024051, 51)

sql create database c_b2_d6 replica 2 tables 4
sql use c_b2_d6
sql create table c_b2_t6 (t timestamp, i int) 
sql insert into c_b2_t6 values(1520000020065, 65)
sql insert into c_b2_t6 values(1520000021064, 64)
sql insert into c_b2_t6 values(1520000022063, 63)
sql insert into c_b2_t6 values(1520000023062, 62)
sql insert into c_b2_t6 values(1520000024061, 61)

$x = 0
show11: 
	$x = $x + 1
	sleep 2000
	if $x == 30 then
	  return -1
	endi
sql show dnodes -x show11
$dnode1Vnodes = $data3_192.168.0.1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data3_192.168.0.2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data3_192.168.0.3
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data3_192.168.0.4
print dnode4 $dnode4Vnodes

if $dnode1Vnodes != 1 then
  goto show11
endi
if $dnode2Vnodes != 1 then
  goto show11
endi
if $dnode3Vnodes != 1 then
  goto show11
endi
if $dnode4Vnodes != 1 then
  goto show11
endi

sql show mnodes
$dnode1Role = $data3_192.168.0.1
$dnode2Role = $data3_192.168.0.2
$dnode3Role = $data3_192.168.0.3
$dnode4Role = $data3_192.168.0.4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role

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

sql use c_b2_d1
sql select * from c_b2_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 use c_b2_d2
sql select * from c_b2_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 use c_b2_d3
sql select * from c_b2_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

sql use c_b2_d4
sql select * from c_b2_t4 order by t desc
print $data01 $data11 $data21 $data31 $data41
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

sql use c_b2_d5
sql select * from c_b2_t5 order by t desc
print $data01 $data11 $data21 $data31 $data41
if $data01 != 51 then
  return -1
endi
if $data11 != 52 then
  return -1
endi
if $data21 != 53 then
  return -1
endi
if $data31 != 54 then
  return -1
endi
if $data41 != 55 then
  return -1
endi

sql use c_b2_d6
sql select * from c_b2_t6 order by t desc
print $data01 $data11 $data21 $data31 $data41
if $data01 != 61 then
  return -1
endi
if $data11 != 62 then
  return -1
endi
if $data21 != 63 then
  return -1
endi
if $data31 != 64 then
  return -1
endi
if $data41 != 65 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


