Tier: displaying status only one the nodes running tierd

When tier status is given on a cluster where one node doesn't
have tierd running, the status is shown as not started.

The status of the node without tierd should not be displayed.

This patch will skip if the current node if the status is not
started

Change-Id: Ibeb39f13133f94a5869b020c5ccd9bd6992323f1
BUG: 1315666
Signed-off-by: hari gowtham <hgowtham@redhat.com>
Reviewed-on: http://review.gluster.org/13647
Smoke: Gluster Build System <jenkins@build.gluster.com>
Tested-by: hari gowtham <hari.gowtham005@gmail.com>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Dan Lambright <dlambrig@redhat.com>
This commit is contained in:
hari gowtham 2016-03-08 17:22:35 +05:30 committed by Dan Lambright
parent a007fdf549
commit 537822d7eb

View File

@ -1699,6 +1699,20 @@ gf_cli_print_tier_status (dict_t *dict, enum gf_task_types task_type)
promoted = 0;
demoted = 0;
/* Check if status is NOT_STARTED, and continue early */
memset (key, 0, 256);
snprintf (key, 256, "status-%d", i);
ret = dict_get_int32 (dict, key, (int32_t *)&status_rcd);
if (ret) {
gf_log ("cli", GF_LOG_TRACE, "count: %d, %d,"
"failed to get status", count, i);
goto out;
}
if (GF_DEFRAG_STATUS_NOT_STARTED == status_rcd)
continue;
memset (key, 0, 256);
snprintf (key, 256, "node-name-%d", i);
ret = dict_get_str (dict, key, &node_name);
@ -1719,13 +1733,6 @@ gf_cli_print_tier_status (dict_t *dict, enum gf_task_types task_type)
gf_log ("cli", GF_LOG_TRACE,
"failed to get demoted count");
memset (key, 0, 256);
snprintf (key, 256, "status-%d", i);
ret = dict_get_int32 (dict, key, (int32_t *)&status_rcd);
if (ret)
gf_log ("cli", GF_LOG_TRACE,
"failed to get status");
/* Check for array bound */
if (status_rcd >= GF_DEFRAG_STATUS_MAX)
status_rcd = GF_DEFRAG_STATUS_MAX;