]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: backup: Remove virDomainBackupDefParseNode
authorPeter Krempa <pkrempa@redhat.com>
Thu, 22 Sep 2022 16:02:50 +0000 (18:02 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 6 Oct 2022 08:54:25 +0000 (10:54 +0200)
Rename virDomainBackupDefParse to virDomainBackupDefParseXML and use
it in place of virDomainBackupDefParseNode. This is possible as
virXMLParse can be used to replace XPath context allocation and root
node checking.

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

index 7dfc8ee63504a54b6fcd102b6aa0dc62eb9a440e..ad5633388dc196249d1e06d07627217d42d1edad 100644 (file)
@@ -190,10 +190,10 @@ virDomainBackupDefParsePrivate(virDomainBackupDef *def,
 }
 
 
-static virDomainBackupDef *
-virDomainBackupDefParse(xmlXPathContextPtr ctxt,
-                        virDomainXMLOption *xmlopt,
-                        unsigned int flags)
+virDomainBackupDef *
+virDomainBackupDefParseXML(xmlXPathContextPtr ctxt,
+                           virDomainXMLOption *xmlopt,
+                           unsigned int flags)
 {
     g_autoptr(virDomainBackupDef) def = NULL;
     g_autofree xmlNodePtr *nodes = NULL;
@@ -274,41 +274,20 @@ virDomainBackupDefParseString(const char *xmlStr,
                               virDomainXMLOption *xmlopt,
                               unsigned int flags)
 {
-    virDomainBackupDef *ret = NULL;
     g_autoptr(xmlDoc) xml = NULL;
+    g_autoptr(xmlXPathContext) ctxt = NULL;
     int keepBlanksDefault = xmlKeepBlanksDefault(0);
     bool validate = !(flags & VIR_DOMAIN_BACKUP_PARSE_INTERNAL);
 
-    if ((xml = virXMLParse(NULL, xmlStr, _("(domain_backup)"),
-                           NULL, NULL, "domainbackup.rng", validate))) {
-        xmlKeepBlanksDefault(keepBlanksDefault);
-        ret = virDomainBackupDefParseNode(xml, xmlDocGetRootElement(xml),
-                                          xmlopt, flags);
-    }
-    xmlKeepBlanksDefault(keepBlanksDefault);
-
-    return ret;
-}
-
+    xml = virXMLParse(NULL, xmlStr, _("(domain_backup)"),
+                      "domainbackup", &ctxt, "domainbackup.rng", validate);
 
-virDomainBackupDef *
-virDomainBackupDefParseNode(xmlDocPtr xml,
-                            xmlNodePtr root,
-                            virDomainXMLOption *xmlopt,
-                            unsigned int flags)
-{
-    g_autoptr(xmlXPathContext) ctxt = NULL;
-
-    if (!virXMLNodeNameEqual(root, "domainbackup")) {
-        virReportError(VIR_ERR_XML_ERROR, "%s", _("domainbackup"));
-        return NULL;
-    }
+    xmlKeepBlanksDefault(keepBlanksDefault);
 
-    if (!(ctxt = virXMLXPathContextNew(xml)))
+    if (!xml)
         return NULL;
 
-    ctxt->node = root;
-    return virDomainBackupDefParse(ctxt, xmlopt, flags);
+    return virDomainBackupDefParseXML(ctxt, xmlopt, flags);
 }
 
 
index dc66b75892be554ae725f70067b7445a0b84210d..9c3532a5462e45cc5695e2df014fd140d8d1fbba 100644 (file)
@@ -105,16 +105,16 @@ typedef enum {
     VIR_DOMAIN_BACKUP_PARSE_INTERNAL = 1 << 0,
 } virDomainBackupParseFlags;
 
+virDomainBackupDef *
+virDomainBackupDefParseXML(xmlXPathContextPtr ctxt,
+                           virDomainXMLOption *xmlopt,
+                           unsigned int flags);
+
 virDomainBackupDef *
 virDomainBackupDefParseString(const char *xmlStr,
                               virDomainXMLOption *xmlopt,
                               unsigned int flags);
 
-virDomainBackupDef *
-virDomainBackupDefParseNode(xmlDocPtr xml,
-                            xmlNodePtr root,
-                            virDomainXMLOption *xmlopt,
-                            unsigned int flags);
 void
 virDomainBackupDefFree(virDomainBackupDef *def);
 
index 6334cbb448e7b472bba0e4e2ac08b19336e24496..0adcf20f0cafdd7c305e88ce2264eb2dcc748966 100644 (file)
@@ -46,8 +46,8 @@ virAccessPermStorageVolTypeToString;
 virDomainBackupAlignDisks;
 virDomainBackupDefFormat;
 virDomainBackupDefFree;
-virDomainBackupDefParseNode;
 virDomainBackupDefParseString;
+virDomainBackupDefParseXML;
 
 
 # conf/capabilities.h
index 858d14af6a0f5d7e847bc874e0c0a1314a5a38fb..4c14fc2aef85d6d4dc87af81c4e935fac81e75a1 100644 (file)
@@ -2860,6 +2860,7 @@ static int
 qemuDomainObjPrivateXMLParseBackups(qemuDomainObjPrivate *priv,
                                     xmlXPathContextPtr ctxt)
 {
+    VIR_XPATH_NODE_AUTORESTORE(ctxt)
     g_autofree xmlNodePtr *nodes = NULL;
     ssize_t nnodes = 0;
 
@@ -2875,9 +2876,11 @@ qemuDomainObjPrivateXMLParseBackups(qemuDomainObjPrivate *priv,
     if (nnodes == 0)
         return 0;
 
-    if (!(priv->backup = virDomainBackupDefParseNode(ctxt->doc, nodes[0],
-                                                     priv->driver->xmlopt,
-                                                     VIR_DOMAIN_BACKUP_PARSE_INTERNAL)))
+    ctxt->node = nodes[0];
+
+    if (!(priv->backup = virDomainBackupDefParseXML(ctxt,
+                                                    priv->driver->xmlopt,
+                                                    VIR_DOMAIN_BACKUP_PARSE_INTERNAL)))
         return -1;
 
     return 0;