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