From fc637b14cfad4d08e72bee7064194c8007a388d0 Mon Sep 17 00:00:00 2001 From: Kaushal M Date: Wed, 3 Jul 2013 16:31:22 +0530 Subject: cli,glusterd: Changes to cli-glusterd communication Glusterd changes: With this patch, glusterd creates a socket file in DATADIR/run/glusterd.socket , and listen on it for cli requests. It listens for 2 rpc programs on the socket file, - The glusterd cli rpc program, for all cli commands - A reduced glusterd handshake program, just for the 'system:: getspec' command The location of the socket file can be changed with the glusterd option 'glusterd-sockfile'. To retain compatibility with the '--remote-host' cli option, glusterd also listens for the cli requests on port 24007. But, for the sake of security, it listens using a reduced cli rpc program on the port. The reduced rpc program only contains read-only procs used for 'volume (info|list|status)', 'peer status' and 'system:: getwd' cli commands. CLI changes: The gluster cli now uses the glusterd socket file for communicating with glusterd by default. A new option '--gluster-sock' has been added to allow specifying the sockfile used to connect. Using the '--remote-host' option will make cli connect to the given host & port. Tests changes: cluster.rc has been modified to make use of socket files and use different log files for each glusterd. Some of the tests using cluster.rc have been fixed. Change-Id: Iaf24bc22f42f8014a5fa300ce37c7fc9b1b92b53 BUG: 980754 Signed-off-by: Kaushal M Reviewed-on: http://review.gluster.org/5280 Tested-by: Gluster Build System Reviewed-by: Krishnan Parthasarathi Reviewed-by: Vijay Bellur --- tests/bugs/bug-948729/bug-948729-force.t | 17 ++++++++--------- tests/bugs/bug-948729/bug-948729.t | 3 +-- tests/cluster.rc | 12 +++++++----- 3 files changed, 16 insertions(+), 16 deletions(-) (limited to 'tests') diff --git a/tests/bugs/bug-948729/bug-948729-force.t b/tests/bugs/bug-948729/bug-948729-force.t index 3a5df7916..d14e94061 100644 --- a/tests/bugs/bug-948729/bug-948729-force.t +++ b/tests/bugs/bug-948729/bug-948729-force.t @@ -16,7 +16,6 @@ V1=patchy1 V2=patchy2 TEST launch_cluster 2; -cli1="gluster --remote-host=$H1" TEST $CLI_1 peer probe $H2; @@ -59,22 +58,22 @@ TEST mount -t xfs $LD5 $B5/$V0 TEST mount -t xfs $LD6 $B6/$V0 #Case 0: Parent directory of the brick is absent -TEST ! $cli1 volume create $V0 $H1:$B1/$V0/nonexistent/b1 $H2:$B2/$V0/nonexistent/b2 force +TEST ! $CLI1 volume create $V0 $H1:$B1/$V0/nonexistent/b1 $H2:$B2/$V0/nonexistent/b2 force #Case 1: File system root is being used as brick directory -TEST $cli1 volume create $V0 $H1:$B5/$V0 $H2:$B6/$V0 force +TEST $CLI1 volume create $V0 $H1:$B5/$V0 $H2:$B6/$V0 force #Case 2: Brick directory contains only one component -TEST $cli1 volume create $V1 $H1:/$uuid1 $H2:/$uuid2 force +TEST $CLI1 volume create $V1 $H1:/$uuid1 $H2:/$uuid2 force #Case 3: Sub-directories of the backend FS being used as brick directory -TEST $cli1 volume create $V2 $H1:$B1/$V0/brick1 $H2:$B2/$V0/brick2 force +TEST $CLI1 volume create $V2 $H1:$B1/$V0/brick1 $H2:$B2/$V0/brick2 force #add-brick tests -TEST ! $cli1 volume add-brick $V0 $H1:$B3/$V0/nonexistent/brick3 force -TEST $cli1 volume add-brick $V0 $H1:$B3/$V0 force -TEST $cli1 volume add-brick $V1 $H1:/$uuid3 force -TEST $cli1 volume add-brick $V2 $H1:$B4/$V0/brick3 force +TEST ! $CLI1 volume add-brick $V0 $H1:$B3/$V0/nonexistent/brick3 force +TEST $CLI1 volume add-brick $V0 $H1:$B3/$V0 force +TEST $CLI1 volume add-brick $V1 $H1:/$uuid3 force +TEST $CLI1 volume add-brick $V2 $H1:$B4/$V0/brick3 force #####replace-brick tests #FIX-ME: replace-brick does not work with the newly introduced cluster test diff --git a/tests/bugs/bug-948729/bug-948729.t b/tests/bugs/bug-948729/bug-948729.t index 288ae2bef..f94db1ea0 100644 --- a/tests/bugs/bug-948729/bug-948729.t +++ b/tests/bugs/bug-948729/bug-948729.t @@ -14,7 +14,6 @@ uuid2=`uuidgen`; uuid3=`uuidgen`; TEST launch_cluster 2; -cli1="gluster --remote-host=$H1" TEST $CLI_1 peer probe $H2; @@ -42,7 +41,7 @@ TEST mount -t xfs $LD2 $B2/$V0 TEST mount -t xfs $LD3 $B3/$V0 #Tests without --mode=script option - +cli1=$(echo $CLI1 | sed 's/ --mode=script//') #Case 0: Parent directory of the brick is absent TEST ! $cli1 volume create $V0 $H1:$B1/$V0/nonexistent/b1 $H2:$B2/$V0/nonexistent/b2 diff --git a/tests/cluster.rc b/tests/cluster.rc index 1c06bca47..1e42426f6 100755 --- a/tests/cluster.rc +++ b/tests/cluster.rc @@ -45,8 +45,10 @@ function define_glusterds() { wopt="management.working-directory=${!b}/glusterd"; bopt="management.transport.socket.bind-address=${!h}"; popt="--pid-file=${!b}/glusterd.pid"; - eval "glusterd_$i='glusterd --xlator-option $wopt --xlator-option $bopt $popt'"; - eval "glusterd$i='glusterd --xlator-option $wopt --xlator-option $bopt $popt'"; + sopt="management.glusterd-sockfile=${!b}/glusterd/gd.sock" + lopt="--log-file=${!b}/glusterd.log" + eval "glusterd_$i='glusterd --xlator-option $wopt --xlator-option $bopt --xlator-option $sopt $lopt $popt'"; + eval "glusterd$i='glusterd --xlator-option $wopt --xlator-option $bopt --xlator-option $sopt $lopt $popt'"; done } @@ -98,9 +100,9 @@ function define_clis() { local h; for i in `seq 1 $count`; do - h="H$i"; - eval "CLI_$i='$CLI --remote-host=${!h}'"; - eval "CLI$i='$CLI --remote-host=${!h}'"; + b="B$i"; + eval "CLI_$i='$CLI --glusterd-sock=${!b}/glusterd/gd.sock'"; + eval "CLI$i='$CLI --glusterd-sock=${!b}/glusterd/gd.sock'"; done } -- cgit