diff options
-rw-r--r-- | cli/src/cli-cmd-volume.c | 6 | ||||
-rw-r--r-- | cli/src/cli.c | 7 | ||||
-rw-r--r-- | cli/src/cli.h | 1 | ||||
-rw-r--r-- | tests/bugs/bug-948729/bug-948729-mode-script.t | 43 | ||||
-rw-r--r-- | tests/bugs/bug-948729/bug-948729.t | 3 | ||||
-rw-r--r-- | tests/include.rc | 2 |
6 files changed, 26 insertions, 36 deletions
diff --git a/cli/src/cli-cmd-volume.c b/cli/src/cli-cmd-volume.c index f11fa21db96..f3b1828a0c7 100644 --- a/cli/src/cli-cmd-volume.c +++ b/cli/src/cli-cmd-volume.c @@ -395,7 +395,7 @@ cli_cmd_volume_create_cbk (struct cli_state *state, struct cli_cmd_word *word, } } - if (state->mode & GLUSTER_MODE_SCRIPT) { + if (state->mode & GLUSTER_MODE_WIGNORE) { ret = dict_set_int32 (options, "force", _gf_true); if (ret) { gf_log ("cli", GF_LOG_ERROR, "Failed to set force " @@ -981,7 +981,7 @@ cli_cmd_volume_add_brick_cbk (struct cli_state *state, } } - if (state->mode & GLUSTER_MODE_SCRIPT) { + if (state->mode & GLUSTER_MODE_WIGNORE) { ret = dict_set_int32 (options, "force", _gf_true); if (ret) { gf_log ("cli", GF_LOG_ERROR, "Failed to set force " @@ -1552,7 +1552,7 @@ cli_cmd_volume_replace_brick_cbk (struct cli_state *state, goto out; } - if (state->mode & GLUSTER_MODE_SCRIPT) { + if (state->mode & GLUSTER_MODE_WIGNORE) { ret = dict_set_int32 (options, "force", _gf_true); if (ret) { gf_log ("cli", GF_LOG_ERROR, "Failed to set force" diff --git a/cli/src/cli.c b/cli/src/cli.c index 67f1ad25793..a77200c6692 100644 --- a/cli/src/cli.c +++ b/cli/src/cli.c @@ -326,14 +326,21 @@ cli_opt_parse (char *opt, struct cli_state *state) return 0; } + if (strcmp (opt, "wignore") == 0) { + state->mode |= GLUSTER_MODE_WIGNORE; + return 0; + } + oarg = strtail (opt, "mode="); if (oarg) { if (strcmp (oarg, "script") == 0) { state->mode |= GLUSTER_MODE_SCRIPT; return 0; } + if (strcmp (oarg, "interactive") == 0) return 0; + return -1; } diff --git a/cli/src/cli.h b/cli/src/cli.h index 1fe8ffff7fb..f5db29383c0 100644 --- a/cli/src/cli.h +++ b/cli/src/cli.h @@ -45,6 +45,7 @@ enum argp_option_keys { #define GLUSTER_MODE_SCRIPT (1 << 0) #define GLUSTER_MODE_ERR_FATAL (1 << 1) #define GLUSTER_MODE_XML (1 << 2) +#define GLUSTER_MODE_WIGNORE (1 << 3) #define GLUSTERD_GET_QUOTA_AUX_MOUNT_PATH(abspath, volname, path) \ diff --git a/tests/bugs/bug-948729/bug-948729-mode-script.t b/tests/bugs/bug-948729/bug-948729-mode-script.t index 541ca897d5f..5a1fdd3b1db 100644 --- a/tests/bugs/bug-948729/bug-948729-mode-script.t +++ b/tests/bugs/bug-948729/bug-948729-mode-script.t @@ -13,10 +13,6 @@ uuid1=`uuidgen`; uuid2=`uuidgen`; uuid3=`uuidgen`; -V1=patchy1 -V2=patchy2 -V3=patchy3 - TEST launch_cluster 2; TEST $CLI_1 peer probe $H2; @@ -24,17 +20,11 @@ TEST $CLI_1 peer probe $H2; EXPECT_WITHIN 20 1 check_peers; B3=/d/backends/3 -B4=/d/backends/4 -B5=/d/backends/5 -B6=/d/backends/6 -mkdir -p $B3 $B4 $B5 $B6 +mkdir -p $B3 TEST truncate -s 16M $B1/brick1 TEST truncate -s 16M $B2/brick2 TEST truncate -s 16M $B3/brick3 -TEST truncate -s 16M $B4/brick4 -TEST truncate -s 16M $B5/brick5 -TEST truncate -s 16M $B6/brick6 TEST LD1=`losetup --find --show $B1/brick1` TEST mkfs.xfs $LD1 @@ -42,44 +32,35 @@ TEST LD2=`losetup --find --show $B2/brick2` TEST mkfs.xfs $LD2 TEST LD3=`losetup --find --show $B3/brick3` TEST mkfs.xfs $LD3 -TEST LD4=`losetup --find --show $B4/brick4` -TEST mkfs.xfs $LD4 -TEST LD5=`losetup --find --show $B5/brick5` -TEST mkfs.xfs $LD5 -TEST LD6=`losetup --find --show $B6/brick6` -TEST mkfs.xfs $LD6 -mkdir -p $B1/$V0 $B2/$V0 $B3/$V0 $B4/$V0 $B5/$V0 $B6/$V0 +mkdir -p $B1/$V0 $B2/$V0 $B3/$V0 TEST mount -t xfs $LD1 $B1/$V0 TEST mount -t xfs $LD2 $B2/$V0 TEST mount -t xfs $LD3 $B3/$V0 -TEST mount -t xfs $LD4 $B4/$V0 -TEST mount -t xfs $LD5 $B5/$V0 -TEST mount -t xfs $LD6 $B6/$V0 + +cli1=$(echo $CLI1 | sed 's/ --wignore//') #Case 0: Parent directory of the brick is absent -TEST ! $CLI_1 volume create $V0 $H1:$B1/$V0/nonexistent/b1 $H2:$B2/$V0/nonexistent/b2 +TEST ! $cli1 volume create $V0 $H1:$B1/$V0/nonexistent/b1 $H2:$B2/$V0/nonexistent/b2 #Case 1: File system root being used as brick directory -TEST $CLI_1 volume create $V0 $H1:$B5/$V0 $H2:$B6/$V0 +TEST ! $cli1 volume create $V0 $H1:$B1/$V0 $H2:$B2/$V0 #Case 2: Brick directory contains only one component -TEST $CLI_1 volume create $V1 $H1:/$uuid1 $H2:/$uuid2 +TEST ! $cli1 volume create $V0 $H1:/$uuid1 $H2:/$uuid2 #Case 3: Sub-directories of the backend FS being used as brick directory -TEST $CLI_1 volume create $V2 $H1:$B1/$V0/brick1 $H2:$B2/$V0/brick2 +TEST $cli1 volume create $V0 $H1:$B1/$V0/brick1 $H2:$B2/$V0/brick2 #add-brick tests -TEST ! $CLI_1 volume add-brick $V0 $H1:$B3/$V0/nonexistent/brick3 -TEST $CLI_1 volume add-brick $V0 $H1:$B3/$V0 -TEST $CLI_1 volume add-brick $V1 $H1:/$uuid3 -TEST $CLI_1 volume add-brick $V2 $H1:$B4/$V0/brick3 +TEST ! $cli1 volume add-brick $V0 $H1:$B3/$V0/nonexistent/brick3 +TEST ! $cli1 volume add-brick $V0 $H1:$B3/$V0 +TEST ! $cli1 volume add-brick $V0 $H1:/$uuid3 +TEST $cli1 volume add-brick $V0 $H1:$B3/$V0/brick3 #####replace-brick tests #FIX-ME : replace-brick does not currently work in the newly introduced #####cluster test framework -rmdir /$uuid1 /$uuid2 /$uuid3 - cleanup; diff --git a/tests/bugs/bug-948729/bug-948729.t b/tests/bugs/bug-948729/bug-948729.t index f94db1ea055..3914a454c53 100644 --- a/tests/bugs/bug-948729/bug-948729.t +++ b/tests/bugs/bug-948729/bug-948729.t @@ -40,8 +40,9 @@ TEST mount -t xfs $LD1 $B1/$V0 TEST mount -t xfs $LD2 $B2/$V0 TEST mount -t xfs $LD3 $B3/$V0 -#Tests without --mode=script option +#Tests without options 'mode=script' and 'wignore' cli1=$(echo $CLI1 | sed 's/ --mode=script//') +cli1=$(echo $cli1 | sed 's/ --wignore//') #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/include.rc b/tests/include.rc index 40dd8ac96b9..0369d26109b 100644 --- a/tests/include.rc +++ b/tests/include.rc @@ -8,7 +8,7 @@ H0=${H0:=`hostname --fqdn`}; # hostname DEBUG=${DEBUG:=0} # turn on debugging? statedumpdir=`gluster --print-statedumpdir`; # Default directory for statedump -CLI="gluster --mode=script"; +CLI="gluster --mode=script --wignore"; mkdir -p $B0; mkdir -p $M0 $M1; |