virStorageSourcePoolDef: Turn 'mode' member into proper enum type

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>
This commit is contained in:
Peter Krempa 2023-10-12 15:13:52 +02:00
parent 3822424459
commit 31274a1eda
2 changed files with 5 additions and 9 deletions

View 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;

View 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 */
};