cli: validate brick while creating replicate volume
When user create replicate volume by typing incomplete command "gluster volume create <VOLNAME> replica replica_count" then cli is crashing. Fix is to validate command properly. If user have not given any brick then it should return proper cli command usage error message. Change-Id: I3d4096a144e20f21ab956049af1dae196217a807 BUG: 1211576 Signed-off-by: Gaurav Kumar Garg <ggarg@redhat.com> Reviewed-on: http://review.gluster.org/10245 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Atin Mukherjee <amukherj@redhat.com> Reviewed-by: Ravishankar N <ravishankar@redhat.com> Tested-by: NetBSD Build System Reviewed-by: Kaushal M <kaushal@redhat.com> Tested-by: Kaushal M <kaushal@redhat.com>
This commit is contained in:
parent
b6b18e32c8
commit
ec6ccda378
@ -527,24 +527,28 @@ cli_cmd_volume_create_parse (struct cli_state *state, const char **words,
|
||||
goto out;
|
||||
|
||||
index += 2;
|
||||
if (!strcmp (words[index], "arbiter")) {
|
||||
ret = gf_string2int (words[index+1],
|
||||
&arbiter_count);
|
||||
if (ret == -1 || arbiter_count != 1 ||
|
||||
replica_count != 3) {
|
||||
cli_err ("For arbiter configuration, "
|
||||
"replica count must be 3 and "
|
||||
"arbiter count must be 1. "
|
||||
"The 3rd brick of the replica "
|
||||
"will be the arbiter.");
|
||||
ret = -1;
|
||||
goto out;
|
||||
if (words[index]) {
|
||||
if (!strcmp (words[index], "arbiter")) {
|
||||
ret = gf_string2int (words[index+1],
|
||||
&arbiter_count);
|
||||
if (ret == -1 || arbiter_count != 1 ||
|
||||
replica_count != 3) {
|
||||
cli_err ("For arbiter "
|
||||
"configuration, "
|
||||
"replica count must be"
|
||||
" 3 and arbiter count "
|
||||
"must be 1. The 3rd "
|
||||
"brick of the replica "
|
||||
"will be the arbiter");
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
ret = dict_set_int32 (dict, "arbiter-count",
|
||||
arbiter_count);
|
||||
if (ret)
|
||||
goto out;
|
||||
index += 2;
|
||||
}
|
||||
ret = dict_set_int32 (dict, "arbiter-count",
|
||||
arbiter_count);
|
||||
if (ret)
|
||||
goto out;
|
||||
index += 2;
|
||||
}
|
||||
|
||||
} else if ((strcmp (w, "stripe")) == 0) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user