summaryrefslogtreecommitdiffstats
path: root/cli/src/cli-rpc-ops.c
diff options
context:
space:
mode:
authorDan Lambright <dlambrig@redhat.com>2015-08-21 06:45:46 -0400
committerDan Lambright <dlambrig@redhat.com>2015-09-09 14:56:36 -0700
commitd55a6fee5cdda8be9dd555b4f3b5c0cc005117ef (patch)
treec747e6137038d69b0050fbe1c983c044e97c7b6b /cli/src/cli-rpc-ops.c
parentd35b8b60d7f436c5929dfa8d647f1d41aecfc237 (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.c36
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 = {