From 48b8186bdc2f5e45b58aadf849b2bd60c9a77330 Mon Sep 17 00:00:00 2001 From: Dawit Alemu Date: Mon, 30 Dec 2013 22:59:39 -0500 Subject: cli: Add options to the CLI that let the user control the reset of stats "volume profile info" automatically clears incremental stats. There isn't a command to: - fetch stats without clearing incremental stats and - clear cumulative and incremental stats This change introduces two arguments (i.e. peek and clear). 'clear' will wipe both incremental and cumulative stats. 'peek' fetches stats without wiping incremental stats. 'volume profile info peek' - fetches incremental and cumulative stats without wiping incremental stats 'volume profile info incremental peek' - fetches incremental stats without wiping incremental stats 'volume profile info clear' - clears both incremental and cumultiave stats Change-Id: I91834515ad672eca5f882809941147d7d997c4c9 BUG: 1047416 Signed-off-by: Dawit Alemu Reviewed-on: http://review.gluster.org/6620 Tested-by: Gluster Build System Reviewed-by: Kaushal M Reviewed-by: Vijay Bellur --- rpc/xdr/src/cli1-xdr.c | 11 +++++++++++ rpc/xdr/src/cli1-xdr.h | 15 ++++++++++++--- rpc/xdr/src/cli1-xdr.x | 8 ++++++++ 3 files changed, 31 insertions(+), 3 deletions(-) (limited to 'rpc') diff --git a/rpc/xdr/src/cli1-xdr.c b/rpc/xdr/src/cli1-xdr.c index 7d85b43c1..bf58e9904 100644 --- a/rpc/xdr/src/cli1-xdr.c +++ b/rpc/xdr/src/cli1-xdr.c @@ -156,6 +156,17 @@ xdr_gf1_cli_stats_op (XDR *xdrs, gf1_cli_stats_op *objp) return TRUE; } +bool_t +xdr_gf1_cli_info_op (XDR *xdrs, gf1_cli_info_op *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + bool_t xdr_gf1_cli_top_op (XDR *xdrs, gf1_cli_top_op *objp) { diff --git a/rpc/xdr/src/cli1-xdr.h b/rpc/xdr/src/cli1-xdr.h index 815384e80..11297cc25 100644 --- a/rpc/xdr/src/cli1-xdr.h +++ b/rpc/xdr/src/cli1-xdr.h @@ -140,12 +140,19 @@ enum gf1_cli_stats_op { GF_CLI_STATS_START = 1, GF_CLI_STATS_STOP = 2, GF_CLI_STATS_INFO = 3, - GF_CLI_STATS_INFO_INCREMENTAL = 4, - GF_CLI_STATS_INFO_CUMULATIVE = 5, - GF_CLI_STATS_TOP = 6 + GF_CLI_STATS_TOP = 4, }; typedef enum gf1_cli_stats_op gf1_cli_stats_op; +enum gf1_cli_info_op { + GF_CLI_INFO_NONE = 0, + GF_CLI_INFO_ALL = 1, + GF_CLI_INFO_INCREMENTAL = 2, + GF_CLI_INFO_CUMULATIVE = 3, + GF_CLI_INFO_CLEAR = 4, +}; +typedef enum gf1_cli_info_op gf1_cli_info_op; + enum gf1_cli_top_op { GF_CLI_TOP_NONE = 0, GF_CLI_TOP_OPEN = 0 + 1, @@ -286,6 +293,7 @@ extern bool_t xdr_gf1_cli_sync_volume (XDR *, gf1_cli_sync_volume*); 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_info_op (XDR *, gf1_cli_info_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*); @@ -314,6 +322,7 @@ extern bool_t xdr_gf1_cli_sync_volume (); 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_info_op (); extern bool_t xdr_gf1_cli_top_op (); extern bool_t xdr_gf_cli_status_type (); extern bool_t xdr_gf_cli_req (); diff --git a/rpc/xdr/src/cli1-xdr.x b/rpc/xdr/src/cli1-xdr.x index 46f4581ee..a283006b0 100644 --- a/rpc/xdr/src/cli1-xdr.x +++ b/rpc/xdr/src/cli1-xdr.x @@ -97,6 +97,14 @@ enum gf1_cli_stats_op { GF_CLI_STATS_TOP = 4 }; +enum gf1_cli_info_op { + GF_CLI_INFO_NONE = 0, + GF_CLI_INFO_ALL = 1, + GF_CLI_INFO_INCREMENTAL = 2, + GF_CLI_INFO_CUMULATIVE = 3, + GF_CLI_INFO_CLEAR = 4 +}; + enum gf1_cli_top_op { GF_CLI_TOP_NONE = 0, GF_CLI_TOP_OPEN, -- cgit