glusterfs/0460-cli-add-a-warning-confirmation-message-in-peer-detac.patch
Milind Changire 1f2f23ddef autobuild v3.12.2-33
Resolves: bz#1350745 bz#1362129 bz#1541568 bz#1597252 bz#1599220
Resolves: bz#1633177 bz#1637564 bz#1639476 bz#1639568 bz#1643370
Resolves: bz#1645480 bz#1648296 bz#1648893 bz#1651040 bz#1651460
Resolves: bz#1652466 bz#1652537 bz#1653224 bz#1653613 bz#1654103
Resolves: bz#1654161 bz#1655385 bz#1655578 bz#1656357 bz#1659439
Signed-off-by: Milind Changire <mchangir@redhat.com>
2018-12-18 11:23:13 -05:00

75 lines
2.9 KiB
Diff

From 81b19743a97ebecc188d87fbe04dce59260824f8 Mon Sep 17 00:00:00 2001
From: Atin Mukherjee <amukherj@redhat.com>
Date: Tue, 6 Nov 2018 21:35:36 +0530
Subject: [PATCH 460/493] cli: add a warning/confirmation message in peer
detach code path
On a multi node cluster if one of the node is detached which had active
clients mounted through the same server address, this can cause all the
clients to loose any volfile changes. This is due to the lack of infra
in glusterd to let client know the list of IPs and attempt to connect to
other active nodes as failback. Such framework does exist in GD2 but not
in GD1.
This patch ensures to take a preventive measure to have a warning
message thrown to user to ensure all such connected clients are
remounted through a different IP.
> Change-Id: I740b01868abbd75bf0a609cfaf00114d4d78aa96
> Fixes: bz#1647074
> Signed-off-by: Atin Mukherjee <amukherj@redhat.com>
upstream patch: https://review.gluster.org/#/c/glusterfs/+/21572/
Change-Id: I740b01868abbd75bf0a609cfaf00114d4d78aa96
BUG: 1639568
Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/158630
Tested-by: RHGS Build Bot <nigelb@redhat.com>
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
---
cli/src/cli-cmd-peer.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/cli/src/cli-cmd-peer.c b/cli/src/cli-cmd-peer.c
index 7df60bc..6f3b744 100644
--- a/cli/src/cli-cmd-peer.c
+++ b/cli/src/cli-cmd-peer.c
@@ -111,13 +111,20 @@ cli_cmd_peer_deprobe_cbk (struct cli_state *state, struct cli_cmd_word *word,
int sent = 0;
int parse_error = 0;
cli_local_t *local = NULL;
+ gf_answer_t answer = GF_ANSWER_NO;
+ const char *question = NULL;
if ((wordcount < 3) || (wordcount > 4)) {
cli_usage_out (word->pattern);
parse_error = 1;
goto out;
}
-
+ question =
+ "All clients mounted through the peer which is getting detached"
+ " need to be remounted using one of the other active peers in "
+ "the trusted storage pool to ensure client gets notification on"
+ " any changes done on the gluster configuration and if the "
+ "same has been done do you want to proceed?";
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_DEPROBE];
frame = create_frame (THIS, THIS->ctx->pool);
@@ -149,6 +156,11 @@ cli_cmd_peer_deprobe_cbk (struct cli_state *state, struct cli_cmd_word *word,
ret = dict_set_int32 (dict, "flags", flags);
if (ret)
goto out;
+ answer = cli_cmd_get_confirmation(state, question);
+ if (GF_ANSWER_NO == answer) {
+ ret = 0;
+ goto out;
+ }
CLI_LOCAL_INIT (local, words, frame, dict);
--
1.8.3.1