From 4b813b3d14476a5cf6a3a54c32c2939a31fe9ba9 Mon Sep 17 00:00:00 2001 From: Kaushik BV Date: Sun, 17 Apr 2011 10:46:06 +0000 Subject: mgmt/glusterd: unify the geo-replication status rpc messages. the intelligence of determining the type of status command is now at glusterd, rather then explicitly setting it while parsing at cli. Signed-off-by: Kaushik BV Signed-off-by: Anand Avati BUG: 2536 (gsync service introspection) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2536 --- cli/src/cli-cmd-parser.c | 16 +--------- rpc/xdr/src/cli1-xdr.h | 3 -- xlators/mgmt/glusterd/src/glusterd-op-sm.c | 49 ++++++------------------------ 3 files changed, 11 insertions(+), 57 deletions(-) diff --git a/cli/src/cli-cmd-parser.c b/cli/src/cli-cmd-parser.c index 1449d62fa..70a632751 100644 --- a/cli/src/cli-cmd-parser.c +++ b/cli/src/cli-cmd-parser.c @@ -1127,7 +1127,6 @@ cli_cmd_gsync_set_parse (const char **words, int wordcount, dict_t **options) char *append_str = NULL; size_t append_len = 0; int i = 0; - int32_t status_type = 0; GF_ASSERT (words); GF_ASSERT (options); @@ -1145,18 +1144,7 @@ cli_cmd_gsync_set_parse (const char **words, int wordcount, dict_t **options) if ((strcmp (words[2], "status")) == 0) { type = GF_GSYNC_OPTION_TYPE_STATUS; - if (wordcount == 3) - status_type = GF_GSYNC_OPTION_TYPE_STATUS_ALL; - else if (wordcount == 4) - status_type = GF_GSYNC_OPTION_TYPE_STATUS_MASTER; - else if (wordcount == 5) - status_type = GF_GSYNC_OPTION_TYPE_STATUS_MST_SLV; - else - goto out; - - - ret = dict_set_int32 (dict, "status-type", status_type); - if (ret < 0) + if (wordcount > 5) goto out; if (wordcount < 4) @@ -1171,8 +1159,6 @@ cli_cmd_gsync_set_parse (const char **words, int wordcount, dict_t **options) if (ret < 0) goto out; - - goto set_type; } diff --git a/rpc/xdr/src/cli1-xdr.h b/rpc/xdr/src/cli1-xdr.h index 2002a3ae4..0a4b4ebd5 100644 --- a/rpc/xdr/src/cli1-xdr.h +++ b/rpc/xdr/src/cli1-xdr.h @@ -93,9 +93,6 @@ enum gf1_cli_gsync_set { GF_GSYNC_OPTION_TYPE_CONFIG_GET = 6, GF_GSYNC_OPTION_TYPE_CONFIG_GET_ALL = 7, GF_GSYNC_OPTION_TYPE_STATUS = 8, - GF_GSYNC_OPTION_TYPE_STATUS_ALL = 9, - GF_GSYNC_OPTION_TYPE_STATUS_MASTER = 10, - GF_GSYNC_OPTION_TYPE_STATUS_MST_SLV = 11 }; typedef enum gf1_cli_gsync_set gf1_cli_gsync_set; diff --git a/xlators/mgmt/glusterd/src/glusterd-op-sm.c b/xlators/mgmt/glusterd/src/glusterd-op-sm.c index ea63a98b8..2f5dbdc15 100644 --- a/xlators/mgmt/glusterd/src/glusterd-op-sm.c +++ b/xlators/mgmt/glusterd/src/glusterd-op-sm.c @@ -2426,8 +2426,6 @@ out: static int glusterd_verify_gsync_status_opts (dict_t *dict, char **op_errstr) { - int status_type = 0; - char *master = NULL; char *slave = NULL; char *volname = NULL; char errmsg[PATH_MAX] = {0, }; @@ -2435,23 +2433,9 @@ glusterd_verify_gsync_status_opts (dict_t *dict, char **op_errstr) glusterd_volinfo_t *volinfo = NULL; int ret = 0; - - ret = dict_get_int32 (dict, "status-type", &status_type); - if (ret) - goto out; - - if (status_type == GF_GSYNC_OPTION_TYPE_STATUS_ALL) - goto out; - - ret = dict_get_str (dict, "master", &master); - if (ret < 0) - goto out; - - volname = volname_from_master (master); - if (volname == NULL) { - gf_log ("", GF_LOG_WARNING, "volname couldn't be found"); - *op_errstr = gf_strdup ("volname not found"); - ret = -1; + ret = dict_get_str (dict, "master", &volname); + if (ret < 0) { + ret = 0; goto out; } @@ -2466,23 +2450,13 @@ glusterd_verify_gsync_status_opts (dict_t *dict, char **op_errstr) goto out; } - - if (status_type == GF_GSYNC_OPTION_TYPE_STATUS_MASTER) - goto out; - - if (status_type != GF_GSYNC_OPTION_TYPE_STATUS_MST_SLV) - goto out; - ret = dict_get_str (dict, "slave", &slave); - if (ret < 0) + if (ret < 0) { + ret = 0; goto out; - - ret = glusterd_op_verify_gsync_running (volinfo, master, - slave, op_errstr); + } out: - if (volname) - GF_FREE (volname); gf_log ("", GF_LOG_DEBUG, "Returning %d", ret); return ret; @@ -4665,7 +4639,6 @@ out: static int glusterd_get_gsync_status (dict_t *dict, char **op_errstr, dict_t *rsp_dict) { - int status_type = 0; char *master = NULL; char *slave = NULL; char *volname = NULL; @@ -4675,11 +4648,8 @@ glusterd_get_gsync_status (dict_t *dict, char **op_errstr, dict_t *rsp_dict) int ret = 0; - ret = dict_get_int32 (dict, "status-type", &status_type); - if (ret) - goto out; - - if (status_type == GF_GSYNC_OPTION_TYPE_STATUS_ALL) { + ret = dict_get_str (dict, "master", &volname); + if (ret < 0){ ret = glusterd_get_gsync_status_all (rsp_dict); goto out; } @@ -4708,7 +4678,8 @@ glusterd_get_gsync_status (dict_t *dict, char **op_errstr, dict_t *rsp_dict) } - if (status_type == GF_GSYNC_OPTION_TYPE_STATUS_MASTER) { + ret = dict_get_str (dict, "slave", &slave); + if (ret < 0) { ret = glusterd_get_gsync_status_mst (volinfo, rsp_dict); goto out; } -- cgit