From 4e8beadcd2e271ab8eaf65f8a18548d6b721a885 Mon Sep 17 00:00:00 2001 From: Sachin Pandit Date: Tue, 5 Nov 2013 11:38:42 +0000 Subject: mgmt/glusterd : Printing error message if volume does not exist. If user tries to list the snap details of volumes which does not exist, then corresponding error message is displayed. Change-Id: I205738be3dc632ccb074b639a2088cdd44aa35a7 Signed-off-by: Sachin Pandit --- xlators/mgmt/glusterd/src/glusterd-snapshot.c | 31 +++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) (limited to 'xlators') diff --git a/xlators/mgmt/glusterd/src/glusterd-snapshot.c b/xlators/mgmt/glusterd/src/glusterd-snapshot.c index eeadb6d74..dbbf84189 100644 --- a/xlators/mgmt/glusterd/src/glusterd-snapshot.c +++ b/xlators/mgmt/glusterd/src/glusterd-snapshot.c @@ -1769,6 +1769,9 @@ glusterd_snapshot_get_snaplist (dict_t *voldict, dict_t *rspdict, char *volname = NULL; xlator_t *this = NULL; char key[256] = {0,}; + gf_boolean_t exist = _gf_false; + char *err_str = NULL; + char err_prefix[PATH_MAX] = ""; this = THIS; @@ -1808,12 +1811,36 @@ glusterd_snapshot_get_snaplist (dict_t *voldict, dict_t *rspdict, goto out; } - /* Now for each volume get the snap list */ ret = snprintf (key, sizeof (key), "%s.vol%ld", keyprefix, i); if (ret < 0) { /* Only negative value is error */ goto out; } + exist = glusterd_check_volume_exists (volname); + if (!exist) { + err_str = (char *) GF_CALLOC(1, PATH_MAX, sizeof(char)); + gf_log ("", GF_LOG_ERROR, + "Volume %s Does not exist", volname); + ret = snprintf (err_str, PATH_MAX, + "Volume %s Does not exist",volname); + if (ret < 0) { + goto out; + } + ret = snprintf (err_prefix, sizeof (err_prefix), + "%s.err_str", key); + if (ret < 0) { + goto out; + } + ret = dict_set_str (rspdict, err_prefix, err_str); + if (ret < 0 ) { + gf_log ("", GF_LOG_ERROR, "Could not" + "save the err_str"); + goto out; + } + continue; + } + + /* Now for each volume get the snap list */ ret = glusterd_snapshot_vol_get_snaplist_by_name (rspdict, key, volname, snapname, detail); if (ret) { @@ -1851,9 +1878,9 @@ glusterd_handle_snapshot_list (rpcsvc_request_t *req, glusterd_op_t op, char *keyprefix = "snaplist"; char *cgname = NULL; char *snapname = NULL; + char *err_str = "Operation failed"; dict_t *voldict = NULL; xlator_t *this = NULL; - char *err_str = "Operation failed"; char key[256] = {0,}; this = THIS; -- cgit