]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: domain: Convert virDomainDiskDef's 'tray_status' to virDomainDiskTray
authorPeter Krempa <pkrempa@redhat.com>
Fri, 16 Apr 2021 08:46:00 +0000 (10:46 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 16 Apr 2021 15:28:06 +0000 (17:28 +0200)
Use the appropriate type for the variable and refactor the XML parser to
parse it correctly using virXMLPropEnum.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Tim Wiederhake <twiederh@redhat.com>
src/conf/domain_conf.c
src/conf/domain_conf.h

index 858ef5db9d27580bda33ee87277e7d7a112007cd..0128c9d480def325e8d39620146433fc5613ed4e 100644 (file)
@@ -9344,7 +9344,6 @@ virDomainDiskDefParseXML(virDomainXMLOption *xmlopt,
     g_autofree char *bus = NULL;
     g_autofree char *serial = NULL;
     g_autofree char *startupPolicy = NULL;
-    g_autofree char *tray = NULL;
     g_autofree char *removable = NULL;
     g_autofree char *logical_block_size = NULL;
     g_autofree char *physical_block_size = NULL;
@@ -9415,7 +9414,9 @@ virDomainDiskDefParseXML(virDomainXMLOption *xmlopt,
                    virXMLNodeNameEqual(cur, "target")) {
             target = virXMLPropString(cur, "dev");
             bus = virXMLPropString(cur, "bus");
-            tray = virXMLPropString(cur, "tray");
+            if (virXMLPropEnum(cur, "tray", virDomainDiskTrayTypeFromString,
+                               VIR_XML_PROP_OPTIONAL, &def->tray_status) < 0)
+                return NULL;
             removable = virXMLPropString(cur, "removable");
             rotation_rate = virXMLPropString(cur, "rotation_rate");
 
@@ -9634,14 +9635,6 @@ virDomainDiskDefParseXML(virDomainXMLOption *xmlopt,
         }
     }
 
-    if (tray) {
-        if ((def->tray_status = virDomainDiskTrayTypeFromString(tray)) < 0) {
-            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                           _("unknown disk tray status '%s'"), tray);
-            return NULL;
-        }
-    }
-
     if (removable) {
         if ((def->removable = virTristateSwitchTypeFromString(removable)) < 0) {
             virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
index f610e78e3af9704db3c678091bf4f76bbb4ae104..2f8ef7402092713fdd9baade7315ef5331d3c51f 100644 (file)
@@ -537,7 +537,7 @@ struct _virDomainDiskDef {
     int device; /* enum virDomainDiskDevice */
     int bus; /* enum virDomainDiskBus */
     char *dst;
-    int tray_status; /* enum virDomainDiskTray */
+    virDomainDiskTray tray_status;
     int removable; /* enum virTristateSwitch */
     unsigned int rotation_rate;