diff options
author | Atin Mukherjee <amukherj@redhat.com> | 2014-08-30 16:15:36 +0530 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2015-03-24 06:53:11 -0700 |
commit | ef158c75d1d6fac76635e95a9a43145433169b44 (patch) | |
tree | 488c342d2890234017ac7a1ca7ca0d1485580117 /tests/bugs | |
parent | a20101e2e4d5f5595655544cfc798eb1d445638c (diff) |
read-only: read-only/worm translator should be in brick graph by default
Problem:
read-only/worm translator is not loaded by default in brick graph because of which
when read-only option is set through volume set volume still remains writable
untill the bricks are restarted as the translator does not have an inmemory flag
to decide whether the read-only/worm option is turned or not.
Solution:
read-only/worm should be loaded by default in brick graph and the read-only/worm
option can be toggled through volume set command. read-only/worm translator now'
has an in-memory flag to decide whether the volume is read-only or not and based
on that either reject the fop or proceed.
Change-Id: Ic79328698f6a72c50433cff15ecadb1a92acc643
BUG: 1134822
Signed-off-by: Atin Mukherjee <amukherj@redhat.com>
Reviewed-on: http://review.gluster.org/8571
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'tests/bugs')
-rw-r--r-- | tests/bugs/read-only/bug-1134822-read-only-default-in-graph.t | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/tests/bugs/read-only/bug-1134822-read-only-default-in-graph.t b/tests/bugs/read-only/bug-1134822-read-only-default-in-graph.t new file mode 100644 index 00000000000..cc27d04656f --- /dev/null +++ b/tests/bugs/read-only/bug-1134822-read-only-default-in-graph.t @@ -0,0 +1,67 @@ +#!/bin/bash + +#Test case: This test checks when a volume is made read-only though volume set +# and bricks are not restarted no write operations can be performed on +# this volume + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc + +cleanup; + +TEST glusterd +TEST pidof glusterd + +#Create a volume +TEST $CLI volume create $V0 $H0:$B0/${V0}0; +TEST $CLI volume start $V0 + +# Mount FUSE and create file/directory, create should succeed as the read-only +# is off by default +TEST glusterfs -s $H0 --volfile-id $V0 $M0 +TEST touch $M0/zerobytefile1.txt +TEST mkdir $M0/test_dir1 +TEST dd if=/dev/zero of=$M0/file1 bs=1024 count=1024 + +# turn on read-only option through volume set +TEST gluster volume set $V0 read-only on + +# worm feature can't be enabled if read-only is enabled +TEST ! gluster volume set $V0 worm on + +# turn off read-only option through volume set +TEST gluster volume set $V0 read-only off + +# turn on worm option through volume set +TEST gluster volume set $V0 worm on + +# read-only feature can't be enabled if worm is enabled +TEST ! gluster volume set $V0 read-only on + + +TEST gluster volume set $V0 worm off +TEST gluster volume set $V0 read-only on + +# Check whether read-operations can be performed or not +TEST cat $M0/file1 + +# All write operations should fail now +TEST ! touch $M0/zerobytefile2.txt +TEST ! mkdir $M0/test_dir2 +TEST ! dd if=/dev/zero of=$M0/file2 bs=1024 count=1024 + +# turn off read-only option through volume set +TEST gluster volume set $V0 read-only off + +# All write operations should succeed now +TEST touch $M0/zerobytefile2.txt +TEST mkdir $M0/test_dir2 +TEST dd if=/dev/zero of=$M0/file2 bs=1024 count=1024 + +# Turn on worm +TEST gluster volume set $V0 worm on + +# unlink should fail now +TEST ! rm -rf $M0/zerobytefile2.txt + +cleanup; |