summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt
diff options
context:
space:
mode:
authorGaurav Kumar Garg <ggarg@redhat.com>2015-06-08 13:01:44 +0530
committerAtin Mukherjee <amukherj@redhat.com>2015-06-17 23:53:02 -0700
commita99d935a876851efa25fad5f48889fd9d2a59f68 (patch)
tree6bc4c1a66f52bd088acb119ed2adcad5e454b471 /xlators/mgmt
parent7255e567959ca6f0c211afff00e97a911b471b05 (diff)
bitrot/glusterd: gluster volume set command for bitrot should not supported
Currently gluster volume set <VOLNAME> bitrot succeeds. gluster volume set command for bitrot is not supported. Gluster should only accept gluster volume bitrot <VOLNAME> * commands. Change-Id: I5ff4b79f202ad018c76188f19d6311aad0d7c166 BUG: 1232589 Signed-off-by: Gaurav Kumar Garg <ggarg@redhat.com> Reviewed-on: http://review.gluster.org/11118 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Atin Mukherjee <amukherj@redhat.com> Tested-by: Atin Mukherjee <amukherj@redhat.com> (cherry picked from commit 1ac3d28d8dde6360550c80a10d8add572937be16) Reviewed-on: http://review.gluster.org/11265
Diffstat (limited to 'xlators/mgmt')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-op-sm.c53
1 files changed, 53 insertions, 0 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-op-sm.c b/xlators/mgmt/glusterd/src/glusterd-op-sm.c
index 61c9fad97d6..06d9923ea14 100644
--- a/xlators/mgmt/glusterd/src/glusterd-op-sm.c
+++ b/xlators/mgmt/glusterd/src/glusterd-op-sm.c
@@ -447,6 +447,54 @@ glusterd_op_sm_inject_all_acc (uuid_t *txn_id)
}
static int
+glusterd_check_bitrot_cmd (char *key, char *value, char *errstr, size_t size)
+{
+ int ret = -1;
+
+ if ((!strncmp (key, "bitrot", strlen ("bitrot"))) ||
+ (!strncmp (key, "features.bitrot", strlen ("features.bitrot")))) {
+ snprintf (errstr, size, " 'gluster volume set <VOLNAME> %s' "
+ "is invalid command. Use 'gluster volume bitrot "
+ "<VOLNAME> {enable|disable}' instead.", key);
+ ret = -1;
+ goto out;
+ } else if ((!strncmp (key, "scrub-freq", strlen ("scrub-freq"))) ||
+ (!strncmp (key, "features.scrub-freq",
+ strlen ("features.scrub-freq")))) {
+ snprintf (errstr, size, " 'gluster volume "
+ "set <VOLNAME> %s' is invalid command. Use 'gluster "
+ "volume bitrot <VOLNAME> scrub-frequency"
+ " {hourly|daily|weekly|biweekly|monthly}' instead.",
+ key);
+ ret = -1;
+ goto out;
+ } else if ((!strncmp (key, "scrub", strlen ("scrub"))) ||
+ (!strncmp (key, "features.scrub",
+ strlen ("features.scrub")))) {
+ snprintf (errstr, size, " 'gluster volume set <VOLNAME> %s' is "
+ "invalid command. Use 'gluster volume bitrot "
+ "<VOLNAME> scrub {pause|resume}' instead.", key);
+ ret = -1;
+ goto out;
+ } else if ((!strncmp (key, "scrub-throttle",
+ strlen ("scrub-throttle"))) ||
+ (!strncmp (key, "features.scrub-throttle",
+ strlen ("features.scrub-throttle")))) {
+ snprintf (errstr, size, " 'gluster volume set <VOLNAME> %s' is "
+ "invalid command. Use 'gluster volume bitrot "
+ "<VOLNAME> scrub-throttle {lazy|normal|aggressive}' "
+ "instead.",
+ key);
+ ret = -1;
+ goto out;
+ }
+
+ ret = 0;
+out:
+ return ret;
+}
+
+static int
glusterd_check_quota_cmd (char *key, char *value, char *errstr, size_t size)
{
int ret = -1;
@@ -971,6 +1019,11 @@ glusterd_op_stage_set_volume (dict_t *dict, char **op_errstr)
}
}
+ ret = glusterd_check_bitrot_cmd (key, value, errstr,
+ sizeof (errstr));
+ if (ret)
+ goto out;
+
ret = glusterd_check_quota_cmd (key, value, errstr, sizeof (errstr));
if (ret)
goto out;