2014-06-11 10:38:45 +05:30
#!/bin/bash
. $ ( dirname $ 0 ) /../i nclude . rc
. $ ( dirname $ 0 ) /../ volume . rc
cleanup ;
TEST glusterd
TEST pidof glusterd
TEST $ CLI volume create $ V0 $ H0: $ B0 / $ { V0 } 0
TEST $ CLI volume start $ V0
2014-08-19 18:24:23 -07:00
TEST $ GFS - - volfile - id = / $ V0 - - volfile - server = $ H0 $ M0 - - aux - gfid - mount ;
2014-06-11 10:38:45 +05:30
TEST mkdir $ M0 / a
TEST touch $ M0 / b
a_gfid_str = $ ( gf_gfid_xattr_to_str $ ( gf_get_gfid_xattr $ B0 /${V0}0/ a ) )
b_gfid_str = $ ( gf_gfid_xattr_to_str $ ( gf_get_gfid_xattr $ B0 /${V0}0/ b ) )
#Operations on Directory
TEST setfattr - n trusted . abc - v abc $ M0 / a
2014-08-23 02:14:36 -07:00
EXPECT "abc" echo $ ( getfattr - n trusted . abc - - only - values $ M0 / a )
EXPECT "abc" echo $ ( getfattr - n trusted . abc - - only - values $ M0 /.gfid/ $ a_gfid_str )
2014-06-11 10:38:45 +05:30
TEST setfattr - x trusted . abc $ M0 / a
TEST ! getfattr - n trusted . abc $ M0 / a
TEST ! getfattr - n trusted . abc $ M0 /.gfid/ $ a_gfid_str
TEST chmod 0777 $ M0 / a
EXPECT "777" stat - c "%a" $ M0 / a
EXPECT "777" stat - c "%a" $ M0 /.gfid/ $ a_gfid_str
TEST setfattr - n trusted . abc - v def $ M0 /.gfid/ $ a_gfid_str
2014-08-23 02:14:36 -07:00
EXPECT "def" echo $ ( getfattr - n trusted . abc - - only - values $ M0 / a )
EXPECT "def" echo $ ( getfattr - n trusted . abc - - only - values $ M0 /.gfid/ $ a_gfid_str )
2014-06-11 10:38:45 +05:30
TEST setfattr - x trusted . abc $ M0 /.gfid/ $ a_gfid_str
TEST ! getfattr - n trusted . abc $ M0 / a
TEST ! getfattr - n trusted . abc $ M0 /.gfid/ $ a_gfid_str
TEST chmod 0777 $ M0 /.gfid/ $ a_gfid_str
EXPECT "777" stat - c "%a" $ M0 / a
EXPECT "777" stat - c "%a" $ M0 /.gfid/ $ a_gfid_str
2014-07-03 06:50:56 +05:30
#Entry operations on directory
#Test that virtual directories are not allowed to be deleted.
TEST ! mkdir $ M0 / . gfid
TEST ! rmdir $ M0 / . gfid
TEST ! touch $ M0 / . gfid
TEST ! rm - f $ M0 / . gfid
TEST ! mv $ M0 /.gfid $M0/ dont - rename
TEST ! ln - s $ M0 /symlink $M0/ . gfid
TEST ! ln $ M0 /.gfid $M0/ hlink
TEST ! mknod $ M0 / . gfid b 0 0
#Test that first level directory/file creations inside .gfid are not allowed.
2015-03-02 16:13:40 +01:00
tmpfile = $ ( mktemp )
2014-07-03 06:50:56 +05:30
TEST ! mkdir $ M0 /.gfid/ a
TEST ! touch $ M0 /.gfid/ a
2015-03-02 16:13:40 +01:00
TEST ! mv $ tmpfile $ M0 / . gfid
2014-07-03 06:50:56 +05:30
TEST ! mv $ M0 /a $M0/ . gfid
TEST ! mknod $ M0 /.gfid/ b b 0 0
2015-03-02 16:13:40 +01:00
rm - f $ tmpfile
2014-07-03 06:50:56 +05:30
2014-06-11 10:38:45 +05:30
#Operations on File
TEST setfattr - n trusted . abc - v abc $ M0 / b
2014-08-23 02:14:36 -07:00
EXPECT "abc" echo $ ( getfattr - n trusted . abc - - only - values $ M0 / b )
EXPECT "abc" echo $ ( getfattr - n trusted . abc - - only - values $ M0 /.gfid/ $ b_gfid_str )
2014-06-11 10:38:45 +05:30
TEST setfattr - x trusted . abc $ M0 / b
TEST ! getfattr - n trusted . abc $ M0 / b
TEST ! getfattr - n trusted . abc $ M0 /.gfid/ $ b_gfid_str
TEST chmod 0777 $ M0 / b
EXPECT "777" stat - c "%a" $ M0 / b
EXPECT "777" stat - c "%a" $ M0 /.gfid/ $ b_gfid_str
TEST setfattr - n trusted . abc - v def $ M0 /.gfid/ $ b_gfid_str
2014-08-23 02:14:36 -07:00
EXPECT "def" echo $ ( getfattr - n trusted . abc - - only - values $ M0 / b )
EXPECT "def" echo $ ( getfattr - n trusted . abc - - only - values $ M0 /.gfid/ $ b_gfid_str )
2014-06-11 10:38:45 +05:30
TEST setfattr - x trusted . abc $ M0 /.gfid/ $ b_gfid_str
TEST ! getfattr - n trusted . abc $ M0 / b
TEST ! getfattr - n trusted . abc $ M0 /.gfid/ $ b_gfid_str
TEST chmod 0777 $ M0 /.gfid/ $ b_gfid_str
EXPECT "777" stat - c "%a" $ M0 / b
EXPECT "777" stat - c "%a" $ M0 /.gfid/ $ b_gfid_str
cleanup