]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: storage: Remove virStorageVolDefParseNode
authorPeter Krempa <pkrempa@redhat.com>
Thu, 22 Sep 2022 15:17:21 +0000 (17:17 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 6 Oct 2022 08:54:24 +0000 (10:54 +0200)
Proper use of virXMLParse replaces everything the function provides.
Callers can use virStorageVolDefParseXML instead.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/conf/storage_conf.c
src/conf/storage_conf.h
src/libvirt_private.syms
src/test/test_driver.c

index 0c095c73e08328df1d273f478824baa066652658..703149241a6a4b79e65729278c27cef3e437b71b 100644 (file)
@@ -1234,7 +1234,7 @@ virStorageCheckCompat(const char *compat)
 }
 
 
-static virStorageVolDef *
+virStorageVolDef *
 virStorageVolDefParseXML(virStoragePoolDef *pool,
                          xmlXPathContextPtr ctxt,
                          unsigned int flags)
@@ -1401,45 +1401,20 @@ virStorageVolDefParseXML(virStoragePoolDef *pool,
 }
 
 
-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);
 }
 
 
index ead54ca7c64ecd7d51e8e34e147a49823c12247f..14167af7613eb4b35e2ca6ea157b8147f4be3f73 100644 (file)
@@ -297,10 +297,9 @@ virStorageVolDefParseFile(virStoragePoolDef *pool,
                           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,
index 8fec8d90272af5e3a73672853f372a7ae03ca0a5..3191c9d5f773c5c22440592fbda86da3756dfd2b 100644 (file)
@@ -1079,8 +1079,8 @@ virStorageVolDefFindByPath;
 virStorageVolDefFormat;
 virStorageVolDefFree;
 virStorageVolDefParseFile;
-virStorageVolDefParseNode;
 virStorageVolDefParseString;
+virStorageVolDefParseXML;
 virStorageVolDefRefreshAllocationTypeFromString;
 virStorageVolDefRefreshAllocationTypeToString;
 virStorageVolTypeFromString;
index 4245b32c156b5808fa01e52aec5e84459bceda9a..943c0834cd3f5ffdce5c9052f9b54ce07157d2ff 100644 (file)
@@ -1147,6 +1147,7 @@ testOpenVolumesForPool(const char *file,
                        xmlXPathContextPtr ctxt,
                        virStoragePoolObj *obj)
 {
+    VIR_XPATH_NODE_AUTORESTORE(ctxt)
     virStoragePoolDef *def = virStoragePoolObjGetDef(obj);
     size_t i;
     int num;
@@ -1158,11 +1159,10 @@ testOpenVolumesForPool(const char *file,
         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) {