diff options
| author | Pranith Kumar K <pranithk@gluster.com> | 2012-03-16 16:09:42 +0530 | 
|---|---|---|
| committer | Anand Avati <avati@redhat.com> | 2012-03-18 00:33:28 -0700 | 
| commit | 642343cc55e6ea2b0d463d77334c34790c30080f (patch) | |
| tree | 47aa3e890088463828e936b84ccb56b2fdc49152 /cli | |
| parent | f159e2247b58441449ad8da13ddf5cc5d3887b93 (diff) | |
Self-heald: Handle errors gracefully and show errors to users
Change-Id: I5424ebfadb5b2773ee6f7370cc2867a555aa48dd
BUG: 800352
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Reviewed-on: http://review.gluster.com/2962
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Diffstat (limited to 'cli')
| -rw-r--r-- | cli/src/cli-cmd-volume.c | 4 | ||||
| -rw-r--r-- | cli/src/cli-rpc-ops.c | 22 | 
2 files changed, 14 insertions, 12 deletions
diff --git a/cli/src/cli-cmd-volume.c b/cli/src/cli-cmd-volume.c index 9546831ab..4e56f9c65 100644 --- a/cli/src/cli-cmd-volume.c +++ b/cli/src/cli-cmd-volume.c @@ -1561,8 +1561,10 @@ cli_cmd_volume_heal_cbk (struct cli_state *state, struct cli_cmd_word *word,          int                     sent = 0;          int                     parse_error = 0;          dict_t                  *options = NULL; +        xlator_t                *this = NULL; -        frame = create_frame (THIS, THIS->ctx->pool); +        this = THIS; +        frame = create_frame (this, this->ctx->pool);          if (!frame)                  goto out; diff --git a/cli/src/cli-rpc-ops.c b/cli/src/cli-rpc-ops.c index a259addb1..b88b523b7 100644 --- a/cli/src/cli-rpc-ops.c +++ b/cli/src/cli-rpc-ops.c @@ -5561,6 +5561,7 @@ cmd_heal_volume_brick_out (dict_t *dict, int brick)          char            key[256] = {0};          char            *hostname = NULL;          char            *path = NULL; +        char            *status = NULL;          uint64_t        i = 0;          snprintf (key, sizeof (key), "%d-hostname", brick); @@ -5571,9 +5572,14 @@ cmd_heal_volume_brick_out (dict_t *dict, int brick)          ret = dict_get_str (dict, key, &path);          if (ret)                  goto out; +        cli_out ("\nBrick %s:%s", hostname, path);          snprintf (key, sizeof (key), "%d-count", brick);          ret = dict_get_uint64 (dict, key, &num_entries); -        cli_out ("\nEntries on %s:%s %"PRIu64, hostname, path, num_entries); +        cli_out ("Number of entries: %"PRIu64, num_entries); +        snprintf (key, sizeof (key), "%d-status", brick); +        ret = dict_get_str (dict, key, &status); +        if (status && strlen (status)) +                cli_out ("Status: %s", status);          for (i = 0; i < num_entries; i++) {                  snprintf (key, sizeof (key), "%d-%"PRIu64, brick, i);                  ret = dict_get_str (dict, key, &path); @@ -5645,21 +5651,15 @@ gf_cli3_1_heal_volume_cbk (struct rpc_req *req, struct iovec *iov,          if (rsp.op_ret && strcmp (rsp.op_errstr, ""))                  cli_out ("%s", rsp.op_errstr);          else -                cli_out ("Starting heal on volume %s has been %s", volname, +                cli_out ("Heal operation on volume %s has been %s", volname,                          (rsp.op_ret) ? "unsuccessful": "successful"); -        if (rsp.op_ret) { -                ret = rsp.op_ret; -                goto out; -        } - +        ret = rsp.op_ret;          if ((heal_op == GF_AFR_OP_HEAL_FULL) || -            (heal_op == GF_AFR_OP_HEAL_INDEX)) { -                ret = 0; +            (heal_op == GF_AFR_OP_HEAL_INDEX))                  goto out; -        } -        dict = dict_new (); +        dict = dict_new ();          if (!dict) {                  ret = -1;                  goto out;  | 
