diff options
author | Rajesh Amaravathi <rajesh@redhat.com> | 2011-12-07 20:51:03 +0530 |
---|---|---|
committer | Vijay Bellur <vijay@gluster.com> | 2012-01-12 01:58:26 -0800 |
commit | 169c73f28dae61236de54889edcaa8236d91da59 (patch) | |
tree | a4d74fc14c9198cbc78633a844480ab6c4ffdda3 /rpc | |
parent | 4e40a7e48757feedc959c7982acf05c73f739a15 (diff) |
cli: volume status enhancement
* Support "gluster volume status (all)" option to display all
volumes' status.
* On option "detail" appended to "gluster volume status *",
amount of storage free, total storage, and backend filesystem
details like inode size, inode count, free inodes, fs type,
device name of each brick is displayed.
* One can also obtain [detailed]status of only one brick.
* Format of the enhanced volume status command is:
"gluster volume status [all|<vol>] [<brick>] [detail]"
* Some generic functions have been added to common-utils:
skipword
get_nth_word
These functions enable parsing and fetching
of words in a sentence.
glusterd_get_brick_root (in glusterd)
These are self explanatory.
Change-Id: I6f40c1e19810f8504cd3b1786207364053d82e28
BUG: 765464
Signed-off-by: Rajesh Amaravathi <rajesh@redhat.com>
Reviewed-on: http://review.gluster.com/777
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amar@gluster.com>
Diffstat (limited to 'rpc')
-rw-r--r-- | rpc/rpc-lib/src/protocol-common.h | 1 | ||||
-rw-r--r-- | rpc/xdr/src/cli1-xdr.c | 11 | ||||
-rw-r--r-- | rpc/xdr/src/cli1-xdr.h | 14 | ||||
-rw-r--r-- | rpc/xdr/src/cli1-xdr.x | 13 |
4 files changed, 39 insertions, 0 deletions
diff --git a/rpc/rpc-lib/src/protocol-common.h b/rpc/rpc-lib/src/protocol-common.h index 9b358f49730..fd7c89aadb8 100644 --- a/rpc/rpc-lib/src/protocol-common.h +++ b/rpc/rpc-lib/src/protocol-common.h @@ -148,6 +148,7 @@ enum gluster_cli_procnum { GLUSTER_CLI_TOP_VOLUME, GLUSTER_CLI_GETWD, GLUSTER_CLI_STATUS_VOLUME, + GLUSTER_CLI_STATUS_ALL, GLUSTER_CLI_MOUNT, GLUSTER_CLI_UMOUNT, GLUSTER_CLI_HEAL_VOLUME, diff --git a/rpc/xdr/src/cli1-xdr.c b/rpc/xdr/src/cli1-xdr.c index b0ac0799a8d..56562ee3d00 100644 --- a/rpc/xdr/src/cli1-xdr.c +++ b/rpc/xdr/src/cli1-xdr.c @@ -177,6 +177,17 @@ xdr_gf1_cli_top_op (XDR *xdrs, gf1_cli_top_op *objp) } bool_t +xdr_gf_cli_status_type (XDR *xdrs, gf_cli_status_type *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t xdr_gf_cli_req (XDR *xdrs, gf_cli_req *objp) { register int32_t *buf; diff --git a/rpc/xdr/src/cli1-xdr.h b/rpc/xdr/src/cli1-xdr.h index 1d0faa996b5..d5593977d97 100644 --- a/rpc/xdr/src/cli1-xdr.h +++ b/rpc/xdr/src/cli1-xdr.h @@ -160,6 +160,18 @@ enum gf1_cli_top_op { }; typedef enum gf1_cli_top_op gf1_cli_top_op; +enum gf_cli_status_type { + GF_CLI_STATUS_NONE = 0x0000, + GF_CLI_STATUS_VOL = 0x0100, + GF_CLI_STATUS_ALL = 0x0200, + GF_CLI_STATUS_BRICK = 0x0400, + GF_CLI_STATUS_DETAIL = 0x0800, + GF_CLI_STATUS_VOL_DETAIL = 0x0900, + GF_CLI_STATUS_ALL_DETAIL = 0x0A00, + GF_CLI_STATUS_BRICK_DETAIL = 0x0C00, +}; +typedef enum gf_cli_status_type gf_cli_status_type; + struct gf_cli_req { struct { u_int dict_len; @@ -298,6 +310,7 @@ extern bool_t xdr_gf1_cli_op_flags (XDR *, gf1_cli_op_flags*); extern bool_t xdr_gf1_cli_gsync_set (XDR *, gf1_cli_gsync_set*); extern bool_t xdr_gf1_cli_stats_op (XDR *, gf1_cli_stats_op*); extern bool_t xdr_gf1_cli_top_op (XDR *, gf1_cli_top_op*); +extern bool_t xdr_gf_cli_status_type (XDR *, gf_cli_status_type*); extern bool_t xdr_gf_cli_req (XDR *, gf_cli_req*); extern bool_t xdr_gf_cli_rsp (XDR *, gf_cli_rsp*); extern bool_t xdr_gf1_cli_probe_req (XDR *, gf1_cli_probe_req*); @@ -329,6 +342,7 @@ extern bool_t xdr_gf1_cli_op_flags (); extern bool_t xdr_gf1_cli_gsync_set (); extern bool_t xdr_gf1_cli_stats_op (); extern bool_t xdr_gf1_cli_top_op (); +extern bool_t xdr_gf_cli_status_type (); extern bool_t xdr_gf_cli_req (); extern bool_t xdr_gf_cli_rsp (); extern bool_t xdr_gf1_cli_probe_req (); diff --git a/rpc/xdr/src/cli1-xdr.x b/rpc/xdr/src/cli1-xdr.x index 129f5f971ab..5697310ad7d 100644 --- a/rpc/xdr/src/cli1-xdr.x +++ b/rpc/xdr/src/cli1-xdr.x @@ -103,6 +103,19 @@ enum gf1_cli_top_op { GF_CLI_TOP_WRITE_PERF }; +/* The unconventional hex numbers help us perform + bit-wise operations which reduces complexity */ +enum gf_cli_status_type { + GF_CLI_STATUS_NONE = 0x0000, + GF_CLI_STATUS_VOL = 0x0100, + GF_CLI_STATUS_ALL = 0x0200, + GF_CLI_STATUS_BRICK = 0x0400, + GF_CLI_STATUS_DETAIL = 0x0800, + GF_CLI_STATUS_VOL_DETAIL = 0x0900, + GF_CLI_STATUS_ALL_DETAIL = 0x0A00, + GF_CLI_STATUS_BRICK_DETAIL = 0x0C00 +}; + struct gf_cli_req { opaque dict<>; } ; |