From 005578793abb9a37a81591e107b442acfc2f3ea4 Mon Sep 17 00:00:00 2001 From: Samikshan Bairagya 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 >NetBSD-regression: NetBSD Build System >CentOS-regression: Gluster Build System >Reviewed-by: Atin Mukherjee Change-Id: I53fe180e71d41d56b129254b93bb74014a2cdb43 BUG: 1488018 Signed-off-by: Samikshan Bairagya Reviewed-on: https://code.engineering.redhat.com/gerrit/117174 Tested-by: Atin Mukherjee Reviewed-by: Atin Mukherjee --- 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