[PATCH 19/31] virNodeDeviceCapVPDParseXML: Fix error reporting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Don't overwrite already reported errors and improve parsing of
attributes.

Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx>
---
 src/conf/node_device_conf.c | 22 +++++++---------------
 1 file changed, 7 insertions(+), 15 deletions(-)

diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
index 0f2c341967..c68ac3af78 100644
--- a/src/conf/node_device_conf.c
+++ b/src/conf/node_device_conf.c
@@ -1059,11 +1059,11 @@ virNodeDeviceCapVPDParseXML(xmlXPathContextPtr ctxt, virPCIVPDResource **res)

     if (!(newres->name = virXPathString("string(./name)", ctxt))) {
         virReportError(VIR_ERR_XML_ERROR, "%s",
-                _("Could not read a device name from the <name> element"));
+                       _("Could not read a device name from the <name> element"));
         return -1;
     }

-    if ((nfields = virXPathNodeSet("./fields[@access]", ctxt, &nodes)) < 0)
+    if ((nfields = virXPathNodeSet("./fields", ctxt, &nodes)) < 0)
         return -1;

     for (i = 0; i < nfields; i++) {
@@ -1071,27 +1071,19 @@ virNodeDeviceCapVPDParseXML(xmlXPathContextPtr ctxt, virPCIVPDResource **res)
         VIR_XPATH_NODE_AUTORESTORE(ctxt);

         ctxt->node = nodes[i];
-        if (!(access = virXPathString("string(./@access[1])", ctxt))) {
-            virReportError(VIR_ERR_XML_ERROR, "%s",
-                    _("VPD fields access type parsing has failed"));
+
+        if (!(access = virXMLPropStringRequired(nodes[i], "access")))
             return -1;
-        }

         if (STREQ(access, "readonly")) {
-            if (virNodeDeviceCapVPDParseReadOnlyFields(ctxt, newres) < 0) {
-                virReportError(VIR_ERR_XML_ERROR,
-                        _("Could not parse %1$s VPD resource fields"), access);
+            if (virNodeDeviceCapVPDParseReadOnlyFields(ctxt, newres) < 0)
                 return -1;
-            }
         } else if (STREQ(access, "readwrite")) {
-            if (virNodeDeviceCapVPDParseReadWriteFields(ctxt, newres) < 0) {
-                virReportError(VIR_ERR_XML_ERROR,
-                        _("Could not parse %1$s VPD resource fields"), access);
+            if (virNodeDeviceCapVPDParseReadWriteFields(ctxt, newres) < 0)
                 return -1;
-            }
         } else {
             virReportError(VIR_ERR_XML_ERROR,
-                           _("Unsupported VPD field access type specified %1$s"),
+                           _("Unsupported VPD field access type '%1$s'"),
                            access);
             return -1;
         }
-- 
2.43.0
_______________________________________________
Devel mailing list -- devel@xxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxx




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux