diff options
author | karthik-us <ksubrahm@redhat.com> | 2017-03-14 13:17:11 +0530 |
---|---|---|
committer | Pranith Kumar Karampuri <pkarampu@redhat.com> | 2017-04-25 15:21:59 +0000 |
commit | db0e5582b118d5bb0c8bb491f46fa2ae0dcfa97e (patch) | |
tree | 6b77f16a6b704dd574c64c42ea611abc90c66aa9 /cli | |
parent | fb66df4c4496f19a3800e8efa39c52f77320a2fb (diff) |
cli: Adding warning message while creating a replica 2 volume
Warn the CLI about ending up in split-brain situation with a
replica 2 volume. Display arbiter and replica 3 are recommended
option to avoid this and point to the document on split-brain
and ways to deal with it.
Change-Id: I7f31f3c74818d440a684b3130bc5ccdc72258f01
BUG: 1431963
Signed-off-by: karthik-us <ksubrahm@redhat.com>
Reviewed-on: https://review.gluster.org/16899
Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
Tested-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
Smoke: Gluster Build System <jenkins@build.gluster.org>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Diffstat (limited to 'cli')
-rw-r--r-- | cli/src/cli-cmd-parser.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/cli/src/cli-cmd-parser.c b/cli/src/cli-cmd-parser.c index c43b52b63a2..c3058b673f8 100644 --- a/cli/src/cli-cmd-parser.c +++ b/cli/src/cli-cmd-parser.c @@ -456,6 +456,8 @@ cli_cmd_volume_create_parse (struct cli_state *state, const char **words, int32_t disperse_data_count = -1; gf_boolean_t is_force = _gf_false; int wc = wordcount; + gf_answer_t answer = GF_ANSWER_NO; + const char *question = NULL; GF_ASSERT (words); GF_ASSERT (options); @@ -526,6 +528,22 @@ cli_cmd_volume_create_parse (struct cli_state *state, const char **words, ret = -1; goto out; } + if (replica_count == 2) { + question = "Replica 2 volumes are prone to " + "split-brain. Use Arbiter or Replica" + " 3 to avoid this. See: " + " https://gluster.readthedocs.io/en/latest/Administrator%20Guide/Split%20brain%20and%20ways%20to%20deal%20with%20it/." + "\nDo you still want to continue?\n"; + answer = cli_cmd_get_confirmation (state, + question); + if (GF_ANSWER_NO == answer) { + gf_log ("cli", GF_LOG_ERROR, + "Volume create cancelled, " + "exiting"); + ret = -1; + goto out; + } + } ret = dict_set_int32 (dict, "replica-count", replica_count); if (ret) goto out; |