diff options
Diffstat (limited to 'tests/bugs/glusterd/bug-1091935-brick-order-check-from-cli-to-glusterd.t')
| -rwxr-xr-x | tests/bugs/glusterd/bug-1091935-brick-order-check-from-cli-to-glusterd.t | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/tests/bugs/glusterd/bug-1091935-brick-order-check-from-cli-to-glusterd.t b/tests/bugs/glusterd/bug-1091935-brick-order-check-from-cli-to-glusterd.t new file mode 100755 index 00000000000..9ac9d8fedd9 --- /dev/null +++ b/tests/bugs/glusterd/bug-1091935-brick-order-check-from-cli-to-glusterd.t @@ -0,0 +1,93 @@ +#!/bin/bash + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc +. $(dirname $0)/../../cluster.rc + +function check_peers { + $CLI_1 peer status | grep 'Peer in Cluster (Connected)' | wc -l +} + +cleanup; + +## Lets create partitions for bricks +TEST truncate -s 100M $B0/brick1 +TEST truncate -s 200M $B0/brick2 +TEST truncate -s 200M $B0/brick3 +TEST truncate -s 200M $B0/brick4 + + +TEST LO1=`SETUP_LOOP $B0/brick1` +TEST LO2=`SETUP_LOOP $B0/brick2` +TEST LO3=`SETUP_LOOP $B0/brick3` +TEST LO4=`SETUP_LOOP $B0/brick4` + + +TEST MKFS_LOOP $LO1 +TEST MKFS_LOOP $LO2 +TEST MKFS_LOOP $LO3 +TEST MKFS_LOOP $LO4 + +TEST mkdir -p ${B0}/${V0}{0..3} + + +TEST MOUNT_LOOP $LO1 $B0/${V0}0 +TEST MOUNT_LOOP $LO2 $B0/${V0}1 +TEST MOUNT_LOOP $LO3 $B0/${V0}2 +TEST MOUNT_LOOP $LO4 $B0/${V0}3 + + +TEST launch_cluster 2; +TEST $CLI_1 peer probe $H2; +EXPECT_WITHIN $PROBE_TIMEOUT 1 check_peers; + + +CLI_1_WITHOUT_WIGNORE=$(echo $CLI_1 | sed 's/ --wignore//') + + +# Creating volume with non resolvable host name +TEST ! $CLI_1_WITHOUT_WIGNORE volume create $V0 replica 2 \ + $H1:$B0/${V0}0/brick redhat:$B0/${V0}1/brick \ + $H1:$B0/${V0}2/brick redhat:$B0/${V0}3/brick + + +#Workaround for Bug:1091935 +#Failure to create volume above leaves 1st brick with xattrs. +rm -rf $B0/${V0}{0..3}/brick; + + +# Creating distribute-replica volume with bad brick order. It will fail +# due to bad brick order. +TEST ! $CLI_1_WITHOUT_WIGNORE volume create $V0 replica 2 \ + $H1:$B0/${V0}0/brick $H1:$B0/${V0}1/brick \ + $H1:$B0/${V0}2/brick $H1:$B0/${V0}3/brick + + + +#Workaround for Bug:1091935 +#Failure to create volume above leaves 1st brick with xattrs. +rm -rf $B0/${V0}{0..3}/brick; + + + +# Test for positive case, volume create should pass for +# resolved hostnames and bricks in order. +TEST $CLI_1_WITHOUT_WIGNORE volume create $V0 replica 2 \ + $H1:$B0/${V0}0/brick $H2:$B0/${V0}1/brick \ + $H1:$B0/${V0}2/brick $H2:$B0/${V0}3/brick + +# Delete the volume as we want to reuse bricks +TEST $CLI_1_WITHOUT_WIGNORE volume delete $V0 + + +# Now with force at the end of command it will bypass brick-order check +# for replicate or distribute-replicate volume. and it will create volume +TEST $CLI_1_WITHOUT_WIGNORE volume create $V0 replica 2 \ + $H1:$B0/${V0}0/brick $H1:$B0/${V0}1/brick \ + $H1:$B0/${V0}2/brick $H1:$B0/${V0}3/brick force + +# Need to cleanup the loop back devices. +UMOUNT_LOOP ${B0}/${V0}{0..3} +rm -f ${B0}/brick{1..4} + +cleanup; |
