Pranith Kumar K 8d92734f28 tests: Change umount with force_umount with 5 retries
Change-Id: I0e2dbdfd34080328dfa6b4eebef0366f2b0fcb04
BUG: 1092850
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: http://review.gluster.org/8117
Tested-by: Justin Clift <justin@gluster.org>
Reviewed-by: Harshavardhana <harsha@harshavardhana.net>
Tested-by: Harshavardhana <harsha@harshavardhana.net>
Reviewed-by: Sachin Pandit <spandit@redhat.com>
Reviewed-by: Prashanth Pai <ppai@redhat.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
2014-06-23 03:13:28 -07:00

133 lines
2.9 KiB
Bash
Executable File

#!/bin/bash
. $(dirname $0)/../include.rc
. $(dirname $0)/../volume.rc
function execute()
{
cmd=$1
shift
${cmd} $@ >/dev/null 2>&1
}
function bd_cleanup()
{
execute vgremove -f ${V0}
execute pvremove ${ld}
execute losetup -d ${ld}
execute rm ${BD_DISK}
cleanup
}
function check()
{
if [ $? -ne 0 ]; then
echo prerequsite $@ failed
bd_cleanup
exit
fi
}
SIZE=256 #in MB
bd_cleanup;
## Configure environment needed for BD backend volumes
## Create a file with configured size and
## set it as a temporary loop device to create
## physical volume & VG. These are basic things needed
## for testing BD xlator if anyone of these steps fail,
## test script exits
function configure()
{
GLDIR=`$CLI system:: getwd`
BD_DISK=${GLDIR}/bd_disk
execute truncate -s${SIZE}M ${BD_DISK}
check ${BD_DISK} creation
execute losetup -f
check losetup
ld=`losetup -f`
execute losetup ${ld} ${BD_DISK}
check losetup ${BD_DISK}
execute pvcreate -f ${ld}
check pvcreate ${ld}
execute vgcreate ${V0} ${ld}
check vgcreate ${V0}
execute lvcreate --thin ${V0}/pool --size 128M
}
function volinfo_field()
{
local vol=$1;
local field=$2;
$CLI volume info $vol | grep "^$field: " | sed 's/.*: //';
}
function volume_type()
{
getfattr -n volume.type $M0/. --only-values --absolute-names -e text
}
TEST glusterd
TEST pidof glusterd
configure
TEST $CLI volume create $V0 ${H0}:/$B0/$V0?${V0}
EXPECT "$V0" volinfo_field $V0 'Volume Name';
EXPECT 'Created' volinfo_field $V0 'Status';
## Start volume and verify
TEST $CLI volume start $V0;
EXPECT 'Started' volinfo_field $V0 'Status'
TEST glusterfs --volfile-id=/$V0 --volfile-server=$H0 $M0
EXPECT '1' volume_type
## Create posix file
TEST touch $M0/posix
TEST touch $M0/lv
gfid=`getfattr -n glusterfs.gfid.string $M0/lv --only-values --absolute-names`
TEST setfattr -n user.glusterfs.bd -v "lv:4MB" $M0/lv
# Check if LV is created
TEST stat /dev/$V0/${gfid}
## Create filesystem
sleep 1
TEST mkfs.ext4 -qF $M0/lv
# Cloning
TEST touch $M0/lv_clone
gfid=`getfattr -n glusterfs.gfid.string $M0/lv_clone --only-values --absolute-names`
TEST setfattr -n clone -v ${gfid} $M0/lv
TEST stat /dev/$V0/${gfid}
sleep 1
## Check mounting
TEST mount -o loop $M0/lv $M1
EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M1
# Snapshot
TEST touch $M0/lv_sn
gfid=`getfattr -n glusterfs.gfid.string $M0/lv_sn --only-values --absolute-names`
TEST setfattr -n snapshot -v ${gfid} $M0/lv
TEST stat /dev/$V0/${gfid}
# Merge
sleep 1
TEST setfattr -n merge -v "$M0/lv_sn" $M0/lv_sn
TEST ! stat $M0/lv_sn
TEST ! stat /dev/$V0/${gfid}
rm $M0/* -f
EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0
TEST $CLI volume stop ${V0}
EXPECT 'Stopped' volinfo_field $V0 'Status';
TEST $CLI volume delete ${V0}
bd_cleanup