diff options
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-handler.c | 2 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-op-sm.c | 29 |
2 files changed, 30 insertions, 1 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-handler.c b/xlators/mgmt/glusterd/src/glusterd-handler.c index a9c79ce2ab1..99680b74ffe 100644 --- a/xlators/mgmt/glusterd/src/glusterd-handler.c +++ b/xlators/mgmt/glusterd/src/glusterd-handler.c @@ -376,6 +376,8 @@ glusterd_add_volume_detail_to_dict (glusterd_volinfo_t *volinfo, void _build_option_key (dict_t *d, char *k, data_t *v, void *tmp) { + if (strcmp (k, GLUSTERD_GLOBAL_OPT_VERSION) == 0) + return; snprintf (reconfig_key, 256, "volume%d.option.%s", count, k); ret = dict_set_str (volumes, reconfig_key, v->data); if (0 == ret) diff --git a/xlators/mgmt/glusterd/src/glusterd-op-sm.c b/xlators/mgmt/glusterd/src/glusterd-op-sm.c index a46b470f0a1..b21ecf72fde 100644 --- a/xlators/mgmt/glusterd/src/glusterd-op-sm.c +++ b/xlators/mgmt/glusterd/src/glusterd-op-sm.c @@ -2253,6 +2253,31 @@ out: } gf_boolean_t +glusterd_is_get_op (xlator_t *this, glusterd_op_t op, dict_t *dict) +{ + char *key = NULL; + char *volname = NULL; + int ret = 0; + + if (op == GD_OP_STATUS_VOLUME) + return _gf_true; + + if ((op == GD_OP_SET_VOLUME)) { + //check for set volume help + ret = dict_get_str (dict, "volname", &volname); + if (volname && + ((strcmp (volname, "help") == 0) || + (strcmp (volname, "help-xml") == 0))) { + ret = dict_get_str (dict, "key1", &key); + if (ret < 0) + return _gf_true; + } + } + + return _gf_false; +} + +gf_boolean_t glusterd_is_op_quorum_validation_required (xlator_t *this, glusterd_op_t op, dict_t *dict) { @@ -2261,7 +2286,7 @@ glusterd_is_op_quorum_validation_required (xlator_t *this, glusterd_op_t op, char *key_fixed = NULL; int ret = -1; - if (op == GD_OP_STATUS_VOLUME) { + if (glusterd_is_get_op (this, op, dict)) { required = _gf_false; goto out; } @@ -2271,6 +2296,8 @@ glusterd_is_op_quorum_validation_required (xlator_t *this, glusterd_op_t op, ret = dict_get_str (dict, "key1", &key); else if (op == GD_OP_RESET_VOLUME) ret = dict_get_str (dict, "key", &key); + if (ret) + goto out; ret = glusterd_check_option_exists (key, &key_fixed); if (ret <= 0) goto out; |