diff options
author | Pranith Kumar K <pkarampu@redhat.com> | 2012-09-28 15:56:38 +0530 |
---|---|---|
committer | Pranith Kumar K <pkarampu@redhat.com> | 2012-09-28 22:49:03 +0530 |
commit | 3b291d14ec7049e324a75ed48c5ed467da8ed9d1 (patch) | |
tree | d0f2a27372433c24dd90ac5db802033b123c1bfa /xlators/mgmt | |
parent | 13cfed388a19dd70984197fb14330d0277ba91e7 (diff) |
mgmt/glusterd: volume set help should not be affected by quorum
Change-Id: I47e96be696891f802e9e52dd8e177573e666fd68
BUG: 861289
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Diffstat (limited to 'xlators/mgmt')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-op-sm.c | 29 |
1 files changed, 28 insertions, 1 deletions
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; |