From 7ef5e08040ef11ff93f44ad3a394f6ea18b2e42b Mon Sep 17 00:00:00 2001
From: Atin Mukherjee <amukherj@redhat.com>
Date: Mon, 24 Jul 2017 19:47:07 +0530
Subject: [PATCH 609/616] glusterd: highlight arbiter brick in get-state
>Fixes: #278
>Change-Id: I1af5255127457a70e6362a2c20c53ee533e27c29
>Signed-off-by: Atin Mukherjee <amukherj@redhat.com>
>Reviewed-on: https://review.gluster.org/17864
>Reviewed-by: Ravishankar N <ravishankar@redhat.com>
>Reviewed-by: Samikshan Bairagya <samikshan@gmail.com>
>Reviewed-by: Shubhendu Tripathi <shtripat@redhat.com>
>Smoke: Gluster Build System <jenkins@build.gluster.org>
>CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Bug: 1475333
Change-Id: I1af5255127457a70e6362a2c20c53ee533e27c29
Signed-off-by: Atin Mukherjee <amukherj@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/117170
---
xlators/mgmt/glusterd/src/glusterd-handler.c | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
diff --git a/xlators/mgmt/glusterd/src/glusterd-handler.c b/xlators/mgmt/glusterd/src/glusterd-handler.c
index c97d87d..bd17cd4 100644
--- a/xlators/mgmt/glusterd/src/glusterd-handler.c
+++ b/xlators/mgmt/glusterd/src/glusterd-handler.c
@@ -5104,6 +5104,7 @@ glusterd_get_state (rpcsvc_request_t *req, dict_t *dict)
int odirlen = 0;
time_t now = 0;
char timestamp[16] = {0,};
+ int start_index = 0;
char *vol_type_str = NULL;
char *hot_tier_type_str = NULL;
@@ -5296,7 +5297,30 @@ glusterd_get_state (rpcsvc_request_t *req, dict_t *dict)
brickinfo->path);
fprintf (fp, "Volume%d.Brick%d.hostname: %s\n",
count_bkp, count, brickinfo->hostname);
-
+ /* Determine which one is the arbiter brick */
+ if (volinfo->arbiter_count == 1) {
+ if (volinfo->type == GF_CLUSTER_TYPE_TIER) {
+ if (volinfo->tier_info.cold_replica_count != 1) {
+ start_index =
+ volinfo->tier_info.hot_brick_count + 1;
+ if (count >= start_index &&
+ ((count - start_index + 1) %
+ volinfo->tier_info.cold_replica_count == 0)) {
+ fprintf (fp, "Volume%d.Brick%d."
+ "is_arbiter: 1\n",
+ count_bkp,
+ count);
+ }
+ }
+ } else {
+ if (count %
+ volinfo->replica_count == 0) {
+ fprintf (fp, "Volume%d.Brick%d."
+ "is_arbiter: 1\n",
+ count_bkp, count);
+ }
+ }
+ }
/* Add following information only for bricks
* local to current node */
if (gf_uuid_compare (brickinfo->uuid, MY_UUID))
--
1.8.3.1