{
virStorageSourcePoolDef *source;
int ret = -1;
- g_autofree char *mode = NULL;
*srcpool = NULL;
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) {
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;
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 */
};