Allow the callers to pass down libvirt-internal flags.
static virStorageVolDefPtr
virStorageVolDefParseXML(virStoragePoolDefPtr pool,
- xmlXPathContextPtr ctxt)
+ xmlXPathContextPtr ctxt,
+ unsigned int flags)
{
virStorageVolDefPtr ret;
virStorageVolOptionsPtr options;
size_t i;
int n;
+ virCheckFlags(0, NULL);
+
options = virStorageVolOptionsForPoolType(pool->type);
if (options == NULL)
return NULL;
virStorageVolDefPtr
virStorageVolDefParseNode(virStoragePoolDefPtr pool,
xmlDocPtr xml,
- xmlNodePtr root)
+ xmlNodePtr root,
+ unsigned int flags)
{
xmlXPathContextPtr ctxt = NULL;
virStorageVolDefPtr def = NULL;
}
ctxt->node = root;
- def = virStorageVolDefParseXML(pool, ctxt);
+ def = virStorageVolDefParseXML(pool, ctxt, flags);
cleanup:
xmlXPathFreeContext(ctxt);
return def;
static virStorageVolDefPtr
virStorageVolDefParse(virStoragePoolDefPtr pool,
const char *xmlStr,
- const char *filename)
+ const char *filename,
+ unsigned int flags)
{
virStorageVolDefPtr ret = NULL;
xmlDocPtr xml;
if ((xml = virXMLParse(filename, xmlStr, _("(storage_volume_definition)")))) {
- ret = virStorageVolDefParseNode(pool, xml, xmlDocGetRootElement(xml));
+ ret = virStorageVolDefParseNode(pool, xml, xmlDocGetRootElement(xml), flags);
xmlFreeDoc(xml);
}
virStorageVolDefPtr
virStorageVolDefParseString(virStoragePoolDefPtr pool,
- const char *xmlStr)
+ const char *xmlStr,
+ unsigned int flags)
{
- return virStorageVolDefParse(pool, xmlStr, NULL);
+ return virStorageVolDefParse(pool, xmlStr, NULL, flags);
}
virStorageVolDefPtr
virStorageVolDefParseFile(virStoragePoolDefPtr pool,
- const char *filename)
+ const char *filename,
+ unsigned int flags)
{
- return virStorageVolDefParse(pool, NULL, filename);
+ return virStorageVolDefParse(pool, NULL, filename, flags);
}
static void
virStorageVolDefPtr
virStorageVolDefParseString(virStoragePoolDefPtr pool,
- const char *xml);
+ const char *xml,
+ unsigned int flags);
virStorageVolDefPtr
virStorageVolDefParseFile(virStoragePoolDefPtr pool,
- const char *filename);
+ const char *filename,
+ unsigned int flags);
virStorageVolDefPtr
virStorageVolDefParseNode(virStoragePoolDefPtr pool,
xmlDocPtr xml,
- xmlNodePtr root);
+ xmlNodePtr root,
+ unsigned int flags);
char *virStorageVolDefFormat(virStoragePoolDefPtr pool,
virStorageVolDefPtr def);
}
/* Parse config */
- def = virStorageVolDefParseString(&poolDef, xmldesc);
+ def = virStorageVolDefParseString(&poolDef, xmldesc, 0);
if (!def)
goto cleanup;
goto cleanup;
/* Parse config */
- def = virStorageVolDefParseString(&poolDef, xmldesc);
+ def = virStorageVolDefParseString(&poolDef, xmldesc, 0);
if (!def)
goto cleanup;
char *xml_path = NULL;
if (xmlfile)
- privvol = virStorageVolDefParseFile(pool->def, xmlfile);
+ privvol = virStorageVolDefParseFile(pool->def, xmlfile, 0);
else
- privvol = virStorageVolDefParseString(pool->def, xmldesc);
+ privvol = virStorageVolDefParseString(pool->def, xmldesc, 0);
if (privvol == NULL)
goto cleanup;
goto cleanup;
}
- privvol = virStorageVolDefParseString(privpool->def, xmldesc);
+ privvol = virStorageVolDefParseString(privpool->def, xmldesc, 0);
if (privvol == NULL)
goto cleanup;
goto err;
}
- if ((voldef = virStorageVolDefParseString(spdef, xml)) == NULL) {
+ if ((voldef = virStorageVolDefParseString(spdef, xml, 0)) == NULL) {
VIR_ERROR(_("Error parsing volume XML."));
goto err;
}
if ((backend = virStorageBackendForType(pool->def->type)) == NULL)
goto cleanup;
- voldef = virStorageVolDefParseString(pool->def, xmldesc);
+ voldef = virStorageVolDefParseString(pool->def, xmldesc, 0);
if (voldef == NULL)
goto cleanup;
goto cleanup;
}
- newvol = virStorageVolDefParseString(pool->def, xmldesc);
+ newvol = virStorageVolDefParseString(pool->def, xmldesc, 0);
if (newvol == NULL)
goto cleanup;
if (!node)
goto error;
- def = virStorageVolDefParseNode(pool->def, ctxt->doc, node);
+ def = virStorageVolDefParseNode(pool->def, ctxt->doc, node, 0);
if (!def)
goto error;
goto cleanup;
}
- privvol = virStorageVolDefParseString(privpool->def, xmldesc);
+ privvol = virStorageVolDefParseString(privpool->def, xmldesc, 0);
if (privvol == NULL)
goto cleanup;
goto cleanup;
}
- privvol = virStorageVolDefParseString(privpool->def, xmldesc);
+ privvol = virStorageVolDefParseString(privpool->def, xmldesc, 0);
if (privvol == NULL)
goto cleanup;
memset(&poolDef, 0, sizeof(poolDef));
poolDef.type = VIR_STORAGE_POOL_DIR;
- if ((def = virStorageVolDefParseString(&poolDef, xml)) == NULL)
+ if ((def = virStorageVolDefParseString(&poolDef, xml, 0)) == NULL)
goto cleanup;
if (!def->name ||
if (!(pool = virStoragePoolDefParseString(poolXmlData)))
goto cleanup;
- if (!(vol = virStorageVolDefParseString(pool, volXmlData)))
+ if (!(vol = virStorageVolDefParseString(pool, volXmlData, 0)))
goto cleanup;
if (VIR_STRDUP(output, test.output) < 0)
goto cleanup;
}
- if (!(vol = virStorageVolDefParseString(pool, volXmlData)))
+ if (!(vol = virStorageVolDefParseString(pool, volXmlData, 0)))
goto cleanup;
if (inputvolxml &&
- !(inputvol = virStorageVolDefParseString(inputpool, inputvolXmlData)))
+ !(inputvol = virStorageVolDefParseString(inputpool, inputvolXmlData, 0)))
goto cleanup;
testSetVolumeType(vol, pool);
static int
testCompareXMLToXMLFiles(const char *poolxml, const char *inxml,
- const char *outxml)
+ const char *outxml, unsigned int flags)
{
char *poolXmlData = NULL;
char *inXmlData = NULL;
if (!(pool = virStoragePoolDefParseString(poolXmlData)))
goto fail;
- if (!(dev = virStorageVolDefParseString(pool, inXmlData)))
+ if (!(dev = virStorageVolDefParseString(pool, inXmlData, flags)))
goto fail;
if (!(actual = virStorageVolDefFormat(pool, dev)))
struct testInfo {
const char *pool;
const char *name;
+ unsigned int flags;
};
static int
goto cleanup;
}
- result = testCompareXMLToXMLFiles(poolxml, inxml, outxml);
+ result = testCompareXMLToXMLFiles(poolxml, inxml, outxml, info->flags);
cleanup:
VIR_FREE(poolxml);
{
int ret = 0;
-#define DO_TEST(pool, name) \
+#define DO_TEST_FULL(pool, name, flags) \
do { \
- struct testInfo info = { pool, name }; \
+ struct testInfo info = { pool, name, flags }; \
if (virtTestRun("Storage Vol XML-2-XML " name, \
testCompareXMLToXMLHelper, &info) < 0) \
ret = -1; \
} \
while (0);
+#define DO_TEST(pool, name) DO_TEST_FULL(pool, name, 0)
+
DO_TEST("pool-dir", "vol-file");
DO_TEST("pool-dir", "vol-file-naming");
DO_TEST("pool-dir", "vol-file-backing");