summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt
diff options
context:
space:
mode:
authorSachin Pandit <spandit@redhat.com>2013-11-05 11:38:42 +0000
committershishir gowda <sgowda@redhat.com>2013-11-15 14:45:14 +0530
commit4e8beadcd2e271ab8eaf65f8a18548d6b721a885 (patch)
tree8e84f15014e1677caa81f65ba948614dd9b4f567 /xlators/mgmt
parentf6612dbb66166960e353b2a8bded786f7aed62d9 (diff)
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 <spandit@redhat.com>
Diffstat (limited to 'xlators/mgmt')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-snapshot.c31
1 files changed, 29 insertions, 2 deletions
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;