]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: interface: Remove virInterfaceDefParseNode
authorPeter Krempa <pkrempa@redhat.com>
Fri, 23 Sep 2022 11:07:36 +0000 (13:07 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 6 Oct 2022 08:54:25 +0000 (10:54 +0200)
Both callers be easily made to call virInterfaceDefParseXML directly.

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

index a3f6b6bed6a4f0cf8076bb7230bc0a52279900a7..628199c6f399bd7855c9f7d9098db1c35077c939 100644 (file)
@@ -33,9 +33,6 @@ VIR_ENUM_IMPL(virInterface,
               "ethernet", "bridge", "bond", "vlan",
 );
 
-static virInterfaceDef *
-virInterfaceDefParseXML(xmlXPathContextPtr ctxt, int parentIfType);
-
 static int
 virInterfaceDefDevFormat(virBuffer *buf, const virInterfaceDef *def,
                          virInterfaceType parentIfType);
@@ -565,7 +562,7 @@ virInterfaceDefParseVlan(virInterfaceDef *def,
 }
 
 
-static virInterfaceDef *
+virInterfaceDef *
 virInterfaceDefParseXML(xmlXPathContextPtr ctxt,
                         int parentIfType)
 {
@@ -672,42 +669,20 @@ virInterfaceDefParseXML(xmlXPathContextPtr ctxt,
 }
 
 
-virInterfaceDef *
-virInterfaceDefParseNode(xmlDocPtr xml,
-                         xmlNodePtr root)
-{
-    g_autoptr(xmlXPathContext) ctxt = NULL;
-
-    if (!virXMLNodeNameEqual(root, "interface")) {
-        virReportError(VIR_ERR_XML_ERROR,
-                       _("unexpected root element <%s>, "
-                         "expecting <interface>"),
-                       root->name);
-        return NULL;
-    }
-
-    if (!(ctxt = virXMLXPathContextNew(xml)))
-        return NULL;
-
-    ctxt->node = root;
-    return virInterfaceDefParseXML(ctxt, VIR_INTERFACE_TYPE_LAST);
-}
-
-
 static virInterfaceDef *
 virInterfaceDefParse(const char *xmlStr,
                      const char *filename,
                      unsigned int flags)
 {
     g_autoptr(xmlDoc) xml = NULL;
+    g_autoptr(xmlXPathContext) ctxt = NULL;
     bool validate = flags & VIR_INTERFACE_DEFINE_VALIDATE;
 
-    xml = virXMLParse(filename, xmlStr, _("(interface_definition)"),
-                      NULL, NULL, "interface.rng", validate);
-    if (!xml)
+    if (!(xml = virXMLParse(filename, xmlStr, _("(interface_definition)"),
+                            "interface", &ctxt, "interface.rng", validate)))
         return NULL;
 
-    return virInterfaceDefParseNode(xml, xmlDocGetRootElement(xml));
+    return virInterfaceDefParseXML(ctxt, VIR_INTERFACE_TYPE_LAST);
 }
 
 
index fa6bce9a00d0a0aec4dd1b28be0b722ce83228be..b8927d7b4f0c1508cda2c9b80f72afec2d77b876 100644 (file)
@@ -162,8 +162,8 @@ virInterfaceDef *
 virInterfaceDefParseFile(const char *filename);
 
 virInterfaceDef *
-virInterfaceDefParseNode(xmlDocPtr xml,
-                         xmlNodePtr root);
+virInterfaceDefParseXML(xmlXPathContextPtr ctxt,
+                        int parentIfType);
 
 char *
 virInterfaceDefFormat(const virInterfaceDef *def);
index 9cbbfef0937221d76f44f95871d62e8af7ecce93..1251bba89679ed7367d2cabf85824db536d6a165 100644 (file)
@@ -793,8 +793,8 @@ virDomainDiskDefValidateStartupPolicy;
 virInterfaceDefFormat;
 virInterfaceDefFree;
 virInterfaceDefParseFile;
-virInterfaceDefParseNode;
 virInterfaceDefParseString;
+virInterfaceDefParseXML;
 
 
 # conf/netdev_bandwidth_conf.h
index 72786da56800848ab32dcba996000cbd9959089a..5f98c05c34833fe1d795ecacc5cff4bd1582fdf1 100644 (file)
@@ -1110,6 +1110,7 @@ testParseInterfaces(testDriver *privconn,
                     const char *file,
                     xmlXPathContextPtr ctxt)
 {
+    VIR_XPATH_NODE_AUTORESTORE(ctxt)
     int num;
     size_t i;
     virInterfaceObj *obj;
@@ -1121,12 +1122,11 @@ testParseInterfaces(testDriver *privconn,
 
     for (i = 0; i < num; i++) {
         g_autoptr(virInterfaceDef) def = NULL;
-        xmlNodePtr node = testParseXMLDocFromFile(nodes[i], file);
-        if (!node)
+
+        if (!(ctxt->node = testParseXMLDocFromFile(nodes[i], file)))
             return -1;
 
-        def = virInterfaceDefParseNode(ctxt->doc, node);
-        if (!def)
+        if (!(def = virInterfaceDefParseXML(ctxt, VIR_INTERFACE_TYPE_LAST)))
             return -1;
 
         if (!(obj = virInterfaceObjListAssignDef(privconn->ifaces, &def)))