From 736aa5caa33ff82fa5e36a367b982ee3ce673608 Mon Sep 17 00:00:00 2001
From: Gaurav Kumar Garg <garg.gaurav52@gmail.com>
Date: Tue, 11 Aug 2015 18:17:31 +0530
Subject: [PATCH 05/26] glusterd: probing a new node, which is part of another cluster should give error
This patch is backport of: http://review.gluster.org/11884
If user try to add node to extant cluster using "gluster peer probe \
<ip/hostname>" command then command is failing but its not giving
proper cause of failure.
This fix will take control of proper error message during peer probe
with already extant cluster.
Change-Id: I4f993e78c0e1b3e061153b984ec5e9b70085aef5
BUG: 1319688
>> Change-Id: I4f993e78c0e1b3e061153b984ec5e9b70085aef5
>> BUG: 1252448
>> Signed-off-by: Gaurav Kumar Garg <ggarg@redhat.com>
>> Reviewed-on: http://review.gluster.org/11884
>> Tested-by: NetBSD Build System <jenkins@build.gluster.org>
>> Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
Signed-off-by: Gaurav Kumar Garg <ggarg@redhat.com>
Change-Id: Ia29907b9485dcdbaf82f0d379c4ac40de26a4713
Reviewed-on: https://code.engineering.redhat.com/gerrit/70328
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
Tested-by: Atin Mukherjee <amukherj@redhat.com>
---
xlators/mgmt/glusterd/src/glusterd-handler.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/xlators/mgmt/glusterd/src/glusterd-handler.c b/xlators/mgmt/glusterd/src/glusterd-handler.c
index 9dce8ff..085561b 100644
--- a/xlators/mgmt/glusterd/src/glusterd-handler.c
+++ b/xlators/mgmt/glusterd/src/glusterd-handler.c
@@ -5057,7 +5057,7 @@ glusterd_brick_rpc_notify (struct rpc_clnt *rpc, void *mydata,
}
int
-glusterd_friend_remove_notify (glusterd_peerctx_t *peerctx)
+glusterd_friend_remove_notify (glusterd_peerctx_t *peerctx, int32_t op_errno)
{
int ret = -1;
glusterd_friend_sm_event_t *new_event = NULL;
@@ -5093,7 +5093,7 @@ glusterd_friend_remove_notify (glusterd_peerctx_t *peerctx)
goto out;
}
- glusterd_xfer_cli_probe_resp (req, -1, ENOTCONN, errstr,
+ glusterd_xfer_cli_probe_resp (req, -1, op_errno, errstr,
peerinfo->hostname,
peerinfo->port, dict);
@@ -5120,6 +5120,7 @@ __glusterd_peer_rpc_notify (struct rpc_clnt *rpc, void *mydata,
xlator_t *this = NULL;
glusterd_conf_t *conf = NULL;
int ret = 0;
+ int32_t op_errno = ENOTCONN;
glusterd_peerinfo_t *peerinfo = NULL;
glusterd_peerctx_t *peerctx = NULL;
gf_boolean_t quorum_action = _gf_false;
@@ -5212,6 +5213,7 @@ __glusterd_peer_rpc_notify (struct rpc_clnt *rpc, void *mydata,
}
}
+ op_errno = GF_PROBE_ANOTHER_CLUSTER;
ret = 0;
}
@@ -5226,7 +5228,7 @@ __glusterd_peer_rpc_notify (struct rpc_clnt *rpc, void *mydata,
* fails, and notify cli. Happens only during probe.
*/
if (peerinfo->state.state == GD_FRIEND_STATE_DEFAULT) {
- glusterd_friend_remove_notify (peerctx);
+ glusterd_friend_remove_notify (peerctx, op_errno);
goto out;
}
--
1.7.1