
On Wed, 2019-01-23 at 16:32 -0500, Cole Robinson wrote: [...]
+++ b/docs/schemas/domaincommon.rng @@ -2153,6 +2153,8 @@ <value>ibmvscsi</value> <value>virtio-scsi</value> <value>lsisas1078</value> + <value>virtio-transitional</value> + <value>virtio-non-transitional</value>
As mentioned during the previous round of reviews, I think we should support model='virtio' (which would behave the same as the existing model='virtio-scsi') in order to have a nice, consistent experience for users and management application developers. [...]
@@ -4859,11 +4862,12 @@ virDomainDeviceDefPostParseCommon(virDomainDeviceDefPtr dev, virDomainControllerDefPtr cdev = dev->data.controller;
if (cdev->iothread && - cdev->model != VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_SCSI) { - virReportError(VIR_ERR_XML_ERROR, + cdev->model != VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_SCSI && + cdev->model != VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_TRANSITIONAL && + cdev->model != VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_NON_TRANSITIONAL) { + virReportError(VIR_ERR_XML_ERROR, "%s", _("'iothread' attribute only supported for " - "controller model '%s'"), - virDomainControllerModelSCSITypeToString(VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_SCSI)); + "virtio scsi controllers")); return -1; }
You could also use virReportError(VIR_ERR_XML_ERROR, _("'iothread' attribute not supported for " "controller model '%s'"), virDomainControllerModelSCSITypeToString(cdev->model)); I usually prefer that pattern, but either way works. A more interesting change would be to move this check... [...]
qemuDomainDeviceDefValidateControllerAttributes(const virDomainControllerDef *controller) { if (!(controller->type == VIR_DOMAIN_CONTROLLER_TYPE_SCSI && - controller->model == VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_SCSI)) { + (controller->model == VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_SCSI || + controller->model == VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_TRANSITIONAL || + controller->model == VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_NON_TRANSITIONAL))) { if (controller->queues) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("'queues' is only supported by virtio-scsi controller"));
... here in a small preparatory patch, which will also lead to adding the new models to one less location in this one. But again, that's just bikeshedding and either way is fine :) -- Andrea Bolognani / Red Hat / Virtualization