vbox_snapshot_conf: Keep indent in snapshot XML

As mentioned in previous commit, VirtualBox has its own snapshot
XML which we parse, change and then format back. During this, we
ought to keep the indentation to produce better looking result
(especially when we want to compare the output in tests later on,
like we do in vboxsnapshotxmltest).

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Michal Privoznik 2023-11-21 10:40:36 +01:00
parent d8cb1cd50c
commit d1f58b10f6

View File

@ -25,6 +25,7 @@
#include "virstring.h"
#include "virxml.h"
#include <libxml/xmlsave.h>
#include <libxml/xpathInternals.h>
#define VIR_FROM_THIS VIR_FROM_VBOX
@ -364,12 +365,11 @@ virVBoxSnapshotConfSerializeSnapshot(xmlNodePtr node,
xmlParserErrors parseError = XML_ERR_OK;
char *uuid = NULL;
char *timeStamp = NULL;
g_auto(GStrv) firstRegex = NULL;
int firstRegexResult = 0;
g_auto(GStrv) secondRegex = NULL;
int secondRegexResult = 0;
const int parseFlags = XML_PARSE_NONET;
const int parseFlags = XML_PARSE_NONET | XML_PARSE_NOBLANKS;
uuid = g_strdup_printf("{%s}", snapshot->uuid);
@ -940,12 +940,14 @@ virVBoxSnapshotConfSaveVboxFile(virVBoxSnapshotConfMachine *machine,
xmlParserErrors parseError = XML_ERR_OK;
char *currentSnapshot = NULL;
char *timeStamp = NULL;
g_auto(GStrv) firstRegex = NULL;
int firstRegexResult = 0;
g_auto(GStrv) secondRegex = NULL;
int secondRegexResult = 0;
const int parseFlags = XML_PARSE_NONET;
const int parseFlags = XML_PARSE_NONET | XML_PARSE_NOBLANKS;
int oldIndentTreeOutput = xmlIndentTreeOutput;
xmlIndentTreeOutput = 1;
if (machine == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
@ -1127,6 +1129,8 @@ virVBoxSnapshotConfSaveVboxFile(virVBoxSnapshotConfMachine *machine,
ret = 0;
cleanup:
xmlIndentTreeOutput = oldIndentTreeOutput;
VIR_FREE(currentSnapshot);
VIR_FREE(timeStamp);