diff options
author | Amar Tumballi <amarts@redhat.com> | 2019-04-01 10:57:58 +0530 |
---|---|---|
committer | Amar Tumballi <amarts@redhat.com> | 2019-05-08 10:31:41 +0000 |
commit | 87ba764b2e46cf4782820990f6e4252c8fb59a16 (patch) | |
tree | 0174c4534eda62fcb7d13936004d18f6efd6c1ca /tests/bugs | |
parent | 5c9ec08d36b825cd8abd0489dc5f77488dbfbc8b (diff) |
tests: enhance the auth.allow test to validate all failures of 'login' module
now the enhanced test covers most of the code in auth.login and auth.addr module.
updates: bz#1693692
Change-Id: I1f43c7dc414e2e4d443a93e9a37051359fd46ea4
Signed-off-by: Amar Tumballi <amarts@redhat.com>
Diffstat (limited to 'tests/bugs')
-rw-r--r-- | tests/bugs/protocol/bug-1321578.t | 53 |
1 files changed, 49 insertions, 4 deletions
diff --git a/tests/bugs/protocol/bug-1321578.t b/tests/bugs/protocol/bug-1321578.t index 160fc408fba..83904817467 100644 --- a/tests/bugs/protocol/bug-1321578.t +++ b/tests/bugs/protocol/bug-1321578.t @@ -6,6 +6,7 @@ check_mounted () { df | grep $1 | wc -l } +CHECK_MOUNT_TIMEOUT=7 TEST glusterd TEST $CLI volume create $V0 $H0:$B0/$V0 @@ -23,15 +24,59 @@ $CLI system getspec $V0 | sed -e /username/d -e /password/d > fubar.vol # This mount should fail because auth.allow doesn't include us. TEST $GFS -f fubar.vol $M0 +EXPECT_WITHIN $CHECK_MOUNT_TIMEOUT 0 check_mounted $M0 + +# Add tests when only username is present, but not password +# "System getspec" will include the username and password if the request comes +# from a server (which we are). Unfortunately, this will cause authentication +# to succeed in auth.login regardless of whether auth.addr is working properly +# or not, which is useless to us. To get a proper test, strip out those lines. +$CLI system getspec $V0 | sed -e /password/d > fubar.vol + +# This mount should fail because auth.allow doesn't include our password. +TEST $GFS -f fubar.vol $M0 + # If we had DONT_EXPECT_WITHIN we could use that, but we don't. -sleep 10 -EXPECT 0 check_mounted $M0 +EXPECT_WITHIN $CHECK_MOUNT_TIMEOUT 0 check_mounted $M0 + +# Now, add a test for login failure when server doesn't have the password entry +# Add tests when only username is present, but not password +# "System getspec" will include the username and password if the request comes +# from a server (which we are). Unfortunately, this will cause authentication +# to succeed in auth.login regardless of whether auth.addr is working properly +# or not, which is useless to us. To get a proper test, strip out those lines. +$CLI system getspec $V0 > fubar.vol +TEST $CLI volume stop $V0 + +sed -i -e '/password /d' /var/lib/glusterd/vols/$V0/$V0.*$V0.vol + +TEST $CLI volume start $V0 + +# This mount should fail because auth.allow doesn't include our password. +TEST $GFS -f fubar.vol $M0 + +EXPECT_WITHIN $CHECK_MOUNT_TIMEOUT 0 check_mounted $M0 # Set auth.allow to include us. This mount should therefore succeed. TEST $CLI volume set $V0 auth.allow $H0 +$CLI system getspec $V0 | sed -e /password/d > fubar.vol + +TEST $GFS -f fubar.vol $M0 +EXPECT_WITHIN $CHECK_MOUNT_TIMEOUT 1 check_mounted $M0 + +EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0 + +# Set auth.reject to include us. This mount should therefore fail. +TEST $CLI volume stop $V0 + +TEST $CLI volume set $V0 auth.allow "\*" +TEST $CLI volume set $V0 auth.reject $H0 +TEST $CLI volume start $V0 + +# Do this, so login module is not in picture +$CLI system getspec $V0 | sed -e /password/d > fubar.vol TEST $GFS -f fubar.vol $M0 -sleep 10 -EXPECT 1 check_mounted $M0 +EXPECT_WITHIN $CHECK_MOUNT_TIMEOUT 0 check_mounted $M0 cleanup |