libvirt/tests
Laine Stump eadd757cce qemu: log error when domain has an unsupported IDE controller
We have previously effectively ignored all <controller type='ide'>
elements in a domain definition.

On the i440fx-based machinetypes there is an IDE controller that is
included in the chipset and can't be removed (which is the ide
controller with index='0'>), so it makes sense to ignore that one
controller. However, if an i440fx domain definition has a 2nd
controller, nothing catches this error (unless you also have a disk
attached to it, in which case qemu will complain that you're trying to
use the ide controller named "ide1", which doesn't exist), and if any
other type of domain has even a single controller defined, it will be
incorrectly ignored.

Ignoring a bogus controller definition isn't such a big problem, as
long as an error is logged when any disk is attached to that
non-existent controller. But in the case of q35-based machinetypes,
the hardcoded id ("alias" in libvirt terms) of its builtin SATA
controller is "ide", which happens to be the same id as the builtin
IDE controller on i440fx machinetypes. So libvirt creates a
commandline believing that it is connecting the disk to the builtin
(but actually nonexistent) IDE controller, qemu thinks that libvirt
wanted that disk connected to the builtin SATA controller, and
everybody is happy.

Until you try to connect a 2nd disk to the IDE controller. Then qemu
will complain that you're trying to set unit=1 on a controller that
requires unit=0 (SATA controllers are organized differently than IDE
controllers).

After this patch, if a domain has an IDE controller defined for a
machinetype that has no IDE controllers, libvirt will log an error
about the controller itself as it is building the qemu commandline
(rather than a (possible) error from qemu about disks attached to that
controller). This is done by adding IDE to the list of controller
types that are handled in the loop that creates controller command
strings in qemuBuildCommandline() (previously it would *always* skip
IDE controllers). Then qemuBuildControllerDevStr() is modified to log
an appropriate error in the case of IDE controllers.

In the future, if we add support for extra IDE controllers (piix3-ide
and/or piix4-ide) we can just add it into the IDE case in
qemuBuildControllerDevStr(). For now, nobody seems anxious to add
extra support for an aging and very slow controller, when there are so
many better options available.

Resolves:

https://bugzilla.redhat.com/show_bug.cgi?id=1176071 (Fedora)
2015-05-15 15:40:43 -04:00
..
bhyvexml2argvdata drvbhyve: Use boot-order for grub-bhyve boot device 2014-11-13 15:40:48 +01:00
bhyvexml2xmloutdata tests: add bhyve xml2xml test 2014-04-08 20:50:36 +04:00
capabilityschemadata capabilities: Format <domain/> properly 2014-12-24 18:01:44 +01:00
commanddata command: test umask support 2014-09-03 09:36:13 -06:00
confdata
cputestdata cpu: Add {Haswell,Broadwell}-noTSX CPU models 2015-03-26 09:19:59 +01:00
domaincapsschemadata qemu: Add AAVMF to the list of known UEFIs 2015-01-29 15:20:47 +01:00
domainconfdata
domainschemadata conf: Add support for parsing and formatting max memory and slot count 2015-03-23 14:25:14 +01:00
domainsnapshotxml2xmlin conf: split <disk> schema into more pieces 2014-04-16 10:45:55 +02:00
domainsnapshotxml2xmlout
fchostdata/fc_host
interfaceschemadata interface: clean up virInterfaceDefDevFormat 2014-06-20 11:50:41 +03:00
lxcconf2xmldata Use the network route definitions for domains 2015-01-16 10:14:03 +01:00
lxcxml2xmldata Use the network route definitions for domains 2015-01-16 10:14:03 +01:00
lxcxml2xmloutdata
networkxml2confdata network: Let domains be restricted to local DNS 2015-01-20 01:07:18 -05:00
networkxml2firewalldata Add test for converting network XML to iptables rules 2014-04-25 15:44:09 +01:00
networkxml2xmlin conf: new network bridge device attribute macTableManager 2014-12-08 14:41:37 -05:00
networkxml2xmlout conf: new network bridge device attribute macTableManager 2014-12-08 14:41:37 -05:00
networkxml2xmlupdatein
networkxml2xmlupdateout
nodedevschemadata SRIOV NIC offload feature discovery 2015-03-05 11:31:05 +01:00
nodeinfodata nodeinfodata: Remove broken symlinks and uneeded files 2015-04-02 11:12:01 +02:00
nwfilterxml2firewalldata nwfilter: Add support for icmpv6 filtering 2015-01-07 11:41:49 -05:00
nwfilterxml2xmlin nwfilter: Add support for icmpv6 filtering 2015-01-07 11:41:49 -05:00
nwfilterxml2xmlout nwfilter: Add support for icmpv6 filtering 2015-01-07 11:41:49 -05:00
qemuagentdata qemu: add test for qemuAgentGetFSInfo 2014-11-24 10:29:16 -05:00
qemucapabilitiesdata qemu: caps: Add capability bit for the "pc-dimm" device 2015-02-20 19:25:09 +01:00
qemucaps2xmldata qemucaps2xmltest: fix the test to correspond to new domain formatting 2015-03-24 16:44:08 +01:00
qemuhelpdata qemu: Don't try to parse -help for new QEMU 2014-11-13 21:25:50 +01:00
qemuhotplugtestdata video: cleanup usage of vram attribute and update documentation 2014-11-24 22:05:55 +01:00
qemumonitorjsondata
qemuxml2argvdata qemu: log error when domain has an unsupported IDE controller 2015-05-15 15:40:43 -04:00
qemuxml2xmloutdata qemu: log error when domain has an unsupported IDE controller 2015-05-15 15:40:43 -04:00
qemuxmlnsdata
secretxml2xmlin
securityselinuxhelperdata tests: Flesh out securityselinuxhelper 2014-03-07 14:02:10 +01:00
securityselinuxlabeldata caps: Use DomainDataLookup to replace GuestDefault* 2015-04-20 16:43:13 -04:00
sexpr2xmldata Domain conf: allow more than one IP address for net devices 2015-01-05 20:24:04 +01:00
storagepoolschemadata
storagepoolxml2xmlin storage: Introduce 'managed' for the fchost parent 2014-11-12 10:18:28 -05:00
storagepoolxml2xmlout storage: Introduce 'managed' for the fchost parent 2014-11-12 10:18:28 -05:00
storagevolschemadata
storagevolxml2argvdata Allow creating volumes with a backing store but no capacity 2015-03-02 08:07:11 +01:00
storagevolxml2xmlin Allow creating volumes with a backing store but no capacity 2015-03-02 08:07:11 +01:00
storagevolxml2xmlout Allow cloning volumes with no capacity specified 2015-03-02 08:07:11 +01:00
sysinfodata
vboxsnapshotxmldata tests: fix vbox snapshot xmls 2014-06-18 15:19:18 +02:00
vircaps2xmldata vircaps2xmltest: Introduce basic testing 2014-06-05 13:58:13 +02:00
vircgroupdata tests: Add tests for virCgroupDetectMounts 2015-03-18 09:53:24 +01:00
virfiledata
virnetdevtestdata/sys/class/net Introduce virnetdevtest 2015-04-14 19:33:02 +02:00
virpcitestdata
virscsidata tests: Fix SCSI test data filenames for Windows 2014-03-29 21:14:15 +01:00
virusbtestdata/sys_bus_usb/devices
vmwareverdata vmware: make version parsing more robust 2014-06-11 14:56:18 +02:00
vmx2xmldata vmx: Fix a VMX parsing problem 2015-01-07 17:17:00 -07:00
xencapsdata capabilities: Format <domain/> properly 2014-12-24 18:01:44 +01:00
xlconfigdata libxl: support HVM direct kernel boot 2015-04-16 16:14:51 -06:00
xmconfigdata xenconfig: move <os> parsing/formating to config-specific files 2015-04-16 16:11:01 -06:00
xml2sexprdata
xml2vmxdata
.valgrind.supp
bhyvexml2argvmock.c bhyvexml2argvmock: change int to size_t for tapfdSize 2015-02-11 14:30:45 +01:00
bhyvexml2argvtest.c bhyve: fix bhyvexml2argvtest build with gcc 2015-05-11 20:08:47 +03:00
bhyvexml2xmltest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
capabilityschematest
commandhelper.c Remove unnecessary curly brackets in tests/ 2014-11-14 17:13:36 +01:00
commandtest.c tests: fix some memleaks in tests 2015-04-27 10:04:38 +02:00
cpuset
cputest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
define-dev-segfault
domaincapsschematest Introduce domain_capabilities 2014-07-03 12:22:37 +02:00
domaincapstest.c tests: fix some memleaks in tests 2015-04-27 10:04:38 +02:00
domainconftest.c tests: Use *DefParseFile more 2015-04-23 17:08:48 -04:00
domainschematest schema: bhyve and nmdm updates 2014-07-29 09:52:16 +04:00
domainsnapshotschematest
domainsnapshotxml2xmltest.c domain: conf: Drop expectedVirtTypes 2015-04-20 16:43:43 -04:00
esxutilstest.c Remove unnecessary curly brackets in tests/ 2014-11-14 17:13:36 +01:00
eventtest.c Remove unnecessary curly brackets in tests/ 2014-11-14 17:13:36 +01:00
fchosttest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
fdstreamtest.c Use virFileFindResource to locate iohelper for fdstream 2014-04-25 11:59:46 +01:00
int-overflow
interfaceschematest
interfacexml2xmltest.c Require spaces around equality comparisons 2014-03-18 11:29:44 +01:00
jsontest.c Some alignment fixes in lxc_controller and jsontest 2015-05-14 15:03:33 +02:00
libvirtd-fail
libvirtd-pool
libvirtdconftest.c virconf: Introduce VIR_CONF_ULONG 2014-12-15 10:34:18 +01:00
lxcconf2xmltest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
lxcxml2xmltest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
Makefile.am Fix building virnetserverclientmock with MinGW 2015-04-28 17:37:58 +02:00
metadatatest.c test: metadata: Improve test coverage 2014-07-17 17:04:12 +02:00
networkschematest
networkxml2conftest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
networkxml2firewalltest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
networkxml2xmltest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
networkxml2xmlupdatetest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
nodedevschematest
nodedevxml2xmltest.c Add unique_id to nodedev output 2014-07-21 12:55:11 -04:00
nodeinfotest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
nwfilterebiptablestest.c test: fix nwfilter tests following changes in virfirewall.c 2014-12-22 16:57:21 -05:00
nwfilterschematest
nwfilterxml2firewalltest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
nwfilterxml2xmltest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
objecteventtest.c objecteventtest: Check for virNetwork* return values 2015-03-23 09:56:15 +01:00
objectlocking.ml network_conf: Make virNetworkObj actually virObject 2015-03-11 16:58:48 +01:00
oomtrace.pl
openvzutilstest.c domain: Convert os.type to VIR_DOMAIN_OSTYPE enum 2015-04-20 16:40:09 -04:00
openvzutilstest.conf
pkix_asn1_tab.c
qemuagenttest.c tests: Use *DefParseFile more 2015-04-23 17:08:48 -04:00
qemuargv2xmltest.c tests: Add VIR_TEST_DEBUG and VIR_TEST_VERBOSE 2015-04-23 17:08:48 -04:00
qemucapabilitiestest.c qemu: Add RDMA migration capabilities 2014-09-23 08:11:49 +02:00
qemucaps2xmlmock.c tests: introduce qemucaps2xmlmock 2015-03-27 16:55:33 +01:00
qemucaps2xmltest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
qemucommandutiltest.c tests: fix some memleaks in tests 2015-04-27 10:04:38 +02:00
qemuhelptest.c tests: Add VIR_TEST_DEBUG and VIR_TEST_VERBOSE 2015-04-23 17:08:48 -04:00
qemuhotplugtest.c tests: Add VIR_TEST_DEBUG and VIR_TEST_VERBOSE 2015-04-23 17:08:48 -04:00
qemumonitorjsontest.c tests: free ChardevInfo correctly in qemumonitorjsontest 2015-04-28 17:01:16 +02:00
qemumonitortest.c tests: Add VIR_TEST_DEBUG and VIR_TEST_VERBOSE 2015-04-23 17:08:48 -04:00
qemumonitortestutils.c test: qemu: Fix qemu monitor test utils to allow testing HMP 2015-03-11 11:28:03 +01:00
qemumonitortestutils.h
qemuxml2argvmock.c Make tests independant of system page size 2015-02-02 20:27:43 +00:00
qemuxml2argvtest.c qemu: remove test for allowing ide controller in s390, rename usb tests 2015-05-15 15:37:51 -04:00
qemuxml2xmltest.c caps: Fix regression defaulting to host arch 2015-05-08 11:11:32 -04:00
qemuxmlnstest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
read-bufsiz
read-non-seekable
reconnect.c util: make it easier to grab only regular command exit 2014-03-03 12:40:32 -07:00
schematestutils.sh Cleanup srcdir usage 2015-04-27 16:03:31 +02:00
scsihosttest.c scsi_host: Introduce virFindSCSIHostByPCI 2014-07-21 12:55:11 -04:00
seclabeltest.c maint: use hanging curly braces 2014-09-04 15:18:43 -06:00
secretschematest
secretxml2xmltest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
securityselinuxhelper.c maint: cleanup detection of const'ness of selinux ctx 2014-05-28 16:52:48 -06:00
securityselinuxlabeltest.c tests: Use *DefParseFile more 2015-04-23 17:08:48 -04:00
securityselinuxtest.c conf: Allocate domain definition with the new helper 2015-02-20 17:43:05 +01:00
sexpr2xmltest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
shunloadhelper.c Use K&R style for curly braces in tests/ 2014-03-20 17:06:38 +01:00
shunloadtest.c Remove unnecessary curly brackets in tests/ 2014-11-14 17:13:36 +01:00
sockettest.c Remove unused macros 2015-04-02 10:27:56 +02:00
ssh.c
start
statstest.c tests: Add VIR_TEST_DEBUG and VIR_TEST_VERBOSE 2015-04-23 17:08:48 -04:00
storagebackendsheepdogtest.c tests: Use *DefParseFile more 2015-04-23 17:08:48 -04:00
storagepoolschematest
storagepoolxml2xmltest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
storagevolschematest
storagevolxml2argvtest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
storagevolxml2xmltest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
sysinfotest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
test_conf.c test_conf: Resolve Coverity RESOURCE_LEAK 2014-09-03 15:00:19 -04:00
test_conf.sh
test-lib.sh
testutils.c tests: Fix grammar in comments. 2015-05-04 15:01:27 +02:00
testutils.h tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
testutilslxc.c tests: Add VIR_TEST_DEBUG and VIR_TEST_VERBOSE 2015-04-23 17:08:48 -04:00
testutilslxc.h Don't leave empty first line in C source files 2014-03-18 12:17:12 +01:00
testutilsqemu.c caps: Fix regression defaulting to host arch 2015-05-08 11:11:32 -04:00
testutilsqemu.h cpu: Add {Haswell,Broadwell}-noTSX CPU models 2015-03-26 09:19:59 +01:00
testutilsxen.c caps: Convert to use VIR_DOMAIN_VIRT internally 2015-04-20 16:40:26 -04:00
testutilsxen.h tests: Tests for the xen-xl parser 2015-01-14 08:28:50 -07:00
utiltest.c tests: Add VIR_TEST_DEBUG and VIR_TEST_VERBOSE 2015-04-23 17:08:48 -04:00
vboxsnapshotxmltest.c vboxsnapshotxmltest: Don't write to a file in abs_srcdir 2014-07-01 16:46:29 +02:00
vcpupin virsh: fix vcpupin info 2015-02-20 16:17:19 +01:00
viralloctest.c Add test suite for viralloc APIs 2014-04-25 11:29:55 +01:00
viratomictest.c
virauthconfigtest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
virbitmaptest.c tests: Resolve Coverity RESOURCE_LEAK 2015-04-15 10:29:41 -04:00
virbuftest.c tests: Add VIR_TEST_DEBUG and VIR_TEST_VERBOSE 2015-04-23 17:08:48 -04:00
vircaps2xmltest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
vircapstest.c domain: conf: Drop unused OSTYPE_AIX 2015-04-29 09:42:26 -04:00
vircgroupmock.c Fix virCgroupGetPercpuStats with non-continuous present CPUs 2015-01-22 17:01:11 +01:00
vircgrouptest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
vircryptotest.c Add helper APIs for generating cryptographic hashes 2014-03-10 16:39:18 +00:00
virdbustest.c dbus: fix arrays of bools 2014-11-25 08:47:12 -07:00
virdrivermoduletest.c Removing probing of secondary drivers 2015-01-27 12:02:04 +00:00
virendiantest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
virfiletest.c util: file: Don't carelessly sanitize URIs 2015-04-09 09:43:36 +02:00
virfirewalltest.c tests: Set up two more overrides for root builders 2014-12-23 06:10:55 +01:00
virhashdata.h
virhashtest.c tests: Add VIR_TEST_DEBUG and VIR_TEST_VERBOSE 2015-04-23 17:08:48 -04:00
virhostdevtest.c maint: avoid static zero init in tests 2014-10-29 09:55:09 -06:00
viridentitytest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
viriscsitest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
virkeycodetest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
virkeyfiletest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
virkmodtest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
virlockspacetest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
virlogtest.c
virmock.h tests: fix documentation for mocking methods 2014-11-27 11:17:56 +01:00
virmockdbus.c tests: avoid dlsym mocking on mingw 2014-05-20 15:16:22 -06:00
virnetdevbandwidthmock.c Iface: disallow network tuning in session mode globally 2014-11-06 14:28:37 +01:00
virnetdevbandwidthtest.c virNetDevBandwidthSet: Add priority to filter 2015-04-17 10:18:58 +02:00
virnetdevmock.c Introduce virnetdevtest 2015-04-14 19:33:02 +02:00
virnetdevtest.c Introduce virnetdevtest 2015-04-14 19:33:02 +02:00
virnetmessagetest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
virnetserverclientmock.c
virnetserverclienttest.c
virnetsockettest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
virnettlscontexttest.c tests: force FIPS testing mode with new enough GNU TLS versions 2014-09-04 11:56:39 +02:00
virnettlshelpers.c Fix assignment of comparison against zero 2014-07-16 09:39:57 +02:00
virnettlshelpers.h
virnettlssessiontest.c tests: force FIPS testing mode with new enough GNU TLS versions 2014-09-04 11:56:39 +02:00
virpcimock.c Replace Pci with PCI throughout 2014-04-08 11:15:55 +01:00
virpcitest.c tests: Add VIR_TEST_DEBUG and VIR_TEST_VERBOSE 2015-04-23 17:08:48 -04:00
virpolkittest.c Convert polkit code to use DBus API instead of CLI helper 2014-09-24 15:29:22 +01:00
virportallocatortest.c tests: Add VIR_TEST_DEBUG and VIR_TEST_VERBOSE 2015-04-23 17:08:48 -04:00
virscsitest.c maint: avoid static zero init in tests 2014-10-29 09:55:09 -06:00
virsh-all
virsh-optparse virsh: Add keepalive in new vshConnect function 2014-03-18 08:27:29 +01:00
virsh-schedinfo
virsh-synopsis
virsh-undefine
virsh-uriprecedence
virshtest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
virstoragetest.c util: storage: Fix parsing of nbd:// URI without path 2015-02-04 08:38:25 +01:00
virstringtest.c Add functions dealing with control characters in strings 2015-04-15 18:41:20 +02:00
virsystemdtest.c Add support for systemd-machined CreateMachineWithNetwork 2015-01-15 11:07:07 +00:00
virt-aa-helper-test video: cleanup usage of vram attribute and update documentation 2014-11-24 22:05:55 +01:00
virtimetest.c Remove unnecessary curly brackets in tests/ 2014-11-14 17:13:36 +01:00
viruritest.c test: Add test to verify helpers used for backing file name parsing 2014-10-29 17:10:42 +01:00
virusbmock.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
virusbtest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
vmwarevertest.c vmware: make version parsing more robust 2014-06-11 14:56:18 +02:00
vmx2xmltest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
xencapstest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
xlconfigtest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
xmconfigtest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
xml2sexprtest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00
xml2vmxtest.c tests: Add virtTestCompareToFile 2015-04-23 17:08:48 -04:00