Similar to the recent node device focused vHBA patches, but these focus more on adjustments to the Storage Pool vHBA logic and finally the mechanism to define a vHBA for a domain. The first patch fixes a leak found by coverity that showed up because node_device_conf had enough changes so that coverity looked harder... The second patch creates a mechanism to mock creation of the vHBA in order to test the ability for the storage pool to create a vHBA. As much as I dislike forward refs for testNodeDeviceMockCreateVport, it was better than moving all the code.... The third patch extracts out storage device mgmt into it's own set of src/util API's - similar to the existing virstoragefile, but for devices. The fourth patch was uncovered while moving code from storage_backend_scsi into node_device_conf (the fifth patch)... The fifth patch moves the createVport/deleteVport guts into the node_device_conf (although they could have moved to virvhba)... The sixth patch alters the logic to use the node_device API's as the "preferred" mechanism to create/delete the vport... The seventh patch tests the storage pool vHBA creation algorithms. The eigth patch is the reason for all this stirring of the pot. Alter the domain <controller> XML in order to allow definition of a vHBA which more or less sits between a "scsi_hostX" host device and a controller. This is in preparation for https://bugzilla.redhat.com/show_bug.cgi?id=1404962 which can take that created vHBA and automagically add the LUNs from the vHBA to the domain although that requires a bit more magic for which there are already onlist patches to let qemu driver know when a node device has been added/removed. Once all that's in place - the next step will be to converge the two sets of patches. It's a chicken/egg type problem - one has to exist before the other can truly work. John Ferlan (8): conf: Fix leak in virNodeDeviceDefParseXML tests: Add createVHBAByStoragePool-by-parent to fchosttest util: Convert virStoragePoolSourceAdapter to virStorageAdapter util: Rename virFileWaitForDevices storage: Move/rename createVport and deleteVport util: Alter virNodeDevice{Create|Delete}Vport to use nodedev APIs tests: Add more storage pool vHBA tests conf: Add vHBA controller definition to domain docs/schemas/basictypes.rng | 66 ++-- docs/schemas/domaincommon.rng | 12 +- po/POTFILES.in | 1 + src/Makefile.am | 1 + src/conf/domain_audit.c | 32 ++ src/conf/domain_conf.c | 180 ++++++++++- src/conf/domain_conf.h | 2 + src/conf/node_device_conf.c | 342 ++++++++++++++++++++- src/conf/node_device_conf.h | 9 + src/conf/storage_conf.c | 338 +++++--------------- src/conf/storage_conf.h | 35 +-- src/libvirt_private.syms | 20 +- src/libxl/libxl_conf.c | 1 + src/node_device/node_device_driver.c | 2 +- src/phyp/phyp_driver.c | 3 +- src/qemu/qemu_alias.c | 5 + src/qemu/qemu_command.c | 4 + src/qemu/qemu_hotplug.c | 16 + src/storage/storage_backend_disk.c | 6 +- src/storage/storage_backend_iscsi.c | 2 +- src/storage/storage_backend_logical.c | 4 +- src/storage/storage_backend_mpath.c | 2 +- src/storage/storage_backend_scsi.c | 267 +++------------- src/storage/storage_util.c | 2 +- src/test/test_driver.c | 101 +++++- src/util/virfile.h | 2 - src/util/virscsihost.c | 28 +- src/util/virscsihost.h | 8 +- src/util/virstoragedevice.c | 292 ++++++++++++++++++ src/util/virstoragedevice.h | 89 ++++++ src/util/virutil.c | 4 +- src/util/virutil.h | 2 + tests/fchosttest.c | 111 +++++++ .../qemuxml2argv-vhba-no-parent.xml | 38 +++ .../qemuxml2argv-vhba-parent-fabric.xml | 38 +++ .../qemuxml2argv-vhba-parent-name.xml | 38 +++ .../qemuxml2argv-vhba-parent-wwns.xml | 38 +++ .../qemuxml2xmlout-vhba-no-parent.xml | 47 +++ .../qemuxml2xmlout-vhba-parent-fabric.xml | 47 +++ .../qemuxml2xmlout-vhba-parent-name.xml | 47 +++ .../qemuxml2xmlout-vhba-parent-wwns.xml | 47 +++ tests/qemuxml2xmltest.c | 9 + 42 files changed, 1727 insertions(+), 611 deletions(-) create mode 100644 src/util/virstoragedevice.c create mode 100644 src/util/virstoragedevice.h create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-vhba-no-parent.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-vhba-parent-fabric.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-vhba-parent-name.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-vhba-parent-wwns.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-vhba-no-parent.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-vhba-parent-fabric.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-vhba-parent-name.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-vhba-parent-wwns.xml -- 2.9.3 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list