mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-26 14:03:49 +03:00
snapshot: Add internal option to validate XML against schema
Similar to VIR_DOMAIN_DEF_PARSE_VALIDATE_SCHEMA; the next patch will put it to use with a counterpart public API flag. No need to change qemudomainsnapshotxml2xmltest to use the flag, since the testsuite already has a separate virschematest that does the same. Signed-off-by: Eric Blake <eblake@redhat.com> Acked-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
parent
4cc5679e91
commit
88ae8b8b0c
@ -25,6 +25,7 @@
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "configmake.h"
|
||||
#include "internal.h"
|
||||
#include "virbitmap.h"
|
||||
#include "virbuffer.h"
|
||||
@ -409,6 +410,18 @@ virDomainSnapshotDefParseNode(xmlDocPtr xml,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (flags & VIR_DOMAIN_SNAPSHOT_PARSE_VALIDATE) {
|
||||
VIR_AUTOFREE(char *) schema = NULL;
|
||||
|
||||
schema = virFileFindResource("domainsnapshot.rng",
|
||||
abs_top_srcdir "/docs/schemas",
|
||||
PKGDATADIR "/schemas");
|
||||
if (!schema)
|
||||
goto cleanup;
|
||||
if (virXMLValidateAgainstSchema(schema, xml) < 0)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ctxt = xmlXPathNewContext(xml);
|
||||
if (ctxt == NULL) {
|
||||
virReportOOMError();
|
||||
|
@ -92,6 +92,7 @@ typedef enum {
|
||||
VIR_DOMAIN_SNAPSHOT_PARSE_DISKS = 1 << 1,
|
||||
VIR_DOMAIN_SNAPSHOT_PARSE_INTERNAL = 1 << 2,
|
||||
VIR_DOMAIN_SNAPSHOT_PARSE_OFFLINE = 1 << 3,
|
||||
VIR_DOMAIN_SNAPSHOT_PARSE_VALIDATE = 1 << 4,
|
||||
} virDomainSnapshotParseFlags;
|
||||
|
||||
typedef enum {
|
||||
|
Loading…
x
Reference in New Issue
Block a user