]> xenbits.xensource.com Git - libvirt.git/commitdiff
virStorageSourcePoolDef: Turn 'mode' member into proper enum type
authorPeter Krempa <pkrempa@redhat.com>
Thu, 12 Oct 2023 13:13:52 +0000 (15:13 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 17 Oct 2023 12:16:14 +0000 (14:16 +0200)
Use proper enum type and refactor the formatter accordingly.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/conf/domain_conf.c
src/conf/storage_source_conf.h

index 4435ee2ad406f477bc9440f18ffd06fdc2097990..d7f167a469991fa39d0080a1908dc54b653527a7 100644 (file)
@@ -7011,7 +7011,6 @@ virDomainDiskSourcePoolDefParse(xmlNodePtr node,
 {
     virStorageSourcePoolDef *source;
     int ret = -1;
-    g_autofree char *mode = NULL;
 
     *srcpool = NULL;
 
@@ -7019,7 +7018,6 @@ virDomainDiskSourcePoolDefParse(xmlNodePtr node,
 
     source->pool = virXMLPropString(node, "pool");
     source->volume = virXMLPropString(node, "volume");
-    mode = virXMLPropString(node, "mode");
 
     /* CD-ROM and Floppy allows no source */
     if (!source->pool && !source->volume) {
@@ -7033,13 +7031,11 @@ virDomainDiskSourcePoolDefParse(xmlNodePtr node,
         goto cleanup;
     }
 
-    if (mode &&
-        (source->mode = virStorageSourcePoolModeTypeFromString(mode)) <= 0) {
-        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                       _("unknown source mode '%1$s' for volume type disk"),
-                       mode);
+    if (virXMLPropEnum(node, "mode",
+                       virStorageSourcePoolModeTypeFromString,
+                       VIR_XML_PROP_NONZERO,
+                       &source->mode) < 0)
         goto cleanup;
-    }
 
     *srcpool = g_steal_pointer(&source);
     ret = 0;
index fc6c67f426956bd83de30fa9000a4da1daadb017..bfa8d625e594f15edff4098c025b9fbdbb7e4457 100644 (file)
@@ -201,7 +201,7 @@ struct _virStorageSourcePoolDef {
     int voltype; /* virStorageVolType, internal only */
     int pooltype; /* virStoragePoolType from storage_conf.h, internal only */
     virStorageType actualtype; /* internal only */
-    int mode; /* virStorageSourcePoolMode, currently makes sense only for iscsi pool */
+    virStorageSourcePoolMode mode; /* currently makes sense only for iscsi pool */
 };