v2: http://www.redhat.com/archives/libvir-list/2017-March/msg00161.html Changes since v2: - Pushed the former patch1 after a slight adjustment replace a spurrious lost line - [NEW] Patch 1 - Fixes an existing bug - details in patch - [UPD] Patch 2 - Split out what Jano noted about new checks into it's own - [UPD] Patch 3->14 - Rework the former patch2 to split out the step by step details it took to get to patch2. - [No Change] Patch 15-18 -> Patch15->16 ACKed in v1, but I just left these in the order I had -> Patch17->18 Unchanged - same comment as v2 (copied so as to not force someone would go back to v2): Even though there is concern over usage of API's in this manner (e.g. calling virNodeDeviceLookupSCSIHostByWWN as well as virNodeDeviceCreateXML) - the "purpose" of the exercise is a means to have the StoragePool code use the same algorithms as the node device code instead of what could be a potentially long slow journey through the sysfs file system. The key piece being the replication of the API's that find the parent in the node device object list. I suppose it would be possible to add even more API's to get that answer, but I'm not sure it'd be worthwhile at this point. As for the concern about deadlock - I understand it, but since the whole purpose of the API is to essentially utilize the nodedev create algorithm there'd be no reason for nodedev to call it. If it doesn't get ACK'd - that's OK - I can hold onto it and reconsider some other means at some point in time in the future (probably distant future too). John Ferlan (18): conf: Ensure both parent_wwnn/parent_wwpn provided conf: Add missing validate for fchost search fields conf: Split out storage pool source adapter helpers conf: Rework parsing in virStoragePoolDefParseSourceAdapter conf: Introduce storage_adapter_conf conf: Rename API's in storage_adapter_conf conf: Extract FCHost adapter type processing into their own helpers conf: Extract SCSI adapter type processing into their own helpers conf: Split up virStoragePoolSourceAdapter conf: Rework storage_adapter_conf to use adapter specific typedefs conf: Rework storage_conf to use adapter specific typedefs storage: Rework getAdapterName to use adapter specific typedefs storage: Rework createVport and deleteVport conf: Convert virStoragePoolSourceAdapter to virStorageAdapter util: Rename virFileWaitForDevices conf: Move/rename createVport and deleteVport util: Alter virNodeDevice{Create|Delete}Vport to use nodedev APIs tests: Add more storage pool vHBA tests po/POTFILES.in | 1 + src/Makefile.am | 1 + src/conf/node_device_conf.c | 332 ++++++++++++++++++++++++++++++++ src/conf/node_device_conf.h | 9 + src/conf/storage_adapter_conf.c | 330 ++++++++++++++++++++++++++++++++ src/conf/storage_adapter_conf.h | 84 ++++++++ src/conf/storage_conf.c | 348 ++++++++-------------------------- src/conf/storage_conf.h | 36 +--- src/libvirt_private.syms | 13 +- src/node_device/node_device_driver.c | 2 +- src/phyp/phyp_driver.c | 3 +- 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 | 11 +- src/util/virfile.h | 2 - src/util/virutil.c | 4 +- src/util/virutil.h | 2 + tests/fchosttest.c | 47 +++++ 22 files changed, 968 insertions(+), 540 deletions(-) create mode 100644 src/conf/storage_adapter_conf.c create mode 100644 src/conf/storage_adapter_conf.h -- 2.9.3 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list