diff options
author | Pranith Kumar K <pranithk@gluster.com> | 2010-09-21 02:02:48 +0000 |
---|---|---|
committer | Vijay Bellur <vijay@dev.gluster.com> | 2010-09-21 03:24:06 -0700 |
commit | 0484b5768da303998549e8153d08899e58edab68 (patch) | |
tree | 7b4e34221e9a554da5066243f4a83a7a4a811753 | |
parent | ae376259304b654206c50b095dabf172fc355438 (diff) |
cli, mgmt/glusterd: send errno in case of Peer reject
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Signed-off-by: Vijay Bellur <vijay@dev.gluster.com>
BUG: 1653 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1653
-rw-r--r-- | cli/src/cli3_1-cops.c | 5 | ||||
-rw-r--r-- | rpc/rpc-lib/src/protocol-common.h | 3 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-handler.c | 5 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-sm.c | 4 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd.h | 2 |
5 files changed, 14 insertions, 5 deletions
diff --git a/cli/src/cli3_1-cops.c b/cli/src/cli3_1-cops.c index 832618c2446..53b80c55667 100644 --- a/cli/src/cli3_1-cops.c +++ b/cli/src/cli3_1-cops.c @@ -114,6 +114,11 @@ gf_cli3_1_probe_cbk (struct rpc_req *req, struct iovec *iov, cli_out ("%s is already part of " "another cluster", rsp.hostname); break; + case GF_PROBE_VOLUME_CONFLICT: + cli_out ("Atleast one volume on %s conflicts " + "with existing volumes in the " + "cluster", rsp.hostname); + break; default: cli_out ("Probe returned with unknown errno %d", rsp.op_errno); diff --git a/rpc/rpc-lib/src/protocol-common.h b/rpc/rpc-lib/src/protocol-common.h index 632c1d42d97..b46f3b9883f 100644 --- a/rpc/rpc-lib/src/protocol-common.h +++ b/rpc/rpc-lib/src/protocol-common.h @@ -158,7 +158,8 @@ enum gf_probe_resp { GF_PROBE_SUCCESS, GF_PROBE_LOCALHOST, GF_PROBE_FRIEND, - GF_PROBE_ANOTHER_CLUSTER + GF_PROBE_ANOTHER_CLUSTER, + GF_PROBE_VOLUME_CONFLICT }; enum gf_cbk_procnum { diff --git a/xlators/mgmt/glusterd/src/glusterd-handler.c b/xlators/mgmt/glusterd/src/glusterd-handler.c index 112ca296bb2..bb297b0cc51 100644 --- a/xlators/mgmt/glusterd/src/glusterd-handler.c +++ b/xlators/mgmt/glusterd/src/glusterd-handler.c @@ -2869,7 +2869,7 @@ glusterd_xfer_friend_remove_resp (rpcsvc_request_t *req, char *hostname, int por int glusterd_xfer_friend_add_resp (rpcsvc_request_t *req, char *hostname, int port, - int32_t op_ret) + int32_t op_ret, int32_t op_errno) { gd1_mgmt_friend_rsp rsp = {{0}, }; int32_t ret = -1; @@ -2878,13 +2878,14 @@ glusterd_xfer_friend_add_resp (rpcsvc_request_t *req, char *hostname, int port, GF_ASSERT (hostname); - rsp.op_ret = op_ret; this = THIS; GF_ASSERT (this); conf = this->private; uuid_copy (rsp.uuid, conf->uuid); + rsp.op_ret = op_ret; + rsp.op_errno = op_errno; rsp.hostname = gf_strdup (hostname); rsp.port = port; diff --git a/xlators/mgmt/glusterd/src/glusterd-sm.c b/xlators/mgmt/glusterd/src/glusterd-sm.c index 025fee7755a..c5e1800cd82 100644 --- a/xlators/mgmt/glusterd/src/glusterd-sm.c +++ b/xlators/mgmt/glusterd/src/glusterd-sm.c @@ -352,6 +352,7 @@ glusterd_ac_handle_friend_add_req (glusterd_friend_sm_event_t *event, void *ctx) glusterd_friend_sm_event_type_t event_type = GD_FRIEND_EVENT_NONE; int status = 0; int32_t op_ret = -1; + int32_t op_errno = 0; char remote_hostname[UNIX_PATH_MAX + 1] = {0,}; GF_ASSERT (ctx); @@ -372,6 +373,7 @@ glusterd_ac_handle_friend_add_req (glusterd_friend_sm_event_t *event, void *ctx) } else { event_type = GD_FRIEND_EVENT_LOCAL_RJT; + op_errno = GF_PROBE_VOLUME_CONFLICT; op_ret = -1; } @@ -406,7 +408,7 @@ glusterd_ac_handle_friend_add_req (glusterd_friend_sm_event_t *event, void *ctx) glusterd_friend_sm_inject_event (new_event); ret = glusterd_xfer_friend_add_resp (ev_ctx->req, ev_ctx->hostname, - ev_ctx->port, op_ret); + ev_ctx->port, op_ret, op_errno); out: gf_log ("", GF_LOG_DEBUG, "Returning with %d", ret); diff --git a/xlators/mgmt/glusterd/src/glusterd.h b/xlators/mgmt/glusterd/src/glusterd.h index 48d78bc339a..b9890760f71 100644 --- a/xlators/mgmt/glusterd/src/glusterd.h +++ b/xlators/mgmt/glusterd/src/glusterd.h @@ -226,7 +226,7 @@ glusterd_probe_begin (rpcsvc_request_t *req, const char *hoststr, int port); int glusterd_xfer_friend_add_resp (rpcsvc_request_t *req, char *hostname, - int port, int32_t op_ret); + int port, int32_t op_ret, int32_t op_errno); int glusterd_friend_find (uuid_t uuid, char *hostname, |