From 9bc0cf820ace2df58fc666f4ff4c7c50973b60a3 Mon Sep 17 00:00:00 2001 From: Samikshan Bairagya Date: Mon, 31 Jul 2017 10:51:21 +0530 Subject: glusterd: Add geo-replication session details to get-state output This commit adds support to the get-state CLI to capture details on geo-replication session as obtained in `gluster volume geo-replication status detail` in its output. > Reviewed-on: https://review.gluster.org/17941 > Smoke: Gluster Build System > Reviewed-by: Shubhendu Tripathi > CentOS-regression: Gluster Build System > Reviewed-by: Atin Mukherjee (cherry picked from commit 2e7daeffef05c6100cbcc39f1be62935711db3eb) Fixes: #291 Change-Id: I2fbcba70bfdaf439522637234805545194777ed4 Signed-off-by: Samikshan Bairagya Reviewed-on: https://review.gluster.org/17971 CentOS-regression: Gluster Build System Smoke: Gluster Build System Reviewed-by: Shyamsundar Ranganathan --- libglusterfs/src/Makefile.am | 7 +++++-- libglusterfs/src/common-utils.c | 36 ++++++++++++++++++++++++++++++++++++ libglusterfs/src/common-utils.h | 3 +++ 3 files changed, 44 insertions(+), 2 deletions(-) (limited to 'libglusterfs') diff --git a/libglusterfs/src/Makefile.am b/libglusterfs/src/Makefile.am index 768fe042a10..6c81142b826 100644 --- a/libglusterfs/src/Makefile.am +++ b/libglusterfs/src/Makefile.am @@ -38,9 +38,12 @@ libglusterfs_la_SOURCES = dict.c xlator.c logging.c \ compound-fop-utils.c throttle-tbf.c nodist_libglusterfs_la_SOURCES = y.tab.c graph.lex.c defaults.c -nodist_libglusterfs_la_HEADERS = y.tab.h +nodist_libglusterfs_la_HEADERS = y.tab.h protocol-common.h -BUILT_SOURCES = graph.lex.c defaults.c eventtypes.h +BUILT_SOURCES = graph.lex.c defaults.c eventtypes.h protocol-common.h + +protocol-common.h: $(top_srcdir)/rpc/rpc-lib/src/protocol-common.h + cp $(top_srcdir)/rpc/rpc-lib/src/protocol-common.h . libglusterfs_la_HEADERS = common-utils.h defaults.h default-args.h \ dict.h glusterfs.h hashfn.h timespec.h logging.h xlator.h \ diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index ec1d5c4823c..772f4e05ad7 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -53,6 +53,7 @@ #include "xxhash.h" #include #include "libglusterfs-messages.h" +#include "protocol-common.h" #ifndef AI_ADDRCONFIG #define AI_ADDRCONFIG 0 @@ -4930,3 +4931,38 @@ glusterfs_compute_sha256 (const unsigned char *content, size_t size, return 0; } + +char* +get_struct_variable (int mem_num, gf_gsync_status_t *sts_val) +{ + switch (mem_num) { + case 0: return (sts_val->node); + case 1: return (sts_val->master); + case 2: return (sts_val->brick); + case 3: return (sts_val->slave_user); + case 4: return (sts_val->slave); + case 5: return (sts_val->slave_node); + case 6: return (sts_val->worker_status); + case 7: return (sts_val->crawl_status); + case 8: return (sts_val->last_synced); + case 9: return (sts_val->entry); + case 10: return (sts_val->data); + case 11: return (sts_val->meta); + case 12: return (sts_val->failures); + case 13: return (sts_val->checkpoint_time); + case 14: return (sts_val->checkpoint_completed); + case 15: return (sts_val->checkpoint_completion_time); + case 16: return (sts_val->brick_host_uuid); + case 17: return (sts_val->last_synced_utc); + case 18: return (sts_val->checkpoint_time_utc); + case 19: return (sts_val->checkpoint_completion_time_utc); + case 20: return (sts_val->slavekey); + case 21: return (sts_val->session_slave); + default: + goto out; + } + +out: + return NULL; +} + diff --git a/libglusterfs/src/common-utils.h b/libglusterfs/src/common-utils.h index 022a2a70ff0..e1c5f6680f6 100644 --- a/libglusterfs/src/common-utils.h +++ b/libglusterfs/src/common-utils.h @@ -44,6 +44,7 @@ void trap (void); #include "iatt.h" #include "uuid.h" #include "libglusterfs-messages.h" +#include "protocol-common.h" #define STRINGIFY(val) #val #define TOSTRING(val) STRINGIFY(val) @@ -939,5 +940,7 @@ gf_getgrouplist (const char *user, gid_t group, gid_t **groups); int glusterfs_compute_sha256 (const unsigned char *content, size_t size, char *sha256_hash); +char* +get_struct_variable (int mem_num, gf_gsync_status_t *sts_val); #endif /* _COMMON_UTILS_H */ -- cgit