diff options
author | Mohammed Rafi KC <rkavunga@redhat.com> | 2015-05-13 20:33:45 +0530 |
---|---|---|
committer | Kaushal M <kaushal@redhat.com> | 2015-05-28 07:01:20 -0700 |
commit | 3cb713f2aec3c2191cf8fd2df830b92bf3ad92d4 (patch) | |
tree | 8e8920e85d3a261d9ee5bef4fa3c1c2e91424a41 /xlators/mgmt/glusterd/src/glusterd-brick-ops.c | |
parent | f1fb71bbf677be40b7bab997221f832c7fa7527a (diff) |
tier: Do not allow detach-tier commands on a non-tiered volume
Change-Id: Ic92d25db68e40ef4a4388ef42affd1b3ee5a7ec6
BUG: 1221270
Signed-off-by: Mohammed Rafi KC <rkavunga@redhat.com>
Reviewed-on: http://review.gluster.org/10773
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
Reviewed-by: Kaushal M <kaushal@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Tested-by: NetBSD Build System
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-brick-ops.c')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-brick-ops.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c index f2e7d3a9d3e..0af86f56854 100644 --- a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c +++ b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c @@ -1659,6 +1659,14 @@ glusterd_op_stage_remove_brick (dict_t *dict, char **op_errstr) goto out; case GF_OP_CMD_DETACH_START: + if (volinfo->type != GF_CLUSTER_TYPE_TIER) { + snprintf (msg, sizeof(msg), "volume %s is not a tier " + "volume", volinfo->volname); + errstr = gf_strdup (msg); + gf_log (this->name, GF_LOG_ERROR, "%s", errstr); + goto out; + } + case GF_OP_CMD_START: { if ((volinfo->type == GF_CLUSTER_TYPE_REPLICATE) && @@ -1742,8 +1750,16 @@ glusterd_op_stage_remove_brick (dict_t *dict, char **op_errstr) ret = 0; break; - case GF_OP_CMD_COMMIT: case GF_OP_CMD_DETACH_COMMIT: + if (volinfo->type != GF_CLUSTER_TYPE_TIER) { + snprintf (msg, sizeof(msg), "volume %s is not a tier " + "volume", volinfo->volname); + errstr = gf_strdup (msg); + gf_log (this->name, GF_LOG_ERROR, "%s", errstr); + goto out; + } + + case GF_OP_CMD_COMMIT: if (volinfo->decommission_in_progress) { errstr = gf_strdup ("use 'force' option as migration " "is in progress"); |