From b8118289a928c72cf5a2298419c188fb87426c2f Mon Sep 17 00:00:00 2001 From: Avra Sengupta Date: Wed, 5 Aug 2015 15:56:53 +0530 Subject: snapshot: Fix snapshot info's xml output Backport of http://review.gluster.org/#/c/11834/ Display description field with (null) if no description is present for the snapshot, instead of removing the field altogether Change-Id: I965b08cd6e54eea56c32e2712fab7daa8a663f11 BUG: 1173437 Signed-off-by: Avra Sengupta Reviewed-on: http://review.gluster.org/11919 Reviewed-by: mohammed rafi kc Reviewed-by: Raghavendra Bhat Tested-by: Raghavendra Bhat --- cli/src/cli-xml-output.c | 6 +++++- tests/bugs/snapshot/bug-1250387.t | 26 ++++++++++++++++++++++++++ tests/snapshot.rc | 14 ++++++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100755 tests/bugs/snapshot/bug-1250387.t diff --git a/cli/src/cli-xml-output.c b/cli/src/cli-xml-output.c index 2ff924158ce..4c43c0c9bdf 100644 --- a/cli/src/cli-xml-output.c +++ b/cli/src/cli-xml-output.c @@ -4603,8 +4603,12 @@ cli_xml_snapshot_info_per_snap (xmlTextWriterPtr writer, xmlDocPtr doc, ret = xmlTextWriterWriteFormatElement (writer, (xmlChar *) "description", "%s", buffer); - XML_RET_CHECK_AND_GOTO (ret, out); + } else { + ret = xmlTextWriterWriteFormatElement (writer, + (xmlChar *) "description", + "%s", ""); } + XML_RET_CHECK_AND_GOTO (ret, out); snprintf (key_buffer, sizeof (key_buffer), "%s.snap-time", keyprefix); diff --git a/tests/bugs/snapshot/bug-1250387.t b/tests/bugs/snapshot/bug-1250387.t new file mode 100755 index 00000000000..9e32a9c3c95 --- /dev/null +++ b/tests/bugs/snapshot/bug-1250387.t @@ -0,0 +1,26 @@ +#!/bin/bash + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc +. $(dirname $0)/../../snapshot.rc + +cleanup; + +TEST init_n_bricks 1; +TEST setup_lvm 1; + +TEST glusterd; + +TEST pidof glusterd; + +TEST $CLI volume create $V0 $H0:$L1; + +TEST $CLI volume start $V0; + +TEST glusterfs --volfile-server=$H0 --volfile-id=$V0 $M0; + +TEST $CLI snapshot create snap1 $V0; + +EXPECT "description" get-cmd-field-xml "snapshot info snap1" "description" + +cleanup ; diff --git a/tests/snapshot.rc b/tests/snapshot.rc index 175344ef5f7..e893748eb9e 100755 --- a/tests/snapshot.rc +++ b/tests/snapshot.rc @@ -401,6 +401,20 @@ function uss_count_snap_displayed() { ls $path/.snaps | wc -l } +#return specific fields of xml output +function get-cmd-field-xml() +{ + local cli=$CLI_1; + if [ "$cli" = "" ]; then + cli=$CLI + fi + + COMMAND=$1 + PATTERN=$2 + + $cli $COMMAND --xml | xmllint --format - | grep $PATTERN +} + case $OSTYPE in NetBSD) echo "Skip test on LVM which is not available on NetBSD" >&2 -- cgit