diff options
author | Dan Lambright <dlambrig@redhat.com> | 2015-08-21 06:45:46 -0400 |
---|---|---|
committer | Dan Lambright <dlambrig@redhat.com> | 2015-09-09 14:56:36 -0700 |
commit | d55a6fee5cdda8be9dd555b4f3b5c0cc005117ef (patch) | |
tree | c747e6137038d69b0050fbe1c983c044e97c7b6b /cli/src/cli-rpc-ops.c | |
parent | d35b8b60d7f436c5929dfa8d647f1d41aecfc237 (diff) |
cluster/tier: add gluster v tier <vol>
Currently the tier feature piggy backs off the rebalance command
syntax to obtain status and this is clumsy. Introduce a new
tier command that can do tier specific operations, starting
with volume status to display counters.
Old commands:
gluster volume attach-tier <vol> [replica count] {bricklist..}
gluster volume detach-tier <vol> {start|stop|commit}
New commands:
gluster volume tier <vol> attach [replica count] {bricklist} |
detach {start|stop|commit} |
status
Change-Id: Ic07b3c6260588162de7d34380f8cbd3d8a7f35d3
BUG: 1255693
Signed-off-by: Dan Lambright <dlambrig@redhat.com>
Reviewed-on: http://review.gluster.org/11984
Reviewed-by: Gaurav Kumar Garg <ggarg@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Diffstat (limited to 'cli/src/cli-rpc-ops.c')
-rw-r--r-- | cli/src/cli-rpc-ops.c | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/cli/src/cli-rpc-ops.c b/cli/src/cli-rpc-ops.c index 7a1fc75d64a..c160339cb12 100644 --- a/cli/src/cli-rpc-ops.c +++ b/cli/src/cli-rpc-ops.c @@ -4351,6 +4351,39 @@ out: } int32_t +gf_cli_tier (call_frame_t *frame, xlator_t *this, + void *data) +{ + int ret = 0; + int32_t command = 0; + int32_t cmd = 0; + gf_cli_req req = { {0,} }; + gf_cli_req status_req = { {0,} }; + dict_t *dict = NULL; + char *volname = NULL; + + if (!frame || !this || !data) { + ret = -1; + goto out; + } + dict = data; + + ret = cli_to_glusterd (&req, frame, gf_cli_defrag_volume_cbk, + (xdrproc_t) xdr_gf_cli_req, dict, + GLUSTER_CLI_DEFRAG_VOLUME, this, cli_rpc_prog, + NULL); + +out: + gf_log ("cli", GF_LOG_DEBUG, "Returning %d", ret); + + GF_FREE (req.dict.dict_val); + + GF_FREE (status_req.dict.dict_val); + + return ret; +} + +int32_t gf_cli_detach_tier (call_frame_t *frame, xlator_t *this, void *data) { @@ -10726,7 +10759,8 @@ struct rpc_clnt_procedure gluster_cli_actors[GLUSTER_CLI_MAXVALUE] = { [GLUSTER_CLI_GET_VOL_OPT] = {"GET_VOL_OPT", gf_cli_get_vol_opt}, [GLUSTER_CLI_BITROT] = {"BITROT", gf_cli_bitrot}, [GLUSTER_CLI_ATTACH_TIER] = {"ATTACH_TIER", gf_cli_attach_tier}, - [GLUSTER_CLI_DETACH_TIER] = {"DETACH_TIER", gf_cli_detach_tier} + [GLUSTER_CLI_DETACH_TIER] = {"DETACH_TIER", gf_cli_detach_tier}, + [GLUSTER_CLI_TIER] = {"TIER", gf_cli_tier} }; struct rpc_clnt_program cli_prog = { |