On Tue, Jan 29, 2019 at 04:32:09PM +0100, Andrea Bolognani wrote:
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.
If we add model='virtio' we should always translate it back to
'virtio-scsi'. It's not a new model or new feature, it's just a
different name for existing model and we should not break management
applications that are already using 'virtio-scsi'. It would be
basically only alias. The question is whether it's useful, if
management application starts using 'virtio' when creating new guest it
would still had to be able to parse 'virtio-scsi' and my guess is that
it would not help at all.
Pavel
[...]
> @@ -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
--
libvir-list mailing list
libvir-list(a)redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list