From 508eb854f3f94f52d4ebd050f3e45deb9cfa90c8 Mon Sep 17 00:00:00 2001 From: Mohammed Rafi KC Date: Mon, 27 Apr 2015 12:33:06 +0530 Subject: cli/tiering : Parse detach-tier command properly gluster detach-tier help should show the usage of detach-tier command properly. Also, instead of force option, if any other was given, then the command should fail with a usage message Change-Id: Ie801529176db067c98fd1bfada056cbc647973fb BUG: 1211570 Signed-off-by: Mohammed Rafi KC Reviewed-on: http://review.gluster.org/10303 Tested-by: NetBSD Build System Tested-by: Gluster Build System Reviewed-by: Atin Mukherjee Reviewed-by: Dan Lambright --- cli/src/cli-cmd-parser.c | 16 +++++++++++++--- cli/src/cli-cmd-volume.c | 6 ++++-- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/cli/src/cli-cmd-parser.c b/cli/src/cli-cmd-parser.c index b30306b2584..e43a0c6e0ec 100644 --- a/cli/src/cli-cmd-parser.c +++ b/cli/src/cli-cmd-parser.c @@ -1588,9 +1588,6 @@ cli_cmd_volume_detach_tier_parse (const char **words, int wordcount, int32_t command = GF_OP_CMD_NONE; int force = 0; - if (!((wordcount == 4) || (wordcount == 5))) - goto out; - dict = dict_new (); if (!dict) goto out; @@ -1599,10 +1596,23 @@ cli_cmd_volume_detach_tier_parse (const char **words, int wordcount, if (ret) goto out; + if (wordcount == 3 && !strcmp ((char *)words[2], "help")) { + return -1; + } + + if (!((wordcount == 4) || (wordcount == 5))) { + ret = -1; + goto out; + } + if (wordcount == 5) { word = (char *)words[4]; if (!strcmp(word, "force")) force = 1; + else { + ret = -1; + goto out; + } } word = (char *)words[3]; diff --git a/cli/src/cli-cmd-volume.c b/cli/src/cli-cmd-volume.c index b5d5920bebc..f73cb8bc3db 100644 --- a/cli/src/cli-cmd-volume.c +++ b/cli/src/cli-cmd-volume.c @@ -920,9 +920,11 @@ cli_cmd_volume_detach_tier_cbk (struct cli_state *state, goto out; ret = cli_cmd_volume_detach_tier_parse(words, wordcount, &options); - - if (ret) + if (ret) { + cli_usage_out (word->pattern); + parse_error = 1; goto out; + } ret = dict_set_int32 (options, "force", 1); if (ret) -- cgit