From 005578793abb9a37a81591e107b442acfc2f3ea4 Mon Sep 17 00:00:00 2001
From: Samikshan Bairagya <samikshan@gmail.com>
Date: Mon, 10 Apr 2017 18:46:42 +0530
Subject: [PATCH 613/616] glusterd: Add brick capacity details to get-state CLI
output
>Reviewed-on: https://review.gluster.org/17029
>Smoke: Gluster Build System <jenkins@build.gluster.org>
>NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
>CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
>Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
Change-Id: I53fe180e71d41d56b129254b93bb74014a2cdb43
BUG: 1488018
Signed-off-by: Samikshan Bairagya <samikshan@gmail.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/117174
Tested-by: Atin Mukherjee <amukherj@redhat.com>
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
---
xlators/mgmt/glusterd/src/glusterd-handler.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/xlators/mgmt/glusterd/src/glusterd-handler.c b/xlators/mgmt/glusterd/src/glusterd-handler.c
index 8a781f8..7e24c9b 100644
--- a/xlators/mgmt/glusterd/src/glusterd-handler.c
+++ b/xlators/mgmt/glusterd/src/glusterd-handler.c
@@ -5270,6 +5270,7 @@ glusterd_get_state (rpcsvc_request_t *req, dict_t *dict)
glusterd_brickinfo_t *brickinfo = NULL;
glusterd_snap_t *snapinfo = NULL;
xlator_t *this = NULL;
+ struct statvfs brickstat = {0};
char *odir = NULL;
char *filename = NULL;
char *ofilepath = NULL;
@@ -5280,6 +5281,8 @@ glusterd_get_state (rpcsvc_request_t *req, dict_t *dict)
char timestamp[16] = {0,};
int start_index = 0;
uint32_t get_state_cmd = 0;
+ uint64_t memtotal = 0;
+ uint64_t memfree = 0;
char *vol_type_str = NULL;
char *hot_tier_type_str = NULL;
@@ -5522,6 +5525,22 @@ glusterd_get_state (rpcsvc_request_t *req, dict_t *dict)
"Hot" : "Cold");
}
+ ret = sys_statvfs (brickinfo->path, &brickstat);
+ if (ret) {
+ gf_msg (this->name, GF_LOG_ERROR, errno,
+ GD_MSG_FILE_OP_FAILED,
+ "statfs error: %s ", strerror (errno));
+ goto out;
+ }
+
+ memfree = brickstat.f_bfree * brickstat.f_bsize;
+ memtotal = brickstat.f_blocks * brickstat.f_bsize;
+
+ fprintf (fp, "Volume%d.Brick%d.spacefree: %"PRIu64"Bytes\n",
+ count_bkp, count, memfree);
+ fprintf (fp, "Volume%d.Brick%d.spacetotal: %"PRIu64"Bytes\n",
+ count_bkp, count, memtotal);
+
if (get_state_cmd != GF_CLI_GET_STATE_DETAIL)
continue;
--
1.8.3.1