1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-07 17:28:15 +00:00

virDomainBackupDiskDefParseXML: Use virXMLProp*

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
Tim Wiederhake 2021-04-21 14:07:59 +02:00 committed by Peter Krempa
parent 81e770c2f1
commit 14c803cb82

View File

@ -106,10 +106,6 @@ virDomainBackupDiskDefParseXML(xmlNodePtr node,
g_autofree char *type = NULL; g_autofree char *type = NULL;
g_autofree char *format = NULL; g_autofree char *format = NULL;
g_autofree char *idx = NULL; g_autofree char *idx = NULL;
g_autofree char *backup = NULL;
g_autofree char *state = NULL;
g_autofree char *backupmode = NULL;
int tmp;
xmlNodePtr srcNode; xmlNodePtr srcNode;
unsigned int storageSourceParseFlags = 0; unsigned int storageSourceParseFlags = 0;
bool internal = flags & VIR_DOMAIN_BACKUP_PARSE_INTERNAL; bool internal = flags & VIR_DOMAIN_BACKUP_PARSE_INTERNAL;
@ -127,15 +123,9 @@ virDomainBackupDiskDefParseXML(xmlNodePtr node,
def->backup = VIR_TRISTATE_BOOL_YES; def->backup = VIR_TRISTATE_BOOL_YES;
if ((backup = virXMLPropString(node, "backup"))) { if (virXMLPropTristateBool(node, "backup", VIR_XML_PROP_NONE,
if ((tmp = virTristateBoolTypeFromString(backup)) <= 0) { &def->backup) < 0)
virReportError(VIR_ERR_XML_ERROR,
_("invalid disk 'backup' state '%s'"), backup);
return -1; return -1;
}
def->backup = tmp;
}
/* don't parse anything else if backup is disabled */ /* don't parse anything else if backup is disabled */
if (def->backup == VIR_TRISTATE_BOOL_NO) if (def->backup == VIR_TRISTATE_BOOL_NO)
@ -146,30 +136,20 @@ virDomainBackupDiskDefParseXML(xmlNodePtr node,
def->exportbitmap = virXMLPropString(node, "exportbitmap"); def->exportbitmap = virXMLPropString(node, "exportbitmap");
} }
if ((backupmode = virXMLPropString(node, "backupmode"))) { if (virXMLPropEnum(node, "backupmode",
if ((tmp = virDomainBackupDiskBackupModeTypeFromString(backupmode)) < 0) { virDomainBackupDiskBackupModeTypeFromString,
virReportError(VIR_ERR_XML_ERROR, VIR_XML_PROP_NONE, &def->backupmode) < 0)
_("invalid backupmode '%s' of disk '%s'"),
backupmode, def->name);
return -1; return -1;
}
def->backupmode = tmp;
}
def->incremental = virXMLPropString(node, "incremental"); def->incremental = virXMLPropString(node, "incremental");
if (internal) { if (internal) {
if (!(state = virXMLPropString(node, "state")) || if (virXMLPropEnum(node, "state",
(tmp = virDomainBackupDiskStateTypeFromString(state)) < 0) { virDomainBackupDiskStateTypeFromString,
virReportError(VIR_ERR_INTERNAL_ERROR, VIR_XML_PROP_REQUIRED, &def->state) < 0)
_("disk '%s' backup state wrong or missing'"), def->name);
return -1; return -1;
} }
def->state = tmp;
}
type = virXMLPropString(node, "type"); type = virXMLPropString(node, "type");
format = virXPathString("string(./driver/@type)", ctxt); format = virXPathString("string(./driver/@type)", ctxt);
if (internal) if (internal)