libvirt/tests
Osier Yang a4bd62adc1 storage: Introduce parentaddr into virStoragePoolSourceAdapter
Between reboots and kernel reloads, the SCSI host number used for SCSI
storage pools may change requiring modification to the storage pool XML
in order to use a specific SCSI host adapter.

This patch introduces the "parentaddr" element and "unique_id" attribute
for the SCSI host adapter in order to uniquely identify the adapter
between reboots and kernel reloads. For now the goal is to only parse
and format the XML. Both will be required to be provided in order to
uniquely identify the desired SCSI host.

The new XML is expected to be as follows:

  <adapter type='scsi_host'>
    <parentaddr unique_id='3'>
      <address domain='0x0000' bus='0x00' slot='0x1f' func='0x2'/>
    </parentaddr>
  </adapter>

where "parentaddr" is the parent device of the SCSI host using the PCI
address on which the device resides and the value from the unique_id file
for the device. Both the PCI address and unique_id values will be used
to traverse the /sys/class/scsi_host/ directories looking at each link
to match the PCI address reformatted to the directory link format where
"domain🚌slot:function" is found.  Then for each matching directory
the unique_id file for the scsi_host will be used to match the unique_id
value in the xml.

For a PCI address listed above, this will be formatted to "0000:00:1f.2"
and the links in /sys/class/scsi_host will be used to find the host#
to be used for the 'scsi_host' device. Each entry is a link to the
/sys/bus/pci/devices directories, e.g.:

%  ls -al /sys/class/scsi_host/host2
lrwxrwxrwx. 1 root root 0 Jun  1 00:22 /sys/class/scsi_host/host2 -> ../../devices/pci0000:00/0000:00:1f.2/ata3/host2/scsi_host/host2

% cat /sys/class/scsi_host/host2/unique_id
3

The "parentaddr" and "name" attributes are mutually exclusive to identify
the SCSI host number. Use of the "parentaddr" element will be the preferred
mechanism.

This patch only supports to parse and format the XMLs. Later patches will
add code to find out the scsi host number.
2014-07-21 12:55:10 -04:00
..
bhyvexml2argvdata bhyve: implement PCI address allocation 2014-06-13 19:25:27 +04:00
bhyvexml2xmloutdata tests: add bhyve xml2xml test 2014-04-08 20:50:36 +04:00
capabilityschemadata capabilities: add baselabel per sec driver/virt type to secmodel 2013-10-29 07:06:04 -06:00
commanddata
confdata
cputestdata tests: Add more tests for virConnectBaselineCPU 2014-01-28 21:27:37 +01:00
domaincapsschemadata qemu: Implement virConnectGetDomainCapabilities 2014-07-03 12:22:38 +02:00
domainconfdata Rename virDomainGetRootFilesystem to virDomainGetFilesystemForTarget 2014-02-20 15:50:46 +00:00
domainschemadata conf: Output disk backing store details in domain XML 2014-04-24 16:06:13 +02:00
domainsnapshotxml2xmlin conf: split <disk> schema into more pieces 2014-04-16 10:45:55 +02:00
domainsnapshotxml2xmlout snapshot: Add support for specifying snapshot disk backing type 2014-01-29 12:56:35 +01:00
fchostdata/fc_host
interfaceschemadata interface: clean up virInterfaceDefDevFormat 2014-06-20 11:50:41 +03:00
lxcconf2xmldata lxc conf2xml: convert lxc.network.name for veth networks 2014-07-18 14:26:03 +02:00
lxcxml2xmldata lxc network configuration allows setting target container NIC name 2014-07-18 14:25:57 +02:00
lxcxml2xmloutdata Allow root directory in filesystem source dir schema 2013-11-07 18:43:15 +01:00
networkxml2confdata network: fix problems with SRV records 2014-03-26 16:42:43 +02:00
networkxml2firewalldata Add test for converting network XML to iptables rules 2014-04-25 15:44:09 +01:00
networkxml2xmlin Add forwarder attribute to <dns/> element 2013-09-17 17:47:33 -06:00
networkxml2xmlout network: change default of forwardPlainNames to 'yes' 2014-02-04 12:00:26 +02:00
networkxml2xmlupdatein Test network update XML parsing 2013-08-28 08:05:46 +02:00
networkxml2xmlupdateout network: change default of forwardPlainNames to 'yes' 2014-02-04 12:00:26 +02:00
nodedevschemadata nodedev: Introduce <pci-express/> to PCI devices 2014-06-16 17:40:49 +02:00
nodeinfodata virNodeParseSocket: Take ARM into account 2014-06-20 15:59:08 +02:00
nwfilterxml2firewalldata Add a test suite for nwfilter ebiptables tech driver 2014-04-25 15:44:10 +01:00
nwfilterxml2xmlin
nwfilterxml2xmlout
qemucapabilitiesdata qemu: newer -numa parameter capability probing 2014-07-16 20:15:46 +02:00
qemucaps2xmldata qemu: add unit tests for the capabilities xml 2014-03-26 13:41:25 +01:00
qemuhelpdata qemu: Support setting the 'removable' flag for USB disks 2013-09-02 14:45:38 +02:00
qemuhotplugtestdata qemuhotplugtest: Fix mem-leaking testcases 2014-03-19 14:48:58 +01:00
qemumonitorjsondata qemu: Add monitor APIs to fetch CPUID data from QEMU 2013-11-08 09:44:36 +01:00
qemuxml2argvdata schema: put interleave at correct level 2014-07-16 17:30:31 -06:00
qemuxml2xmloutdata conf, schema: add support for memnode elements 2014-07-16 20:15:45 +02:00
qemuxmlnsdata qemu: Set QEMU_AUDIO_DRV=none with -nographic 2013-09-02 16:53:39 -04:00
secretxml2xmlin Add tests for secret XML parsing 2014-02-14 16:47:14 +01:00
securityselinuxhelperdata tests: Flesh out securityselinuxhelper 2014-03-07 14:02:10 +01:00
securityselinuxlabeldata
sexpr2xmldata conf: Format and parse backing chains in domain XML 2014-04-24 16:06:18 +02:00
storagepoolschemadata
storagepoolxml2xmlin storage: Introduce parentaddr into virStoragePoolSourceAdapter 2014-07-21 12:55:10 -04:00
storagepoolxml2xmlout storage: Introduce parentaddr into virStoragePoolSourceAdapter 2014-07-21 12:55:10 -04:00
storagevolschemadata
storagevolxml2argvdata add nocow test case 2014-07-16 13:35:26 +02:00
storagevolxml2xmlin add nocow test case 2014-07-16 13:35:26 +02:00
storagevolxml2xmlout add nocow test case 2014-07-16 13:35:26 +02:00
sysinfodata aarch64: Fix sysinfo test. 2014-01-01 16:34:13 +00:00
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
virfiledata Fix bug in identifying sub-mounts 2013-11-28 11:49:01 +00:00
virpcitestdata tests: Fix PCI test data filenames for Windows 2014-01-25 12:53:11 +01:00
virscsidata tests: Fix SCSI test data filenames for Windows 2014-03-29 21:14:15 +01:00
virusbtestdata/sys_bus_usb/devices Add tests for virUSBDeviceFind functions 2014-03-03 14:35:22 +01:00
vmwareverdata vmware: make version parsing more robust 2014-06-11 14:56:18 +02:00
vmx2xmldata conf: Add keyboard input device type 2014-02-19 09:16:31 +01:00
xencapsdata
xmconfigdata conf: Add keyboard input device type 2014-02-19 09:16:31 +01:00
xml2sexprdata
xml2vmxdata esx: Fix floppy.fileName handling in the vmx file parser 2013-10-15 11:39:02 +01:00
.valgrind.supp
bhyvexml2argvmock.c bhyve: add xml2args unittest 2014-03-27 08:33:41 +04:00
bhyvexml2argvtest.c bhyve: improve bhyve_command.c testability 2014-05-04 17:43:54 +04:00
bhyvexml2xmltest.c tests: add bhyve xml2xml test 2014-04-08 20:50:36 +04:00
capabilityschematest
commandhelper.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
commandtest.c Coverity: Resolve a FORWARD_NULL 2014-03-25 17:13:27 -04:00
cpuset virBitmapParse: Fix behavior in case of error and fix up callers 2013-08-22 11:38:36 +02:00
cputest.c cpuCompare*: Add support for reporting failure on incompatible CPUs 2014-06-26 00:43:54 +02:00
define-dev-segfault
domaincapsschematest Introduce domain_capabilities 2014-07-03 12:22:37 +02:00
domaincapstest.c qemu: Implement virConnectGetDomainCapabilities 2014-07-03 12:22:38 +02:00
domainconftest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
domainschematest LXC: Fix handling of RAM filesystem size units 2013-10-09 17:44:45 +02:00
domainsnapshotschematest
domainsnapshotxml2xmltest.c Use virBufferCheckError everywhere we report OOM error 2014-07-03 10:48:14 +02:00
esxutilstest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
eventtest.c Add virLogSource variables to all source files 2014-03-18 14:29:22 +00: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 Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
libvirtd-fail
libvirtd-pool
libvirtdconftest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
lxcconf2xmltest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
lxcxml2xmltest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
Makefile.am tests: Avoid double linking some libraries 2014-07-03 14:58:06 +02:00
metadatatest.c test: metadata: Improve test coverage 2014-07-17 17:04:12 +02:00
networkschematest
networkxml2conftest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
networkxml2firewalltest.c networkxml2firewalltest: fix build failure on freebsd 2014-04-30 10:16:09 +02:00
networkxml2xmltest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
networkxml2xmlupdatetest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
nodedevschematest
nodedevxml2xmltest.c nodedev: Introduce <pci-express/> to PCI devices 2014-06-16 17:40:49 +02:00
nodeinfotest.c virNodeParseSocket: Take ARM into account 2014-06-20 15:59:08 +02:00
nwfilterebiptablestest.c nwfilter: Tear down temp. filters when tearing all filters 2014-04-30 12:51:38 -04:00
nwfilterschematest
nwfilterxml2firewalltest.c Add a test suite for nwfilter ebiptables tech driver 2014-04-25 15:44:10 +01:00
nwfilterxml2xmltest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
objecteventtest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
objectlocking.ml tests: cleanup object-locking test 2014-03-18 10:20:49 +01:00
oomtrace.pl
openvzutilstest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
openvzutilstest.conf
pkix_asn1_tab.c
qemuagenttest.c qemu: Support mountpoints option of guest-fsfreeze-freeze 2014-05-12 21:24:23 -06:00
qemuargv2xmltest.c Utilize virDomainDiskAuth for domain disk 2014-07-03 17:39:15 -04:00
qemucapabilitiestest.c tests: Move qemu caps XML parsing into shared unit 2014-07-03 12:22:37 +02:00
qemucaps2xmltest.c capabilities: use bool instead of int 2014-07-14 08:00:46 -06:00
qemuhelptest.c qemu: add host-pci-multidomain capability 2014-05-06 14:32:33 +03:00
qemuhotplugtest.c qemuDomainAttachDeviceFlags: Parse device xml as inactive 2014-03-26 13:49:47 +01:00
qemumonitorjsontest.c qemu: allow qmp probing for cmdline options without params 2014-07-16 20:15:46 +02:00
qemumonitortest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
qemumonitortestutils.c tests: monitor: json: Fix error message when returning json in json 2014-06-03 17:19:24 +02:00
qemumonitortestutils.h tests: Learn qemuMonitorTestNew optional greeting 2013-10-01 10:48:47 +02:00
qemuxml2argvmock.c qemuxml2argvmock: Mock time() on non-linux platforms too 2014-02-06 15:15:10 +01:00
qemuxml2argvtest.c qemu: pass numa node binding preferences to qemu 2014-07-16 20:15:46 +02:00
qemuxml2xmltest.c qemu: enable disjoint numa cpu ranges 2014-07-16 20:15:46 +02:00
qemuxmlnstest.c Use virFileFindResource to locate CPU map XML 2014-04-25 11:59:46 +01: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 tests: skip schema validation tests if xmllint is missing 2013-08-23 15:23:44 -06:00
seclabeltest.c
secretschematest Add tests for secret XML parsing 2014-02-14 16:47:14 +01:00
secretxml2xmltest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
securityselinuxhelper.c maint: cleanup detection of const'ness of selinux ctx 2014-05-28 16:52:48 -06:00
securityselinuxlabeltest.c securityselinuxlabeltest: Don't create dummy file in the srcdir 2014-07-01 16:45:35 +02:00
securityselinuxtest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
sexpr2xmltest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
shunloadhelper.c Use K&R style for curly braces in tests/ 2014-03-20 17:06:38 +01:00
shunloadtest.c
sockettest.c Fix unitialized data in virSocketAddrMask 2014-03-20 12:15:00 +00:00
ssh.c
start
statstest.c util: virstatslinux: make more generic 2014-07-15 22:00:59 +04:00
storagebackendsheepdogtest.c conf: track sizes directly in source struct 2014-04-02 06:03:00 -06:00
storagepoolschematest
storagepoolxml2xmltest.c storage: Introduce parentaddr into virStoragePoolSourceAdapter 2014-07-21 12:55:10 -04:00
storagevolschematest
storagevolxml2argvtest.c add nocow test case 2014-07-16 13:35:26 +02:00
storagevolxml2xmltest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
sysinfotest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
test_conf.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
test_conf.sh
test-lib.sh test-lib: Make case skipping possible 2013-09-13 10:25:56 +02:00
testutils.c capabilities: use bool instead of int 2014-07-14 08:00:46 -06:00
testutils.h Add test for converting network XML to iptables rules 2014-04-25 15:44:09 +01:00
testutilslxc.c capabilities: use bool instead of int 2014-07-14 08:00:46 -06:00
testutilslxc.h Don't leave empty first line in C source files 2014-03-18 12:17:12 +01:00
testutilsqemu.c capabilities: use bool instead of int 2014-07-14 08:00:46 -06:00
testutilsqemu.h tests: Move qemu caps XML parsing into shared unit 2014-07-03 12:22:37 +02:00
testutilsxen.c capabilities: use bool instead of int 2014-07-14 08:00:46 -06:00
testutilsxen.h Don't leave empty first line in C source files 2014-03-18 12:17:12 +01:00
utiltest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
vboxsnapshotxmltest.c vboxsnapshotxmltest: Don't write to a file in abs_srcdir 2014-07-01 16:46:29 +02:00
vcpupin virsh: forbid negative vcpu argument to vcpupin 2014-06-12 14:06:21 +02:00
viralloctest.c Add test suite for viralloc APIs 2014-04-25 11:29:55 +01:00
viratomictest.c maint: fix comma style issues: tests, tools 2013-11-20 09:14:55 -07:00
virauthconfigtest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
virbitmaptest.c Fix virbitmaptest on 32-bit 2014-06-06 16:52:27 +02:00
virbuftest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
vircaps2xmltest.c capabilities: use bool instead of int 2014-07-14 08:00:46 -06:00
vircapstest.c capabilities: use bool instead of int 2014-07-14 08:00:46 -06:00
vircgroupmock.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
vircgrouptest.c Extend virCgroupGetPercpuStats to fill in vcputime too 2014-04-09 16:24:08 +02:00
vircryptotest.c Add helper APIs for generating cryptographic hashes 2014-03-10 16:39:18 +00:00
virdbustest.c Fix Memory Leak in testMessageArrayRef() 2014-03-31 14:56:17 -06:00
virdrivermoduletest.c Use virFileFindResource to locate driver plugins 2014-04-25 11:59:46 +01:00
virendiantest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
virfiletest.c Fix bug in identifying sub-mounts 2013-11-28 11:49:01 +00:00
virfirewalltest.c tests: skip virfirewalltest on non-Linux systems 2014-05-02 16:19:34 +04:00
virhashdata.h
virhashtest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
virhostdevtest.c tests: remove hostdevmgr directory on cleanup 2014-04-28 22:58:10 +02: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 Fix flaw in detecting log format 2013-10-14 10:31:01 +01:00
virmock.h Conditionalize include of dlfcn.h in virmock.h 2014-04-25 15:48:30 +01:00
virmockdbus.c tests: avoid dlsym mocking on mingw 2014-05-20 15:16:22 -06:00
virnetdevbandwidthtest.c QoS: make tc filters match all traffic 2014-04-07 11:35:29 +02:00
virnetmessagetest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
virnetserverclientmock.c Add test case for virNetServerClient object identity code 2013-09-24 09:37:26 +01:00
virnetserverclienttest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
virnetsockettest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
virnettlscontexttest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
virnettlshelpers.c Fix assignment of comparison against zero 2014-07-16 09:39:57 +02:00
virnettlshelpers.h
virnettlssessiontest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
virpcimock.c Replace Pci with PCI throughout 2014-04-08 11:15:55 +01:00
virpcitest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
virportallocatortest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
virscsitest.c tests: Fix SCSI test data filenames for Windows 2014-03-29 21:14:15 +01: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 tests: Don't test user config file if ran as root 2013-09-13 10:25:56 +02:00
virshtest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
virstoragetest.c util: storage: Return complete parent info from virStorageFileChainLookup 2014-07-09 11:41:34 +02:00
virstringtest.c util: string: Add helper to free non-NULL terminated string arrays 2014-06-24 10:45:43 +02:00
virsystemdtest.c tests: avoid dlsym mocking on mingw 2014-05-20 15:16:22 -06:00
virt-aa-helper-test Fix typos in src/* 2014-04-21 16:49:08 -06:00
virtimetest.c util: fix DST end date in virtimetest timezones 2014-06-01 05:21:19 +03:00
viruritest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +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 capabilities: use bool instead of int 2014-07-14 08:00:46 -06:00
xencapstest.c Use K&R style for curly braces in tests/ 2014-03-20 17:06:38 +01:00
xmconfigtest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
xml2sexprtest.c Indent top-level labels by one space in tests/ 2014-03-25 14:58:41 +01:00
xml2vmxtest.c capabilities: use bool instead of int 2014-07-14 08:00:46 -06:00