From 1ac3d28d8dde6360550c80a10d8add572937be16 Mon Sep 17 00:00:00 2001 From: Gaurav Kumar Garg Date: Mon, 8 Jun 2015 13:01:44 +0530 Subject: bitrot/glusterd: gluster volume set command for bitrot should not supported Currently gluster volume set bitrot succeeds. gluster volume set command for bitrot is not supported. Gluster should only accept gluster volume bitrot * commands. Change-Id: I5ff4b79f202ad018c76188f19d6311aad0d7c166 BUG: 1229134 Signed-off-by: Gaurav Kumar Garg Reviewed-on: http://review.gluster.org/11118 Tested-by: Gluster Build System Reviewed-by: Atin Mukherjee Tested-by: Atin Mukherjee --- xlators/mgmt/glusterd/src/glusterd-op-sm.c | 53 ++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'xlators/mgmt/glusterd') 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 @@ -442,6 +442,54 @@ glusterd_op_sm_inject_all_acc (uuid_t *txn_id) return ret; } +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 %s' " + "is invalid command. Use 'gluster volume bitrot " + " {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 %s' is invalid command. Use 'gluster " + "volume bitrot 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 %s' is " + "invalid command. Use 'gluster volume bitrot " + " 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 %s' is " + "invalid command. Use 'gluster volume bitrot " + " 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) { @@ -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; -- cgit