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;
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");
}
}
- 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,
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;