When the new storage was created using virsh with --validate option
following errors occurred:
# virsh vol-create default --file vol-def.xml --validate
error: Failed to create vol from vol-def.xml
error: unsupported flags (0x4) in function virStorageVolDefParseXML
and after virStorageVolDefParse fix:
# virsh vol-create default --file vol-def.xml --validate
error: Failed to create vol from vol-def.xml
error: unsupported flags (0x4) in function storageBackendCreateQemuImg
Clear the VIR_VOL_XML_PARSE_VALIDATE flag before
virStorageVolDefParseXML() and the VIR_STORAGE_VOL_CREATE_VALIDATE before
backend->buildVol() (traces down to storageBackendCreateQemuImg) calls,
as the XML schema validation is already complete within previous steps
and there is no validation later.
Signed-off-by: Kirill Shchetiniuk <kshcheti@redhat.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
"volume", &ctxt, "storagevol.rng", validate)))
return NULL;
+ flags &= ~VIR_VOL_XML_PARSE_VALIDATE;
+
return virStorageVolDefParseXML(pool, ctxt, flags);
}
if (backend->buildVol) {
int buildret;
virStorageVolDef *buildvoldef = NULL;
+ unsigned int buildFlags = flags;
buildvoldef = g_new0(virStorageVolDef, 1);
voldef->building = true;
virObjectUnlock(obj);
- buildret = backend->buildVol(obj, buildvoldef, flags);
+ buildFlags &= ~VIR_STORAGE_VOL_CREATE_VALIDATE;
+ buildret = backend->buildVol(obj, buildvoldef, buildFlags);
VIR_FREE(buildvoldef);