#!/bin/bash

# Test master transfer for crashed cluster

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 2; do
    _start_sheep $i
done

_wait_for_sheep 3

$COLLIE cluster format

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

# master transfer will happen twice
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
