summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cli/src/cli-rpc-ops.c57
-rw-r--r--tests/basic/tier/new-tier-cmds.t9
2 files changed, 38 insertions, 28 deletions
diff --git a/cli/src/cli-rpc-ops.c b/cli/src/cli-rpc-ops.c
index b3219f5560a..d6abd8f253a 100644
--- a/cli/src/cli-rpc-ops.c
+++ b/cli/src/cli-rpc-ops.c
@@ -2481,42 +2481,43 @@ gf_cli_remove_tier_brick_cbk (struct rpc_req *req, struct iovec *iov,
(rsp.op_ret) ? "unsuccessful" : "successful");
ret = rsp.op_ret;
- if (rsp.op_ret) {
- if (strcmp (rsp.op_errstr, ""))
- snprintf (msg, sizeof (msg), "volume tier detach %s: "
- "failed: %s", cmd_str, rsp.op_errstr);
- else
- snprintf (msg, sizeof (msg), "volume tier detach %s: "
- "failed", cmd_str);
-
- cli_err ("%s", msg);
- goto out;
-
- } else {
- cli_out ("volume detach tier %s: success", cmd_str);
- if (GF_DEFRAG_CMD_DETACH_START == command &&
- task_id_str != NULL)
- cli_out ("ID: %s", task_id_str);
- if (GF_DEFRAG_CMD_DETACH_COMMIT == command)
- cli_out ("Check the detached bricks to ensure all files"
- " are migrated.\nIf files with data are "
- "found on the brick path, copy them via a "
- "gluster mount point before re-purposing the "
- "removed brick. ");
- }
-
if (global_state->mode & GLUSTER_MODE_XML) {
ret = cli_xml_output_vol_remove_brick_detach_tier (
- _gf_false, rsp_dict,
- rsp.op_ret, rsp.op_errno,
- msg, "volDetachTier");
+ _gf_true, rsp_dict,
+ rsp.op_ret, rsp.op_errno,
+ msg, "volDetachTier");
if (ret)
gf_log ("cli", GF_LOG_ERROR,
"Error outputting to xml");
goto out;
- }
+ } else {
+ if (rsp.op_ret) {
+ if (strcmp (rsp.op_errstr, ""))
+ snprintf (msg, sizeof (msg), "volume tier "
+ "detach %s: failed: %s", cmd_str,
+ rsp.op_errstr);
+ else
+ snprintf (msg, sizeof (msg), "volume tier "
+ "detach %s: failed", cmd_str);
+
+ cli_err ("%s", msg);
+ goto out;
+ } else {
+ cli_out ("volume detach tier %s: success", cmd_str);
+ if (GF_DEFRAG_CMD_DETACH_START == command &&
+ task_id_str != NULL)
+ cli_out ("ID: %s", task_id_str);
+ if (GF_DEFRAG_CMD_DETACH_COMMIT == command)
+ cli_out ("Check the detached bricks to ensure "
+ "all files are migrated.\nIf files "
+ "with data are found on the brick "
+ "path, copy them via a gluster mount "
+ "point before re-purposing the "
+ "removed brick. ");
+ }
+ }
if (command == GF_DEFRAG_CMD_DETACH_STOP ||
command == GF_DEFRAG_CMD_DETACH_STATUS)
ret = gf_cli_print_rebalance_status (rsp_dict,
diff --git a/tests/basic/tier/new-tier-cmds.t b/tests/basic/tier/new-tier-cmds.t
index 3c16154265d..d341e62dc51 100644
--- a/tests/basic/tier/new-tier-cmds.t
+++ b/tests/basic/tier/new-tier-cmds.t
@@ -27,6 +27,11 @@ function tier_daemon_status {
| sed -n '/.*<status>\([0-9]*\).*/s//\1/p'
}
+function detach_xml_status {
+ $CLI_1 volume tier $V0 detach status --xml | sed -n \
+ '/.*<opErrstr>Detach tier status successful/p' | wc -l
+}
+
cleanup;
#setup cluster and test volume
@@ -52,10 +57,14 @@ TEST ! $CLI_1 volume rebalance $V0 tier status
EXPECT "Tier command failed" $CLI_1 volume tier $V0 detach status
+EXPECT "0" detach_xml_status
+
#after starting detach tier the detach tier status should display the status
TEST $CLI_1 volume tier $V0 detach start
+EXPECT "1" detach_xml_status
+
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "1" tier_detach_status
#kill a node