|
|
21ab4e |
From e983749c2bdf5f2cf696faf6a6feae74fb1eef9a Mon Sep 17 00:00:00 2001
|
|
|
21ab4e |
From: Atin Mukherjee <amukherj@redhat.com>
|
|
|
21ab4e |
Date: Wed, 5 Jul 2017 14:58:50 +0530
|
|
|
21ab4e |
Subject: [PATCH 542/557] cli/xml: fix return handling
|
|
|
21ab4e |
|
|
|
21ab4e |
The return code of xmlTextWriter* APIs says it returns either the bytes
|
|
|
21ab4e |
written (may be 0 because of buffering) or -1 in case of error. Now if the
|
|
|
21ab4e |
volume of the xml data payload is not huge then most of the time the
|
|
|
21ab4e |
data to be written gets buffered, however when this grows sometimes this
|
|
|
21ab4e |
APIs will return the total number of bytes written and then it becomes
|
|
|
21ab4e |
absolutely mandatory that every such call is followed by
|
|
|
21ab4e |
XML_RET_CHECK_AND_GOTO otherwise we may end up returning a non zero ret
|
|
|
21ab4e |
code which would result into the overall xml generation to fail.
|
|
|
21ab4e |
|
|
|
21ab4e |
>Reviewed-on: https://review.gluster.org/17702
|
|
|
21ab4e |
>Smoke: Gluster Build System <jenkins@build.gluster.org>
|
|
|
21ab4e |
>Reviewed-by: Amar Tumballi <amarts@redhat.com>
|
|
|
21ab4e |
>CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
|
|
|
21ab4e |
>Reviewed-by: Gaurav Yadav <gyadav@redhat.com>
|
|
|
21ab4e |
|
|
|
21ab4e |
Change-Id: I02ee7076e1d8c26cf654d3dc3e77b1eb17cbdab0
|
|
|
21ab4e |
BUG: 1467807
|
|
|
21ab4e |
Signed-off-by: Atin Mukherjee <amukherj@redhat.com>
|
|
|
21ab4e |
Reviewed-on: https://code.engineering.redhat.com/gerrit/111200
|
|
|
21ab4e |
Reviewed-by: Gaurav Yadav <gyadav@redhat.com>
|
|
|
21ab4e |
---
|
|
|
21ab4e |
cli/src/cli-xml-output.c | 88 ++++++++++++++++++++++++++++--------------------
|
|
|
21ab4e |
1 file changed, 51 insertions(+), 37 deletions(-)
|
|
|
21ab4e |
|
|
|
21ab4e |
diff --git a/cli/src/cli-xml-output.c b/cli/src/cli-xml-output.c
|
|
|
21ab4e |
index d0d8179..75aceab 100644
|
|
|
21ab4e |
--- a/cli/src/cli-xml-output.c
|
|
|
21ab4e |
+++ b/cli/src/cli-xml-output.c
|
|
|
21ab4e |
@@ -194,6 +194,8 @@ cli_xml_output_data_pair (dict_t *this, char *key, data_t *value,
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (*writer, (xmlChar *)key,
|
|
|
21ab4e |
"%s", value->data);
|
|
|
21ab4e |
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
+out:
|
|
|
21ab4e |
return ret;
|
|
|
21ab4e |
}
|
|
|
21ab4e |
#endif
|
|
|
21ab4e |
@@ -324,7 +326,7 @@ cli_xml_output_vol_status_common (xmlTextWriterPtr writer, dict_t *dict,
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (writer,
|
|
|
21ab4e |
(xmlChar *)"port",
|
|
|
21ab4e |
"%s", "N/A");
|
|
|
21ab4e |
-
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
ret = xmlTextWriterStartElement (writer, (xmlChar *)"ports");
|
|
|
21ab4e |
if (*online == 1 && (port != 0 || rdma_port != 0)) {
|
|
|
21ab4e |
|
|
|
21ab4e |
@@ -337,7 +339,7 @@ cli_xml_output_vol_status_common (xmlTextWriterPtr writer, dict_t *dict,
|
|
|
21ab4e |
(xmlChar *)"tcp",
|
|
|
21ab4e |
"%s", "N/A");
|
|
|
21ab4e |
}
|
|
|
21ab4e |
-
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
if (rdma_port) {
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (writer,
|
|
|
21ab4e |
(xmlChar *)"rdma",
|
|
|
21ab4e |
@@ -347,14 +349,16 @@ cli_xml_output_vol_status_common (xmlTextWriterPtr writer, dict_t *dict,
|
|
|
21ab4e |
(xmlChar *)"rdma",
|
|
|
21ab4e |
"%s", "N/A");
|
|
|
21ab4e |
}
|
|
|
21ab4e |
-
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
} else {
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (writer,
|
|
|
21ab4e |
(xmlChar *)"tcp",
|
|
|
21ab4e |
"%s", "N/A");
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (writer,
|
|
|
21ab4e |
(xmlChar *)"rdma",
|
|
|
21ab4e |
"%s", "N/A");
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
}
|
|
|
21ab4e |
|
|
|
21ab4e |
ret = xmlTextWriterEndElement (writer);
|
|
|
21ab4e |
@@ -392,51 +396,57 @@ cli_xml_output_vol_status_detail (xmlTextWriterPtr writer, dict_t *dict,
|
|
|
21ab4e |
|
|
|
21ab4e |
snprintf (key, sizeof (key), "brick%d.total", brick_index);
|
|
|
21ab4e |
ret = dict_get_uint64 (dict, key, &size_total);
|
|
|
21ab4e |
- if (!ret)
|
|
|
21ab4e |
+ if (!ret) {
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (writer,
|
|
|
21ab4e |
(xmlChar *)"sizeTotal",
|
|
|
21ab4e |
"%"PRIu64, size_total);
|
|
|
21ab4e |
-
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
+ }
|
|
|
21ab4e |
memset (key, 0, sizeof (key));
|
|
|
21ab4e |
snprintf (key, sizeof (key), "brick%d.free", brick_index);
|
|
|
21ab4e |
ret = dict_get_uint64 (dict, key, &size_free);
|
|
|
21ab4e |
- if (!ret)
|
|
|
21ab4e |
+ if (!ret) {
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (writer,
|
|
|
21ab4e |
(xmlChar *)"sizeFree",
|
|
|
21ab4e |
"%"PRIu64, size_free);
|
|
|
21ab4e |
-
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
+ }
|
|
|
21ab4e |
memset (key, 0, sizeof (key));
|
|
|
21ab4e |
snprintf (key, sizeof (key), "brick%d.device", brick_index);
|
|
|
21ab4e |
ret = dict_get_str (dict, key, &device);
|
|
|
21ab4e |
- if (!ret)
|
|
|
21ab4e |
+ if (!ret) {
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (writer,
|
|
|
21ab4e |
(xmlChar *)"device",
|
|
|
21ab4e |
"%s", device);
|
|
|
21ab4e |
-
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
+ }
|
|
|
21ab4e |
memset (key, 0, sizeof (key));
|
|
|
21ab4e |
snprintf (key, sizeof (key), "brick%d.block_size", brick_index);
|
|
|
21ab4e |
ret = dict_get_uint64 (dict, key, &block_size);
|
|
|
21ab4e |
- if (!ret)
|
|
|
21ab4e |
+ if (!ret) {
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (writer,
|
|
|
21ab4e |
(xmlChar *)"blockSize",
|
|
|
21ab4e |
"%"PRIu64, block_size);
|
|
|
21ab4e |
- XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
-
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
+ }
|
|
|
21ab4e |
memset (key, 0, sizeof (key));
|
|
|
21ab4e |
snprintf (key, sizeof (key), "brick%d.mnt_options", brick_index);
|
|
|
21ab4e |
ret = dict_get_str (dict, key, &mnt_options);
|
|
|
21ab4e |
- if (!ret)
|
|
|
21ab4e |
+ if (!ret) {
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (writer,
|
|
|
21ab4e |
(xmlChar *)"mntOptions",
|
|
|
21ab4e |
"%s", mnt_options);
|
|
|
21ab4e |
-
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
+ }
|
|
|
21ab4e |
memset (key, 0, sizeof (key));
|
|
|
21ab4e |
snprintf (key, sizeof (key), "brick%d.fs_name", brick_index);
|
|
|
21ab4e |
ret = dict_get_str (dict, key, &fs_name);
|
|
|
21ab4e |
- if (!ret)
|
|
|
21ab4e |
+ if (!ret) {
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (writer,
|
|
|
21ab4e |
(xmlChar *)"fsName",
|
|
|
21ab4e |
"%s", fs_name);
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
+ }
|
|
|
21ab4e |
|
|
|
21ab4e |
/* inode details are only available for ext 2/3/4 & xfs */
|
|
|
21ab4e |
if (!fs_name || !IS_EXT_FS(fs_name) || strcmp (fs_name, "xfs")) {
|
|
|
21ab4e |
@@ -447,26 +457,30 @@ cli_xml_output_vol_status_detail (xmlTextWriterPtr writer, dict_t *dict,
|
|
|
21ab4e |
memset (key, 0, sizeof (key));
|
|
|
21ab4e |
snprintf (key, sizeof (key), "brick%d.inode_size", brick_index);
|
|
|
21ab4e |
ret = dict_get_str (dict, key, &inode_size);
|
|
|
21ab4e |
- if (!ret)
|
|
|
21ab4e |
+ if (!ret) {
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (writer,
|
|
|
21ab4e |
(xmlChar *)"inodeSize",
|
|
|
21ab4e |
"%s", fs_name);
|
|
|
21ab4e |
-
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
+ }
|
|
|
21ab4e |
memset (key, 0, sizeof (key));
|
|
|
21ab4e |
snprintf (key, sizeof (key), "brick%d.total_inodes", brick_index);
|
|
|
21ab4e |
ret = dict_get_uint64 (dict, key, &inodes_total);
|
|
|
21ab4e |
- if (!ret)
|
|
|
21ab4e |
+ if (!ret) {
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (writer,
|
|
|
21ab4e |
(xmlChar *)"inodesTotal",
|
|
|
21ab4e |
"%"PRIu64, inodes_total);
|
|
|
21ab4e |
-
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
+ }
|
|
|
21ab4e |
memset (key, 0, sizeof (key));
|
|
|
21ab4e |
snprintf (key, sizeof (key), "brick%d.free_inodes", brick_index);
|
|
|
21ab4e |
ret = dict_get_uint64 (dict, key, &inodes_free);
|
|
|
21ab4e |
- if (!ret)
|
|
|
21ab4e |
+ if (!ret) {
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (writer,
|
|
|
21ab4e |
(xmlChar *)"inodesFree",
|
|
|
21ab4e |
"%"PRIu64, inodes_free);
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
+ }
|
|
|
21ab4e |
|
|
|
21ab4e |
out:
|
|
|
21ab4e |
gf_log ("cli", GF_LOG_DEBUG, "Returning %d", ret);
|
|
|
21ab4e |
@@ -1382,6 +1396,7 @@ cli_xml_output_vol_status_callpool (xmlTextWriterPtr writer, dict_t *dict,
|
|
|
21ab4e |
goto out;
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (writer, (xmlChar *)"count",
|
|
|
21ab4e |
"%d", call_count);
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
|
|
|
21ab4e |
for (i = 0; i < call_count; i++) {
|
|
|
21ab4e |
memset (key, 0, sizeof (key));
|
|
|
21ab4e |
@@ -1492,7 +1507,7 @@ cli_xml_output_remove_brick_task_params (xmlTextWriterPtr writer, dict_t *dict,
|
|
|
21ab4e |
|
|
|
21ab4e |
/* </param> */
|
|
|
21ab4e |
ret = xmlTextWriterEndElement (writer);
|
|
|
21ab4e |
-
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
out:
|
|
|
21ab4e |
gf_log ("cli", GF_LOG_DEBUG, "Returning %d", ret);
|
|
|
21ab4e |
return ret;
|
|
|
21ab4e |
@@ -1576,7 +1591,7 @@ cli_xml_output_vol_status_tasks (cli_local_t *local, dict_t *dict) {
|
|
|
21ab4e |
|
|
|
21ab4e |
/* </tasks> */
|
|
|
21ab4e |
ret = xmlTextWriterEndElement (local->writer);
|
|
|
21ab4e |
-
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
out:
|
|
|
21ab4e |
gf_log ("cli", GF_LOG_DEBUG, "Returning %d", ret);
|
|
|
21ab4e |
return ret;
|
|
|
21ab4e |
@@ -1653,8 +1668,8 @@ cli_xml_output_vol_status (cli_local_t *local, dict_t *dict)
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (local->writer,
|
|
|
21ab4e |
(xmlChar *)"nodeCount", "%d",
|
|
|
21ab4e |
brick_count);
|
|
|
21ab4e |
- if (ret)
|
|
|
21ab4e |
- goto out;
|
|
|
21ab4e |
+
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
|
|
|
21ab4e |
ret = dict_get_uint32 (dict, "cmd", &cmd);
|
|
|
21ab4e |
if (ret)
|
|
|
21ab4e |
@@ -2034,6 +2049,7 @@ cli_xml_output_vol_top (dict_t *dict, int op_ret, int op_errno,
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement
|
|
|
21ab4e |
(writer, (xmlChar *)"timeTaken",
|
|
|
21ab4e |
"%f", time_taken);
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
}
|
|
|
21ab4e |
|
|
|
21ab4e |
break;
|
|
|
21ab4e |
@@ -2378,8 +2394,7 @@ cli_xml_output_vol_profile (dict_t *dict, int op_ret, int op_errno,
|
|
|
21ab4e |
(writer, (xmlChar *)"clearStats", "%s",
|
|
|
21ab4e |
stats_cleared ? "Cleared stats." :
|
|
|
21ab4e |
"Failed to clear stats.");
|
|
|
21ab4e |
- if (ret)
|
|
|
21ab4e |
- goto out;
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
} else {
|
|
|
21ab4e |
snprintf (key, sizeof (key), "%d-cumulative", i);
|
|
|
21ab4e |
ret = dict_get_int32 (dict, key, &interval);
|
|
|
21ab4e |
@@ -2892,6 +2907,7 @@ cli_xml_output_vol_info (cli_local_t *local, dict_t *dict)
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement
|
|
|
21ab4e |
(local->writer, (xmlChar *)"hotBrickType",
|
|
|
21ab4e |
"%s", vol_type_str[tier_vol_type]);
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (local->writer,
|
|
|
21ab4e |
(xmlChar *)"hotreplicaCount",
|
|
|
21ab4e |
@@ -2912,7 +2928,6 @@ cli_xml_output_vol_info (cli_local_t *local, dict_t *dict)
|
|
|
21ab4e |
(local->writer,
|
|
|
21ab4e |
(xmlChar *)"numberOfBricks",
|
|
|
21ab4e |
"%d", value[HOT_BRICK_COUNT]);
|
|
|
21ab4e |
- XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
} else {
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement
|
|
|
21ab4e |
(local->writer,
|
|
|
21ab4e |
@@ -2923,6 +2938,7 @@ cli_xml_output_vol_info (cli_local_t *local, dict_t *dict)
|
|
|
21ab4e |
hot_dist_count,
|
|
|
21ab4e |
value[HOT_BRICK_COUNT]);
|
|
|
21ab4e |
}
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
|
|
|
21ab4e |
while (index <= value[HOT_BRICK_COUNT]) {
|
|
|
21ab4e |
snprintf (key, 1024, "volume%d.brick%d", i,
|
|
|
21ab4e |
@@ -2980,6 +2996,7 @@ cli_xml_output_vol_info (cli_local_t *local, dict_t *dict)
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement
|
|
|
21ab4e |
(local->writer, (xmlChar *)"coldBrickType",
|
|
|
21ab4e |
"%s", vol_type_str[tier_vol_type]);
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (local->writer,
|
|
|
21ab4e |
(xmlChar *)"coldreplicaCount",
|
|
|
21ab4e |
@@ -3009,8 +3026,6 @@ cli_xml_output_vol_info (cli_local_t *local, dict_t *dict)
|
|
|
21ab4e |
(local->writer,
|
|
|
21ab4e |
(xmlChar *)"numberOfBricks",
|
|
|
21ab4e |
"%d", value[COLD_BRICK_COUNT]);
|
|
|
21ab4e |
- XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
-
|
|
|
21ab4e |
} else if (value[COLD_TYPE] ==
|
|
|
21ab4e |
GF_CLUSTER_TYPE_DISPERSE) {
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement
|
|
|
21ab4e |
@@ -3033,6 +3048,7 @@ cli_xml_output_vol_info (cli_local_t *local, dict_t *dict)
|
|
|
21ab4e |
value[COLD_DIST_COUNT],
|
|
|
21ab4e |
value[COLD_BRICK_COUNT]);
|
|
|
21ab4e |
}
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
|
|
|
21ab4e |
start_index = index = value[HOT_BRICK_COUNT] + 1;
|
|
|
21ab4e |
|
|
|
21ab4e |
@@ -3226,7 +3242,7 @@ cli_xml_output_vol_info_end (cli_local_t *local)
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (local->writer,
|
|
|
21ab4e |
(xmlChar *)"count",
|
|
|
21ab4e |
"%d", local->vol_count);
|
|
|
21ab4e |
-
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
/* </volumes> */
|
|
|
21ab4e |
ret = xmlTextWriterEndElement (local->writer);
|
|
|
21ab4e |
XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
@@ -3252,9 +3268,7 @@ cli_xml_output_vol_quota_limit_list_end (cli_local_t *local)
|
|
|
21ab4e |
int ret = -1;
|
|
|
21ab4e |
|
|
|
21ab4e |
ret = xmlTextWriterEndElement (local->writer);
|
|
|
21ab4e |
- if (ret) {
|
|
|
21ab4e |
- goto out;
|
|
|
21ab4e |
- }
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
|
|
|
21ab4e |
ret = cli_end_xml_output (local->writer, local->doc);
|
|
|
21ab4e |
|
|
|
21ab4e |
@@ -3322,7 +3336,7 @@ cli_xml_output_peer_hostnames (xmlTextWriterPtr writer, dict_t *dict,
|
|
|
21ab4e |
|
|
|
21ab4e |
/* </hostnames> */
|
|
|
21ab4e |
ret = xmlTextWriterEndElement (writer);
|
|
|
21ab4e |
-
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
out:
|
|
|
21ab4e |
gf_log ("cli", GF_LOG_DEBUG, "Returning %d", ret);
|
|
|
21ab4e |
return ret;
|
|
|
21ab4e |
@@ -3526,6 +3540,7 @@ cli_xml_output_vol_rebalance_status (xmlTextWriterPtr writer, dict_t *dict,
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (writer,
|
|
|
21ab4e |
(xmlChar *)"nodeName",
|
|
|
21ab4e |
"%s", node_name);
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
|
|
|
21ab4e |
memset (key, 0, sizeof (key));
|
|
|
21ab4e |
snprintf (key, sizeof (key), "node-uuid-%d", i);
|
|
|
21ab4e |
@@ -3610,6 +3625,7 @@ cli_xml_output_vol_rebalance_status (xmlTextWriterPtr writer, dict_t *dict,
|
|
|
21ab4e |
(xmlChar *)"statusStr",
|
|
|
21ab4e |
"%s",
|
|
|
21ab4e |
cli_vol_task_status_str[status_rcd]);
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, out);
|
|
|
21ab4e |
|
|
|
21ab4e |
memset (key, 0, 256);
|
|
|
21ab4e |
snprintf (key, 256, "run-time-%d", i);
|
|
|
21ab4e |
@@ -5880,7 +5896,6 @@ cli_xml_snapshot_delete (xmlTextWriterPtr writer, xmlDocPtr doc, dict_t *dict,
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (writer,
|
|
|
21ab4e |
(xmlChar *) "status",
|
|
|
21ab4e |
"Success");
|
|
|
21ab4e |
- XML_RET_CHECK_AND_GOTO (ret, xmlend);
|
|
|
21ab4e |
} else {
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (writer,
|
|
|
21ab4e |
(xmlChar *) "status",
|
|
|
21ab4e |
@@ -5890,9 +5905,8 @@ cli_xml_snapshot_delete (xmlTextWriterPtr writer, xmlDocPtr doc, dict_t *dict,
|
|
|
21ab4e |
ret = cli_xml_output_common (writer, rsp->op_ret,
|
|
|
21ab4e |
rsp->op_errno,
|
|
|
21ab4e |
rsp->op_errstr);
|
|
|
21ab4e |
- XML_RET_CHECK_AND_GOTO (ret, xmlend);
|
|
|
21ab4e |
}
|
|
|
21ab4e |
-
|
|
|
21ab4e |
+ XML_RET_CHECK_AND_GOTO (ret, xmlend);
|
|
|
21ab4e |
|
|
|
21ab4e |
ret = xmlTextWriterWriteFormatElement (writer, (xmlChar *) "name",
|
|
|
21ab4e |
"%s", str_value);
|
|
|
21ab4e |
--
|
|
|
21ab4e |
1.8.3.1
|
|
|
21ab4e |
|