summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt/glusterd/src/glusterd-op-sm.c
diff options
context:
space:
mode:
authorGaurav Kumar Garg <ggarg@redhat.com>2015-06-08 13:01:44 +0530
committerVenky Shankar <vshankar@redhat.com>2015-06-16 00:39:19 -0700
commit1ac3d28d8dde6360550c80a10d8add572937be16 (patch)
tree0337d39c11e9218f668ee7ecedfbe5731abed1bd /xlators/mgmt/glusterd/src/glusterd-op-sm.c
parent476d4070dbdb9d73b36bd04f3eb3d6eda84abe73 (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: 1229134 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>
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-op-sm.c')
-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 56887e35323..335f1a82083 100644
--- a/xlators/mgmt/glusterd/src/glusterd-op-sm.c
+++ b/xlators/mgmt/glusterd/src/glusterd-op-sm.c
@@ -443,6 +443,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;
@@ -967,6 +1015,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;