diff options
author | Niels de Vos <ndevos@redhat.com> | 2015-01-01 13:15:45 +0100 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2015-03-18 22:16:34 -0700 |
commit | a1755ee2765f3d1c9c26d51a49ad63d133932710 (patch) | |
tree | 71982c048f2c6deb8d05e894f14d568a1da978a4 /tests | |
parent | 5394f3cf60b0815d2919d24e9945ba47e3bb1f9b (diff) |
glusterfsd: add "print-netgroups" and "print-exports" command
NFS now has the ability to use a separate file for "netgroups" and
"exports". An administrator should have the ability to check the
validity of the files before applying the configuration.
The "glusterfsd" command now has the following additional arguments that
can be used to check the configuration:
--print-netgroups: Validate the netgroups file and print it out
--print-exports: Validate the exports file and print it out
BUG: 1143880
Change-Id: I24c40d50110d49d8290f9fd916742f7e4d0df85f
URL: http://www.gluster.org/community/documentation/index.php/Features/Exports_Netgroups_Authentication
Original-author: Shreyas Siravara <shreyas.siravara@gmail.com>
CC: Richard Wareing <rwareing@fb.com>
CC: Jiffin Tony Thottan <jthottan@redhat.com>
Signed-off-by: Niels de Vos <ndevos@redhat.com>
Reviewed-on: http://review.gluster.org/9365
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/basic/exports_parsing.t | 44 | ||||
-rw-r--r-- | tests/basic/netgroup_parsing.t | 50 | ||||
-rw-r--r-- | tests/configfiles/bad_exports | 9 | ||||
-rw-r--r-- | tests/configfiles/bad_netgroups | 5 | ||||
-rw-r--r-- | tests/configfiles/big_exports | 10 | ||||
-rw-r--r-- | tests/configfiles/exports | 1 | ||||
-rw-r--r-- | tests/configfiles/exports_bad_opt | 1 | ||||
-rw-r--r-- | tests/configfiles/netgroups | 3 |
8 files changed, 123 insertions, 0 deletions
diff --git a/tests/basic/exports_parsing.t b/tests/basic/exports_parsing.t new file mode 100644 index 00000000000..fdaf9c2822e --- /dev/null +++ b/tests/basic/exports_parsing.t @@ -0,0 +1,44 @@ +#!/bin/bash + +. $(dirname $0)/../include.rc +. $(dirname $0)/../volume.rc + +EXP_FILES=$(dirname $0)/../configfiles + +cleanup + +function test_good_file () +{ + glusterfsd --print-exports $1 +} + +function test_long_netgroup() +{ + glusterfsd --print-exports $1 2>&1 | sed -n 1p +} + +function test_bad_line () +{ + glusterfsd --print-exports $1 2>&1 | sed -n 1p +} + +function test_big_file () +{ + glusterfsd --print-exports $1 | sed -n 3p +} + +function test_bad_opt () +{ + glusterfsd --print-exports $1 2>&1 | sed -n 1p +} + +EXPECT_KEYWORD "/test @test(rw,anonuid=0,sec=sys,) 10.35.11.31(rw,anonuid=0,sec=sys,)" test_good_file $EXP_FILES/exports + +EXPECT_KEYWORD "Error parsing netgroups for:" test_bad_line $EXP_FILES/bad_exports +EXPECT_KEYWORD "Error parsing netgroups for:" test_long_netgroup $EXP_FILES/bad_exports + +EXPECT_KEYWORD "HDCDTY43SXOAH1TNUKB23MO9DE574W(rw,anonuid=0,sec=sys,)" test_big_file $EXP_FILES/big_exports + +EXPECT_KEYWORD "Could not find any valid options" test_bad_opt $EXP_FILES/exports_bad_opt + +cleanup diff --git a/tests/basic/netgroup_parsing.t b/tests/basic/netgroup_parsing.t new file mode 100644 index 00000000000..73a69c44cea --- /dev/null +++ b/tests/basic/netgroup_parsing.t @@ -0,0 +1,50 @@ +#!/bin/bash + +. $(dirname $0)/../include.rc +. $(dirname $0)/../volume.rc + +NG_FILES=$(dirname $0)/../configfiles +cleanup; + +function test_ng_1 () +{ + glusterfsd --print-netgroups $1 | sed -n 1p +} + +function test_ng_2 () +{ + glusterfsd --print-netgroups $1 | sed -n 2p +} + +function test_ng_3 () +{ + glusterfsd --print-netgroups $1 | sed -n 3p +} + +function test_bad_ng () +{ + glusterfsd --print-netgroups $1 2>&1 | sed -n 1p +} + +function test_large_file () +{ + # The build system needs this path for the test to pass. + # This is an important test because this file is ~1800 lines + # longs and is a "real-world" netgroups file. + glusterfsd --print-netgroups ~/opsfiles/storage/netgroup/netgroup | sed -n 1p +} + +function test_empty_ng () +{ + glusterfsd --print-netgroups $1 2>&1 | sed -n 2p +} + +EXPECT_KEYWORD "ng2 (dev1763.prn2.example.com,,)" test_ng_1 $NG_FILES/netgroups +EXPECT_KEYWORD "ng1 ng2 (dev1763.prn2.example.com,,)" test_ng_2 $NG_FILES/netgroups +EXPECT_KEYWORD "asdf ng1 ng2 (dev1763.prn2.example.com,,)" test_ng_3 $NG_FILES/netgroups +# TODO: get a real-world large netgroup file +#EXPECT_KEYWORD "wikipedia001.07.prn1 (wikipedia003.prn1.example.com,,)(wikipedia002.prn1.example.com,,)(wikipedia001.prn1.example.com,,)" test_large_file +EXPECT_KEYWORD "Parse error" test_bad_ng $NG_FILES/bad_netgroups +EXPECT_KEYWORD "No netgroups were specified except for the parent" test_empty_ng $NG_FILES/bad_netgroups + +cleanup; diff --git a/tests/configfiles/bad_exports b/tests/configfiles/bad_exports new file mode 100644 index 00000000000..6fd18d9415a --- /dev/null +++ b/tests/configfiles/bad_exports @@ -0,0 +1,9 @@ +#$Id$ +#/0838586658093758013308385866580937580133083858665809375801330838586658093758013308385866580937580133083858665809375801330838586658093758013308385866580937580133 @test(sec=sys,rw,anonuid=0) 10.35.11.32(sec=sys,rw,anonuid=0) + +/test @test(sec=sys,rw,anonuid=0) shreyas.facebook.com(sec=sys,rw,anonuid=0) shreyas.s(sec=sys,rw,anonuid=595) +çççßåß僃 +/asdf @ObVyg571RJaorkGbgVerI9esrck8yiVD7NVqqJvj2H9DuPH3SzHnYLIXjd4zZjuuh2N0O0bYYQf7VYNrYHoxc1llgRU1iEsQRy2XaWnUlhTHKVEL8tt1TrbZCi8qXyg0l058rTnW4msvU5hW83ESwyOE4bBSz4VsW0sJaVd8Gv4waZqojemLN8AIlAoChVOfP1yhuAP1298ejkaf2fjhdfa4t4effhgadff342fdddgasdg42gahgdmnui24290hfjdjadgdkjhg2nvncms(sec=sys,rw,anonuid=1) +#/vol/root -sec=sys,rw=@storage.prn1:@storage.ash4:@storage.frc1,anon=0 +#/vol/home107 -sec=sys,rw,nosuid,root=@storage.prn1:@storage.ash4:@storage.frc1:@hr.ash3:@hr.prn1:ldap001.prn1.facebook.com:ldap001.frc1.facebook.com +#/vol/home109 -sec=sys,rw,nosuid,root=@storage.prn1:@storage.ash4:@storage.frc1:@hr.ash3:@hr.prn1:ldap001.prn1.facebook.com:ldap001.frc1.facebook.com diff --git a/tests/configfiles/bad_netgroups b/tests/configfiles/bad_netgroups new file mode 100644 index 00000000000..ea27edfef10 --- /dev/null +++ b/tests/configfiles/bad_netgroups @@ -0,0 +1,5 @@ +asdf ng1 +ng1 ng2 +ng2 (dev1763.prn2.facebook.com, ,) + +emptyng diff --git a/tests/configfiles/big_exports b/tests/configfiles/big_exports new file mode 100644 index 00000000000..9ca5d655664 --- /dev/null +++ b/tests/configfiles/big_exports @@ -0,0 +1,10 @@ +/75213U8JV58PBY7F0VFGJ080MH3K71 @ZXV3UE7WJSCZSPMPAYUBACCZUOD0XY(sec=sys,rw,anonuid=0) 9PAC2KCTKRIH62CPGAMAUAJGLVQNS3(sec=sys,rw,anonuid=0) +/O4DYT8D6QVS9EKEHTYOPTYL6IWU4DN @KLBH3LB3UN5LWDWPPQEQWEHYVL3K0A(sec=sys,rw,anonuid=0) B37PXMCQMY5IQPDGV08XC7ITYT650V(sec=sys,rw,anonuid=0) +/OFHJLTKZMDAN28Q9IQQQIPFUEZ2YAN @UY3K3B8C05OQ4OTX42VXQKJ2CGJ8QX(sec=sys,rw,anonuid=0) AM0ET70HT6YND7D8RKG446LEOW40EC(sec=sys,rw,anonuid=0) +/3VDZ2JHFQ2JGF2GQGYQH38UPAW6A6T @DEPUVDYZOJFCSQ7KD07NVPAFGEG7YJ(sec=sys,rw,anonuid=0) 5HI538NCEYF7KY7HC1F69UBWFVTIGA(sec=sys,rw,anonuid=0) +/4ZI3ZRJUNQM21ZM8VB891X4ZCUHK7E @7U8TNSZ55AWJAOPAIV67OGPWLGM4JV(sec=sys,rw,anonuid=0) 8698JR9V4KKENE7UGYHV3T4XG9K0NH(sec=sys,rw,anonuid=0) +/A4CSZ2FQ3VYPT9R0HYN3QVQ7TK9IHI @G2Z45H649YZ9WNC3OSU7STCLT3VWT9(sec=sys,rw,anonuid=0) 65CA94Z7JXZ0F0JB5EP95I6FBJT673(sec=sys,rw,anonuid=0) +/G91PI0EX5TUYSX91IAH49M1GEMNKSP @O5IFIYJUENNNK16U0FK0QCDE0DK9G2(sec=sys,rw,anonuid=0) A8AZTTWC7BMTV8YW8XE4R57WUOSUMZ(sec=sys,rw,anonuid=0) +/YCZFA0ALYC284R60E7QXQN7AVSILFO @7OGJV2J1NOII7UOGN12SUNRW3XBWWG(sec=sys,rw,anonuid=0) HDCDTY43SXOAH1TNUKB23MO9DE574W(sec=sys,rw,anonuid=0) +/VBGB57O8R87B9N4E8QPGU6D55DVZE5 @F95KY58VAUOUX30QKIN16U987UU9BE(sec=sys,rw,anonuid=0) WGSH35L15FT2IC0IT9PTCU8SCYW9W4(sec=sys,rw,anonuid=0) +/NTHST2FDSP35BKEEIOQIQX38722AN0 @T9BXSDXF2N5HVOM8P1BN0Q5IQ6RC34(sec=sys,rw,anonuid=0) OLJR1KXJRY14UEZNV1LP7RV68KPIW7(sec=sys,rw,anonuid=0) diff --git a/tests/configfiles/exports b/tests/configfiles/exports new file mode 100644 index 00000000000..82ba450403e --- /dev/null +++ b/tests/configfiles/exports @@ -0,0 +1 @@ +/test @test(sec=sys,rw,anonuid=0) 10.35.11.31(sec=sys,rw,anonuid=0) diff --git a/tests/configfiles/exports_bad_opt b/tests/configfiles/exports_bad_opt new file mode 100644 index 00000000000..70a56890e4c --- /dev/null +++ b/tests/configfiles/exports_bad_opt @@ -0,0 +1 @@ +/groot asdf(r) @ngtop(r) diff --git a/tests/configfiles/netgroups b/tests/configfiles/netgroups new file mode 100644 index 00000000000..a4ed2c53df4 --- /dev/null +++ b/tests/configfiles/netgroups @@ -0,0 +1,3 @@ +asdf ng1 +ng1 ng2 +ng2 (dev1763.prn2.example.com,,) |