v1: https://www.redhat.com/archives/libvir-list/2019-January/msg00479.html Changes since v1: * The first 4 patches were already R-by'd and pushed. * From v1, rework patch 5 & 6 into what now is patches 8 & 9. The format of the output for what results in the output for the connectGetCapabilities (virConnectGetCapabilities). * From v1, drop patch 7 * In v2, patches 1-7 are new as a result of work done for patches 10-17. patches 1-5 were posted upstream, but left unreviewed: https://www.redhat.com/archives/libvir-list/2019-February/msg00333.html These essentially ensure the volOptions and poolOptions don't list or use something unexpected per documentation. The doc patch is a simple update to add some missing text and fix an entry * Patches 10-17 are new to implement the ability to get/format the Storage Driver backend capabilities via: storageConnectGetStoragePoolCapabilities virConnectGetStoragePoolCapabilities similar to how virConnectGetDomainCapabilities returns domain specific output. The output is essentially what is provided in the poolOptions and volOptions from storage_conf as valid values for format type fields for pool and/or volume as well as an enumerated list for the required source elements for creation. Whether the latter is useful or not was not clear, but since it is something that can cause a creation error when missing, I figured it'd be useful. The new virsh command follows then domcapabilities nomenclature. John Ferlan (17): conf: Remove volOptions for VIR_STORAGE_POOL_SHEEPDOG conf: Remove volOptions for VIR_STORAGE_POOL_RBD conf: Remove volOptions for VIR_STORAGE_POOL_SCSI conf: Remove volOptions for VIR_STORAGE_POOL_ISCSI[_DIRECT] conf: Remove volOptions for VIR_STORAGE_POOL_MPATH conf: Remove defaultFormat from VIR_STORAGE_POOL_ZFS docs: Fix a few storage.html.in typos conf: Introduce storage pool functions into capabilities storage: Process storage pool capabilities docs: Add schema for storage pool capabilities conf: Add storage pool capability formatting tests: Introduce storage pool capabilites test docs: Add description for Storage Pool Capabilities libvirt: Introduce virConnectGetStoragePoolCapabilities storage: Introduce storageConnectGetStoragePoolCapabilities virsh: Expose virConnectGetStoragePoolCapabilities docs: Add news article docs/docs.html.in | 1 + docs/format.html.in | 1 + docs/formatstoragecaps.html.in | 108 +++++++ docs/index.html.in | 1 + docs/news.xml | 12 + docs/schemas/storagepoolcaps.rng | 88 ++++++ docs/storage.html.in | 8 +- include/libvirt/libvirt-storage.h | 4 + libvirt.spec.in | 1 + mingw-libvirt.spec.in | 2 + src/conf/Makefile.inc.am | 2 + src/conf/capabilities.c | 74 +++++ src/conf/capabilities.h | 15 + src/conf/storage_capabilities.c | 135 +++++++++ src/conf/storage_capabilities.h | 41 +++ src/conf/storage_conf.c | 131 +++++++-- src/conf/storage_conf.h | 7 + src/conf/virstorageobj.h | 5 + src/driver-storage.h | 5 + src/libvirt-storage.c | 40 +++ src/libvirt_private.syms | 8 + src/libvirt_public.syms | 5 + src/remote/remote_driver.c | 1 + src/remote/remote_protocol.x | 15 +- src/remote_protocol-structs | 7 + src/storage/storage_backend.c | 16 ++ src/storage/storage_backend.h | 3 + src/storage/storage_driver.c | 44 +++ tests/Makefile.am | 7 + .../storagepoolcapsschemadata/poolcaps-fs.xml | 268 ++++++++++++++++++ .../poolcaps-full.xml | 268 ++++++++++++++++++ tests/storagepoolcapstest.c | 124 ++++++++ tests/storagevolxml2xmlout/vol-sheepdog.xml | 1 - tests/virschematest.c | 1 + tools/virsh-pool.c | 42 +++ tools/virsh.pod | 7 + 36 files changed, 1473 insertions(+), 25 deletions(-) create mode 100644 docs/formatstoragecaps.html.in create mode 100644 docs/schemas/storagepoolcaps.rng create mode 100644 src/conf/storage_capabilities.c create mode 100644 src/conf/storage_capabilities.h create mode 100644 tests/storagepoolcapsschemadata/poolcaps-fs.xml create mode 100644 tests/storagepoolcapsschemadata/poolcaps-full.xml create mode 100644 tests/storagepoolcapstest.c -- 2.20.1