diff options
Diffstat (limited to 'cli/src/cli-rpc-ops.c')
| -rw-r--r-- | cli/src/cli-rpc-ops.c | 37 | 
1 files changed, 35 insertions, 2 deletions
diff --git a/cli/src/cli-rpc-ops.c b/cli/src/cli-rpc-ops.c index b998fff3f4c..348fbe4e2e5 100644 --- a/cli/src/cli-rpc-ops.c +++ b/cli/src/cli-rpc-ops.c @@ -7682,6 +7682,7 @@ cli_snapshot_config_display (dict_t *dict, gf_cli_rsp *rsp)          uint64_t            soft_limit           = 0;          uint64_t            i                    = 0;          uint64_t            voldisplaycount      = 0; +        char               *auto_delete          = NULL;          GF_ASSERT (dict);          GF_ASSERT (rsp); @@ -7711,8 +7712,11 @@ cli_snapshot_config_display (dict_t *dict, gf_cli_rsp *rsp)          /* Ignore the error, as the key specified is optional */          ret = dict_get_uint64 (dict, "snap-max-soft-limit", &soft_limit); +        ret = dict_get_str (dict, "auto-delete", &auto_delete); +          if (!hard_limit && !soft_limit -                        && config_command != GF_SNAP_CONFIG_DISPLAY) { +                        && config_command != GF_SNAP_CONFIG_DISPLAY +                        && !auto_delete) {                  ret = -1;                  gf_log(THIS->name, GF_LOG_ERROR,                         "Could not fetch config-key"); @@ -7733,6 +7737,10 @@ cli_snapshot_config_display (dict_t *dict, gf_cli_rsp *rsp)                          cli_out ("snapshot config: %s "                                   "for snap-max-soft-limit set successfully",                                   volname); +                } else if (auto_delete) { +                        cli_out ("snapshot config: %s " +                                 "auto-delete successfully %sd", +                                 volname, auto_delete);                  }                  break; @@ -7756,9 +7764,11 @@ cli_snapshot_config_display (dict_t *dict, gf_cli_rsp *rsp)                          ret = -1;                          goto out;                  } -                cli_out ("snap-max-soft-limit : %"PRIu64"%%\n", +                cli_out ("snap-max-soft-limit : %"PRIu64"%%",                           soft_limit); +                cli_out ("auto-delete : %s\n", auto_delete); +                  cli_out ("Snapshot Volume Configuration:");                  ret = dict_get_uint64 (dict, "voldisplaycount", @@ -8501,6 +8511,8 @@ gf_cli_snapshot_cbk (struct rpc_req *req, struct iovec *iov,          int32_t               type                     =  0;          call_frame_t         *frame                    = NULL;          gf_boolean_t         snap_driven               = _gf_false; +        int8_t               soft_limit_flag           = -1; +        char                 *volname                  = NULL;          if (req->rpc_status == -1) {                  ret = -1; @@ -8550,8 +8562,29 @@ gf_cli_snapshot_cbk (struct rpc_req *req, struct iovec *iov,                                  "Failed to get snap name");                          goto out;                  } + +                /* TODO : Instead of using volname1 directly use +                 * volname$i in loop once snapshot of multiple +                 * volumes are supported +                 */ +                ret = dict_get_str (dict, "volname1", &volname); +                if (ret) { +                        gf_log ("cli", GF_LOG_ERROR, +                                "Failed to get volume name"); +                        goto out; +                } +                  cli_out ("snapshot create: success: Snap %s created "                                          "successfully", snap_name); + +                ret = dict_get_int8 (dict, "soft-limit-reach", +                                    &soft_limit_flag); +                if (soft_limit_flag == 1) { +                        cli_out ("Warning: Soft-limit of volume (%s) is " +                                "reached. Snapshot creation is not possible " +                                "once hard-limit is reached.", volname); +                } +                ret = 0;                  break;          case GF_SNAP_OPTION_TYPE_RESTORE:  | 
