#!/bin/bash

# Test vdi create operation during node changes

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

if [[ "$DRIVER" == zoo* ]];then
    DRIVER=${DRIVER/1000/5000}
fi

for i in `seq 0 7`; do
    _start_sheep $i
done

_wait_for_sheep "8"

$COLLIE cluster format

# create new vdis
(
for i in `seq 0 40`;do
    $COLLIE vdi create test$i 4M
done
) &

# kill nodes and join them back
for i in 1 2; do _kill_sheep $i;done
sleep 3
_wait_for_sheep_recovery 0
for i in 3 4; do _kill_sheep $i;done
sleep 3
_wait_for_sheep_recovery 0
for i in 5; do _kill_sheep $i;done
sleep 3
_wait_for_sheep_recovery 0
for i in `seq 1 5`; do _start_sheep $i;done

# wait for collie to finish
wait

# wait vdi create to completion
while true; do
    nr1=`$COLLIE vdi list | wc -l`
    sleep 3
    nr2=`$COLLIE vdi list | wc -l`
    if [ $nr1 -eq $nr2 ]; then
         break;
    fi
done

echo $nr1
