]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virDomainHostdevSubsysSCSIHostDefParseXML: Use virXMLProp*
authorTim Wiederhake <twiederh@redhat.com>
Wed, 21 Apr 2021 15:51:29 +0000 (17:51 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 22 Apr 2021 09:24:53 +0000 (11:24 +0200)
Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/conf/domain_conf.c

index aef63464f03c05eb3c8ebe2d89d675dca6efd1a0..ae25772c0688997e4bb514e82052893849c16464 100644 (file)
@@ -7034,9 +7034,6 @@ virDomainHostdevSubsysSCSIHostDefParseXML(xmlNodePtr sourcenode,
                                           virDomainXMLOption *xmlopt)
 {
     virDomainHostdevSubsysSCSIHost *scsihostsrc = &scsisrc->u.host;
-    g_autofree char *bus = NULL;
-    g_autofree char *target = NULL;
-    g_autofree char *unit = NULL;
     xmlNodePtr addressnode = NULL;
     VIR_XPATH_NODE_AUTORESTORE(ctxt)
 
@@ -7048,32 +7045,17 @@ virDomainHostdevSubsysSCSIHostDefParseXML(xmlNodePtr sourcenode,
         return -1;
     }
 
-    if (!(bus = virXMLPropString(addressnode, "bus")) ||
-        !(target = virXMLPropString(addressnode, "target")) ||
-        !(unit = virXMLPropString(addressnode, "unit"))) {
-        virReportError(VIR_ERR_XML_ERROR, "%s",
-                       _("'bus', 'target', and 'unit' must be specified "
-                         "for scsi hostdev source address"));
-        return -1;
-    }
-
-    if (virStrToLong_uip(bus, NULL, 0, &scsihostsrc->bus) < 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("cannot parse bus '%s'"), bus);
+    if (virXMLPropUInt(addressnode, "bus", 0, VIR_XML_PROP_REQUIRED,
+                       &scsihostsrc->bus) < 0)
         return -1;
-    }
 
-    if (virStrToLong_uip(target, NULL, 0, &scsihostsrc->target) < 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("cannot parse target '%s'"), target);
+    if (virXMLPropUInt(addressnode, "target", 0, VIR_XML_PROP_REQUIRED,
+                       &scsihostsrc->target) < 0)
         return -1;
-    }
 
-    if (virStrToLong_ullp(unit, NULL, 0, &scsihostsrc->unit) < 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("cannot parse unit '%s'"), unit);
+    if (virXMLPropULongLong(addressnode, "unit", 0, VIR_XML_PROP_REQUIRED,
+                            &scsihostsrc->unit) < 0)
         return -1;
-    }
 
     if (!(scsihostsrc->adapter = virXPathString("string(./adapter/@name)", ctxt))) {
         virReportError(VIR_ERR_XML_ERROR, "%s",