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/cfg.sh -n dnode1 -c supportVnodes -v 0
system sh/exec.sh -n dnode1 -s start
system sh/exec.sh -n dnode2 -s start
sql connect

print =============== step1 create dnode2
# no enough vnodes
sql balance vgroup

sql create dnode $hostname port 7200
sql create dnode $hostname port 7300

$x = 0
step1:
	$ = $x + 1
	sleep 1000
	if $x == 10 then
	  print ---> dnode not online!
		return -1
	endi
sql select * from information_schema.ins_dnodes
print ---> $data00 $data01 $data02 $data03 $data04 $data05
print ---> $data10 $data11 $data12 $data13 $data14 $data15
if $rows != 3 then
  return -1
endi
if $data(1)[4] != ready then
  goto step1
endi
if $data(2)[4] != ready then
  goto step1
endi
if $data(3)[4] != offline then
  goto step1
endi

print =============== step2 create database
sql create database d1 vgroups 2
sql use d1
sql create table d1.st (ts timestamp, i int) tags (j int)
sql create table d1.c1 using st tags(1)
sql create table d1.c2 using st tags(1)
sql create table d1.c3 using st tags(1)
sql create table d1.c4 using st tags(1)
sql create table d1.c5 using st tags(1)
sql create table d1.c6 using st tags(1)
sql show d1.tables
if $rows != 6 then
  return -1
endi

sql show d1.vgroups
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] 
if $rows != 2 then
  return -1
endi
if $data(2)[3] != 2 then
  return -1
endi
if $data(3)[3] != 2 then
  return -1
endi

print =============== step3: balance vgroup
# has offline dnode
sql_error balance vgroup

system sh/exec.sh -n dnode3 -s start
$x = 0
step3:
	$ = $x + 1
	sleep 1000
	if $x == 10 then
	  print ---> dnode not online!
		return -1
	endi
sql select * from information_schema.ins_dnodes
print ---> $data00 $data01 $data02 $data03 $data04 $data05
print ---> $data10 $data11 $data12 $data13 $data14 $data15
if $rows != 3 then
  return -1
endi
if $data(1)[4] != ready then
  goto step3
endi
if $data(2)[4] != ready then
  goto step3
endi
if $data(3)[4] != ready then
  goto step3
endi

print =============== step4: balance
sql balance vgroup

print show d1.vgroups
sql show d1.vgroups
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] 
if $rows != 2 then
  return -1
endi
if $data(2)[3] != 3 then
  return -1
endi
if $data(3)[3] != 2 then
  return -1
endi

print =============== step7: select data
sql show d1.tables
print rows $rows
if $rows != 6 then
  return -1
endi

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
