v1:
https://www.redhat.com/archives/libvir-list/2018-December/msg00558.html
Kept the subject the same, but the concept has been adjusted to follow
issues pointed out by jtomko vis-a-vis allowing arbitrary options via XML.
This series adds both the NFS and the RBD adjustments that were essentially
in the referenced series from review.
Changes since v1:
* Patch 1: (NEW) Implements a bare-bones infrastructure for storage pool
XML namespace. Could be split again, but separately the patches
were too small IMO.
* Patch 2: (NEW) Implementation of providing XML Namespace functions. The
details of the operation are in the subsequent patch. I could
combine 2 and 3, but perhaps it's easier to review separated.
* Patch 3: (REWORK) Rework the previous series patch1 in order to utilize
the Storage Pool XML Namespace. Adjust the description of the
configuration and modify the storagepoolxml2xmltest appropriately.
* Patch 4: (REWORK) Utilize the XML Namespace data to generate the command
line which doesn't change since v1.
* Patch 5: (REWORK) Rework the virsh code in order to generate the proper
syntax to utilize Storage Pool XML Namespaces.
* Patch 6: (NEW) Well, new as in this series, but it's essentially a rework
of what was posted in the series jtomko referenced. The code will
"prove" (to a degree) that the concept can work for multiple pool
types. The "downside" is that there's no (easy) way that I
could
find to generate output to show the commands are executed.
John Ferlan (6):
conf: Introduce virStoragePoolXMLNamespace
nfs: Add infrastructure to manage XML namespace options
docs,tests: Add schema, description, and tests for NFS namespace
storage: Add NFS storage pool mount options to command line
virsh: Add source-mount-opts for pool commands
rbd: Utilize storage pool namespace to manage config options
docs/formatstorage.html.in | 87 ++++++++++
docs/schemas/storagepool.rng | 43 +++++
src/conf/storage_conf.c | 51 +++++-
src/conf/storage_conf.h | 24 +++
src/libvirt_private.syms | 1 +
src/storage/storage_backend_fs.c | 127 ++++++++++++++
src/storage/storage_backend_rbd.c | 159 +++++++++++++++++-
src/storage/storage_util.c | 36 ++++
src/storage/storage_util.h | 14 ++
tests/Makefile.am | 4 +-
.../pool-netfs-mountopts.argv | 1 +
tests/storagepoolxml2argvtest.c | 4 +
.../pool-netfs-mountopts.xml | 24 +++
.../pool-rbd-configopts.xml | 17 ++
.../pool-netfs-mountopts.xml | 24 +++
.../pool-rbd-configopts.xml | 20 +++
tests/storagepoolxml2xmltest.c | 7 +
tools/virsh-pool.c | 39 ++++-
tools/virsh.pod | 5 +
19 files changed, 680 insertions(+), 7 deletions(-)
create mode 100644 tests/storagepoolxml2argvdata/pool-netfs-mountopts.argv
create mode 100644 tests/storagepoolxml2xmlin/pool-netfs-mountopts.xml
create mode 100644 tests/storagepoolxml2xmlin/pool-rbd-configopts.xml
create mode 100644 tests/storagepoolxml2xmlout/pool-netfs-mountopts.xml
create mode 100644 tests/storagepoolxml2xmlout/pool-rbd-configopts.xml
ACK
My only worry is that we don't validate the options in any way. They are
basically a text free form which we will put onto 'mount' cmd line directly.
Michal