if (!(poolxml = virStoragePoolGetXMLDesc(pool, 0)))
return -1;
- if (!(pooldef = virStoragePoolDefParseString(poolxml)))
+ if (!(pooldef = virStoragePoolDefParseString(poolxml, 0)))
return -1;
src->srcpool->pooltype = pooldef->type;
static virStoragePoolDef *
virStoragePoolDefParse(const char *xmlStr,
- const char *filename)
+ const char *filename,
+ unsigned int flags)
{
virStoragePoolDef *ret = NULL;
g_autoptr(xmlDoc) xml = NULL;
- if ((xml = virXMLParse(filename, xmlStr, _("(storage_pool_definition)"), NULL, false))) {
+ if ((xml = virXMLParse(filename, xmlStr, _("(storage_pool_definition)"),
+ "storagepool.rng", flags & VIR_STORAGE_POOL_DEFINE_VALIDATE))) {
ret = virStoragePoolDefParseNode(xml, xmlDocGetRootElement(xml));
}
virStoragePoolDef *
-virStoragePoolDefParseString(const char *xmlStr)
+virStoragePoolDefParseString(const char *xmlStr,
+ unsigned int flags)
{
- return virStoragePoolDefParse(xmlStr, NULL);
+ return virStoragePoolDefParse(xmlStr, NULL, flags);
}
virStoragePoolDef *
virStoragePoolDefParseFile(const char *filename)
{
- return virStoragePoolDefParse(NULL, filename);
+ return virStoragePoolDefParse(NULL, filename, 0);
}
virStoragePoolDefParseXML(xmlXPathContextPtr ctxt);
virStoragePoolDef *
-virStoragePoolDefParseString(const char *xml);
+virStoragePoolDefParseString(const char *xml,
+ unsigned int flags);
virStoragePoolDef *
virStoragePoolDefParseFile(const char *filename);
VIR_EXCLUSIVE_FLAGS_RET(VIR_STORAGE_POOL_BUILD_OVERWRITE,
VIR_STORAGE_POOL_BUILD_NO_OVERWRITE, NULL);
- if (!(newDef = virStoragePoolDefParseString(xml)))
+ if (!(newDef = virStoragePoolDefParseString(xml, 0)))
goto cleanup;
if (virStoragePoolCreateXMLEnsureACL(conn, newDef) < 0)
virCheckFlags(0, NULL);
- if (!(newDef = virStoragePoolDefParseString(xml)))
+ if (!(newDef = virStoragePoolDefParseString(xml, 0)))
goto cleanup;
if (virXMLCheckIllegalChars("name", newDef->name, "\n") < 0)
virCheckFlags(0, NULL);
virObjectLock(privconn);
- if (!(newDef = virStoragePoolDefParseString(xml)))
+ if (!(newDef = virStoragePoolDefParseString(xml, 0)))
goto cleanup;
if (!(obj = virStoragePoolObjListAdd(privconn->pools, newDef,
virCheckFlags(0, NULL);
virObjectLock(privconn);
- if (!(newDef = virStoragePoolDefParseString(xml)))
+ if (!(newDef = virStoragePoolDefParseString(xml, 0)))
goto cleanup;
newDef->capacity = defaultPoolCap;