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

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

sql show mnodes
print dnode1 ==> $data2_1
print dnode2 ==> $data2_2
print dnode3 ==> $data3_3
if $data2_1 != master then
  return -1
endi
if $data3_2 != null then
  return -1
endi
if $data3_3 != null then
  return -1
endi

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

sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role

if $dnode1Role != master then
  return -1
endi
if $dnode2Role != slave then
  return -1
endi
if $dnode3Role != null then
  return -1
endi
if $dnode4Role != null then
  return -1
endi

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

sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role

if $dnode1Role != master then
  return -1
endi
if $dnode2Role != slave then
  return -1
endi
if $dnode3Role != slave then
  return -1
endi
if $dnode4Role != null then
  return -1
endi


print ============== step4
system sh/exec_up.sh -n dnode4 -s start
sql create dnode $hostname4
sleep 8000

sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role

if $dnode1Role != master then
  return -1
endi
if $dnode2Role != slave then
  return -1
endi
if $dnode3Role != slave then
  return -1
endi
if $dnode4Role != null then
  return -1
endi

print ============== step5
sql drop dnode $hostname2
sleep 8000

sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role

if $dnode1Role != master then
  return -1
endi
if $dnode2Role != null then
  return -1
endi
if $dnode3Role != slave then
  return -1
endi
if $dnode4Role != slave then
  return -1
endi

system sh/exec_up.sh -n dnode2 -s stop
sleep 3000

system sh/deploy.sh -n dnode2 -i 2
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 3
system sh/exec_up.sh -n dnode2 -s start

print ============== step6
sql create dnode $hostname2
sleep 8000

sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role

if $dnode1Role != master then
  return -1
endi
if $dnode2Role != null then
  return -1
endi
if $dnode3Role != slave then
  return -1
endi
if $dnode4Role != slave then
  return -1
endi

print ============== step7
system sh/exec_up.sh -n dnode1 -s stop
sleep 4000

sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role

if $dnode1Role != offline then
  return -1
endi

print ============== step8
sql drop dnode $hostname1
sleep 8000

sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_5
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role

if $dnode1Role != null then
  return -1
endi
if $dnode2Role != slave then
  return -1
endi
#if $dnode3Role != master then
#  return -1
#endi
#if $dnode4Role != slave 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