#!/bin/bash

# Test master node killing and master transfer

seq=`basename $0`
echo "QA output created by $seq"

here=`pwd`
tmp=/tmp/$$
status=1        # failure is the default!

# get standard environment, filters and checks
. ./common.rc
. ./common.filter

_cleanup

for i in 0 1; do
    _start_sheep $i
done

_wait_for_sheep 2

# start Sheepdog with two nodes
$COLLIE cluster format
sleep 1

# kill the master node
_kill_sheep 0
sleep 1

# start another sheep
_start_sheep 2
_wait_for_sheep 2 2

# kill all sheeps
for i in 1 2; do
    _kill_sheep $i
    sleep 1
done

for i in 0 1 2; do
    _start_sheep $i
    sleep 1
done

_wait_for_sheep_stop 0
_wait_for_sheep_stop 1

_wait_for_sheep 1 2
echo check whether Sheepdog is running with only one node
$COLLIE cluster info -p 7002 | _filter_cluster_info

# add the other nodes
for i in 0 1; do
    _start_sheep $i
    sleep 1
done

_wait_for_sheep 3
echo check whether all nodes have the same cluster info
for i in 0 1 2; do
    $COLLIE cluster info -p 700$i | _filter_cluster_info
done
