diff options
author | Kaushal M <kaushal@redhat.com> | 2014-06-19 15:31:46 +0530 |
---|---|---|
committer | Krishnan Parthasarathi <kparthas@redhat.com> | 2014-09-23 02:17:58 -0700 |
commit | 371bb42410ca5bbcf1f13ad1c8d015fcbe6ec5ce (patch) | |
tree | 7e18fab14610d50af3520cd47bd9432236258021 /tests/bugs | |
parent | f14d9bdd52b428466e7863d06c89b4684be3da07 (diff) |
glusterd: Authenticate management handshake requests
Management handshake requests, which are used to validate op-version
supported by the peers, are now only allowed if,
- the glusterd doesn't have any other peer, or
- the request was sent by another peer.
This prevents the op-version of a peer being changed because of a
connection attempt by an invalid peer.
Change-Id: I248c386ed5ec4f8360e7b5e7f9ab74b7e8a7fc65
BUG: 1109741
Signed-off-by: Kaushal M <kaushal@redhat.com>
Reviewed-on: http://review.gluster.org/8126
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>
Tested-by: Krishnan Parthasarathi <kparthas@redhat.com>
Diffstat (limited to 'tests/bugs')
-rw-r--r-- | tests/bugs/bug-1109741-auth-mgmt-handshake.t | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/bugs/bug-1109741-auth-mgmt-handshake.t b/tests/bugs/bug-1109741-auth-mgmt-handshake.t new file mode 100644 index 00000000000..42a8eb3ed82 --- /dev/null +++ b/tests/bugs/bug-1109741-auth-mgmt-handshake.t @@ -0,0 +1,50 @@ +#! /bin/bash + +. $(dirname $0)/../include.rc +. $(dirname $0)/../cluster.rc + +# The test will attempt to verify that management handshake requests to +# GlusterD are authenticated before being allowed to change a GlusterD's +# op-version +# +# 1. Launch 3 glusterds +# 2. Probe 2 of them to form a cluster. This should succeed. +# 3. Probe either of the first two GlusterD's from the 3rd GlusterD. This should fail. +# 4. a. Reduce the op-version of 3rd GlusterD and restart it. +# b. Probe either of the first two GlusterD's from the 3rd GlusterD. This should fail. +# 5. Check current op-version of first two GlusterDs. It shouldn't have changed. +# 6. Probe third GlusterD from the cluster. This should succeed. + + +cleanup + +TEST launch_cluster 3 + +TEST $CLI_1 peer probe $H2 + +TEST ! $CLI_3 peer probe $H1 + +GD1_WD=$($CLI_1 system getwd) +OP_VERS_ORIG=$(grep 'operating-version' ${GD1_WD}/glusterd.info | cut -d '=' -f 2) + +TEST $CLI_3 system uuid get # Needed for glusterd.info to be created + +GD3_WD=$($CLI_3 system getwd) +TEST sed -rnie "'s/(operating-version=)\w+/\130600/gip'" ${GD3_WD}/glusterd.info + +TEST kill_glusterd 3 +TEST start_glusterd 3 + +TEST ! $CLI_3 peer probe $H1 + +OP_VERS_NEW=$(grep 'operating-version' ${GD1_WD}/glusterd.info | cut -d '=' -f 2) +TEST [[ $OP_VERS_ORIG == $OP_VERS_NEW ]] + +TEST $CLI_1 peer probe $H3 + +kill_node 1 +kill_node 2 +kill_node 3 + +cleanup; + |