Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Changes: 1. Take subdir mount option in client (mount.gluster / glusterfsd) 2. Pass the subdir mount to server-handshake (from client-handshake) 3. Handle subdir-mount dir's lookup in server-first-lookup and handle all fops resolution accordingly with proper gfid of subdir 4. Change the auth/addr module to handle the multiple subdir entries in option, and valid parsing. How to use the feature: `# mount -t glusterfs $hostname:/$volname/$subdir /$mount_point` Or `# mount -t glusterfs $hostname:/$volname -osubdir_mount=$subdir /$mount_point` Option can be set like: `# gluster volume set <volname> auth.allow "/subdir1(192.168.1.*),/(192.168.10.*),/subdir2(192.168.8.*)"` Updates #175 Change-Id: I7ea57f76ddbe6c3862cfe02e13f89e8a39719e11 Signed-off-by: Amar Tumballi <amarts@redhat.com> Reviewed-on: https://review.gluster.org/17141 Smoke: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: Shyamsundar Ranganathan <srangana@redhat.com> CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
- Loading branch information
Showing
20 changed files
with
659 additions
and
199 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
#!/bin/bash | ||
|
||
. $(dirname $0)/../include.rc | ||
. $(dirname $0)/../nfs.rc | ||
|
||
cleanup; | ||
|
||
## Start and create a volume | ||
TEST glusterd | ||
TEST pidof glusterd | ||
TEST $CLI volume info; | ||
|
||
TEST $CLI volume create $V0 replica 2 $H0:$B0/${V0}{1,2,3,4}; | ||
|
||
## Start volume and verify | ||
TEST $CLI volume start $V0; | ||
|
||
## Mount FUSE with caching disabled (read-write) | ||
TEST $GFS -s $H0 --volfile-id $V0 --volume-name ${V0}-dht $M0; | ||
|
||
TEST ! stat $M0/subdir1; | ||
TEST mkdir $M0/subdir1; | ||
TEST ! stat $M0/subdir2; | ||
TEST mkdir $M0/subdir2; | ||
TEST ! stat $M0/subdir1/subdir1.1; | ||
TEST mkdir $M0/subdir1/subdir1.1; | ||
TEST ! stat $M0/subdir1/subdir1.1/subdir1.2; | ||
TEST mkdir $M0/subdir1/subdir1.1/subdir1.2; | ||
|
||
# mount volume/subdir1 | ||
TEST $GFS --subdir-mount /subdir1 -s $H0 --volfile-id $V0 --volume-name ${V0}-dht $M1; | ||
|
||
TEST touch $M0/topfile; | ||
TEST ! stat $M1/topfile; | ||
|
||
TEST touch $M1/subdir1_file; | ||
TEST ! stat $M0/subdir1_file; | ||
TEST stat $M0/subdir1/subdir1_file; | ||
|
||
# mount volume/subdir2 | ||
TEST $GFS --subdir-mount /subdir2 -s $H0 --volfile-id $V0 $M2; | ||
|
||
TEST ! stat $M2/topfile; | ||
|
||
TEST touch $M2/subdir2_file; | ||
TEST ! stat $M0/subdir2_file; | ||
TEST ! stat $M1/subdir2_file; | ||
TEST stat $M0/subdir2/subdir2_file; | ||
|
||
# umount $M1 / $M2 | ||
TEST umount $M1 | ||
TEST umount $M2 | ||
|
||
# mount non-existing subdir ; this works with mount.glusterfs, | ||
# but with glusterfs, the script doesn't returns error. | ||
#TEST ! $GFS --subdir-mount subdir_not_there -s $H0 --volfile-id $V0 $M1; | ||
|
||
# mount subdir with depth | ||
TEST $GFS --subdir-mount /subdir1/subdir1.1/subdir1.2 -s $H0 --volfile-id $V0 $M2; | ||
TEST ! stat $M2/topfile; | ||
TEST touch $M2/subdir1.2_file; | ||
TEST ! stat $M0/subdir1.2_file; | ||
TEST stat $M0/subdir1/subdir1.1/subdir1.2/subdir1.2_file; | ||
|
||
TEST umount $M2 | ||
|
||
# Lets validate the options # Not having '*' in here as there was some | ||
# problem with option validation with this | ||
TEST $CLI volume set $V0 auth.allow 192.168.1.1 | ||
|
||
TEST $CLI volume set $V0 auth.allow "192.168.1.1,10.10.\*.\*,::1" | ||
|
||
TEST $CLI volume set $V0 auth.allow "/subdir1\(1.2.3.4\),/\(192.168.10.2\|192.168.11.1\),/subdir2\(1.2.3.4\)" | ||
|
||
# directories should be absolute | ||
TEST ! $CLI volume set $V0 auth.allow "subdir2\(1.2.3.4\)" | ||
|
||
# support subdir inside subdir | ||
TEST $CLI volume set $V0 auth.allow '/subdir1/subdir1.1/subdir1.2/\(1.2.3.4\|::1\),/\(192.168.10.1\|192.168.11.1\),/subdir2\(1.2.3.4\)' | ||
|
||
# /subdir2 has not allowed IP | ||
TEST $GFS --subdir-mount /subdir2 -s $H0 --volfile-id $V0 $M1 | ||
TEST stat $M1 | ||
|
||
TEST $GFS --subdir-mount /subdir1/subdir1.1/subdir1.2 -s $H0 --volfile-id $V0 $M2 | ||
TEST stat $M2 | ||
|
||
# umount $M1 / $M2 | ||
TEST umount $M0 | ||
TEST umount $M1 | ||
TEST umount $M2 | ||
|
||
|
||
TEST $CLI volume stop $V0; | ||
TEST $CLI volume delete $V0; | ||
TEST ! $CLI volume info $V0; | ||
|
||
## This should clean the mountpoints | ||
cleanup; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.