}
-static virStorageVolDef *
+virStorageVolDef *
virStorageVolDefParseXML(virStoragePoolDef *pool,
xmlXPathContextPtr ctxt,
unsigned int flags)
}
-virStorageVolDef *
-virStorageVolDefParseNode(virStoragePoolDef *pool,
- xmlDocPtr xml,
- xmlNodePtr root,
- unsigned int flags)
-{
- g_autoptr(xmlXPathContext) ctxt = NULL;
-
- if (!virXMLNodeNameEqual(root, "volume")) {
- virReportError(VIR_ERR_XML_ERROR,
- _("unexpected root element <%s>, "
- "expecting <volume>"),
- root->name);
- return NULL;
- }
-
- if (!(ctxt = virXMLXPathContextNew(xml)))
- return NULL;
-
- ctxt->node = root;
- return virStorageVolDefParseXML(pool, ctxt, flags);
-}
-
-
static virStorageVolDef *
virStorageVolDefParse(virStoragePoolDef *pool,
const char *xmlStr,
const char *filename,
unsigned int flags)
{
- virStorageVolDef *ret = NULL;
g_autoptr(xmlDoc) xml = NULL;
+ g_autoptr(xmlXPathContext) ctxt = NULL;
- if ((xml = virXMLParse(filename, xmlStr, _("(storage_volume_definition)"),
- NULL, NULL, NULL, false))) {
- ret = virStorageVolDefParseNode(pool, xml, xmlDocGetRootElement(xml), flags);
- }
+ if (!(xml = virXMLParse(filename, xmlStr, _("(storage_volume_definition)"),
+ "volume", &ctxt, NULL, false)))
+ return NULL;
- return ret;
+ return virStorageVolDefParseXML(pool, ctxt, flags);
}
unsigned int flags);
virStorageVolDef *
-virStorageVolDefParseNode(virStoragePoolDef *pool,
- xmlDocPtr xml,
- xmlNodePtr root,
- unsigned int flags);
+virStorageVolDefParseXML(virStoragePoolDef *pool,
+ xmlXPathContextPtr ctxt,
+ unsigned int flags);
char *
virStorageVolDefFormat(virStoragePoolDef *pool,
virStorageVolDefFormat;
virStorageVolDefFree;
virStorageVolDefParseFile;
-virStorageVolDefParseNode;
virStorageVolDefParseString;
+virStorageVolDefParseXML;
virStorageVolDefRefreshAllocationTypeFromString;
virStorageVolDefRefreshAllocationTypeToString;
virStorageVolTypeFromString;
xmlXPathContextPtr ctxt,
virStoragePoolObj *obj)
{
+ VIR_XPATH_NODE_AUTORESTORE(ctxt)
virStoragePoolDef *def = virStoragePoolObjGetDef(obj);
size_t i;
int num;
return -1;
for (i = 0; i < num; i++) {
- xmlNodePtr node = testParseXMLDocFromFile(nodes[i], file);
- if (!node)
+ if (!(ctxt->node = testParseXMLDocFromFile(nodes[i], file)))
return -1;
- if (!(volDef = virStorageVolDefParseNode(def, ctxt->doc, node, 0)))
+ if (!(volDef = virStorageVolDefParseXML(def, ctxt, 0)))
return -1;
if (!volDef->target.path) {