[libvirt] [PATCH v4 09/10] storage: Add NFS storage pool namespace options to command line
Daniel P. Berrangé
berrange at redhat.com
Tue Jan 29 12:24:02 UTC 2019
On Thu, Jan 17, 2019 at 04:22:15PM -0500, John Ferlan wrote:
> If the NetFS Storage Pool Namespace XML data exists, format the
> mount options on the MOUNT command line.
>
> When the pool is started, the options will be generated on the
> command line along with the options already defined.
>
> To view the options of the running pool, use either 'nfsstat -m'
> or 'grep $POOLNAME /proc/mounts' for the added Flags/options.
>
> Signed-off-by: John Ferlan <jferlan at redhat.com>
> ---
> src/storage/storage_util.c | 10 +++++++++-
> .../pool-netfs-ns-mountopts-freebsd.argv | 2 ++
> .../pool-netfs-ns-mountopts-linux.argv | 2 ++
> .../pool-netfs-ns-mountopts.argv | 1 +
> tests/storagepoolxml2argvtest.c | 6 ++++++
> 5 files changed, 20 insertions(+), 1 deletion(-)
> create mode 100644 tests/storagepoolxml2argvdata/pool-netfs-ns-mountopts-freebsd.argv
> create mode 100644 tests/storagepoolxml2argvdata/pool-netfs-ns-mountopts-linux.argv
> create mode 100644 tests/storagepoolxml2argvdata/pool-netfs-ns-mountopts.argv
>
> diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c
> index 2e753f4501..1fdaf54059 100644
> --- a/src/storage/storage_util.c
> +++ b/src/storage/storage_util.c
> @@ -4293,7 +4293,15 @@ virStorageBackendFileSystemMountNFSAddOptions(virCommandPtr cmd,
> virBufferAsprintf(&buf, "nfsvers=%u,", def->source.protocolVer);
>
> if (*default_nfs_mount_opts != '\0')
> - virBufferAddLit(&buf, default_nfs_mount_opts);
> + virBufferAsprintf(&buf, "%s,", default_nfs_mount_opts);
> +
> + if (def->namespaceData) {
> + size_t i;
> + virStoragePoolNetFSMountOptionsDefPtr opts = def->namespaceData;
> +
> + for (i = 0; i < opts->noptions; i++)
> + virBufferAsprintf(&buf, "%s,", opts->options[i]);
> + }
For QEMU guests, we mark the guest as tainted when using custom
arg passthrough, and log a message at warning level. So we should
emit a VIR_WARN here about the storage pool being tainted.
>
> virBufferTrim(&buf, ",", -1);
> mountOpts = virBufferContentAndReset(&buf);
> diff --git a/tests/storagepoolxml2argvdata/pool-netfs-ns-mountopts-freebsd.argv b/tests/storagepoolxml2argvdata/pool-netfs-ns-mountopts-freebsd.argv
> new file mode 100644
> index 0000000000..d8bd7e378e
> --- /dev/null
> +++ b/tests/storagepoolxml2argvdata/pool-netfs-ns-mountopts-freebsd.argv
> @@ -0,0 +1,2 @@
> +mount -t nfs localhost:/var/lib/libvirt/images /mnt -o nfsvers=3,nosuid,noexec,\
> +sync,lazytime
> diff --git a/tests/storagepoolxml2argvdata/pool-netfs-ns-mountopts-linux.argv b/tests/storagepoolxml2argvdata/pool-netfs-ns-mountopts-linux.argv
> new file mode 100644
> index 0000000000..486b2183b7
> --- /dev/null
> +++ b/tests/storagepoolxml2argvdata/pool-netfs-ns-mountopts-linux.argv
> @@ -0,0 +1,2 @@
> +mount -t nfs localhost:/var/lib/libvirt/images /mnt -o nfsvers=3,nodev,nosuid,\
> +noexec,sync,lazytime
> diff --git a/tests/storagepoolxml2argvdata/pool-netfs-ns-mountopts.argv b/tests/storagepoolxml2argvdata/pool-netfs-ns-mountopts.argv
> new file mode 100644
> index 0000000000..a63d6da456
> --- /dev/null
> +++ b/tests/storagepoolxml2argvdata/pool-netfs-ns-mountopts.argv
> @@ -0,0 +1 @@
> +mount -t nfs localhost:/var/lib/libvirt/images /mnt -o nfsvers=3,sync,lazytime
> diff --git a/tests/storagepoolxml2argvtest.c b/tests/storagepoolxml2argvtest.c
> index b6a46280cd..b6bc838f7b 100644
> --- a/tests/storagepoolxml2argvtest.c
> +++ b/tests/storagepoolxml2argvtest.c
> @@ -162,6 +162,9 @@ mymain(void)
> #define DO_TEST_FREEBSD(pool, ...) \
> DO_TEST_FULL(false, pool, false, true)
>
> + if (storageRegisterAll() < 0)
> + return EXIT_FAILURE;
> +
> DO_TEST_FAIL("pool-dir");
> DO_TEST_FAIL("pool-dir-naming");
> DO_TEST("pool-fs");
> @@ -177,14 +180,17 @@ mymain(void)
> DO_TEST_LINUX("pool-netfs");
> DO_TEST_LINUX("pool-netfs-auto");
> DO_TEST_LINUX("pool-netfs-protocol-ver");
> + DO_TEST_LINUX("pool-netfs-ns-mountopts");
> #elif defined(__FreeBSD__)
> DO_TEST_FREEBSD("pool-netfs");
> DO_TEST_FREEBSD("pool-netfs-auto");
> DO_TEST_FREEBSD("pool-netfs-protocol-ver");
> + DO_TEST_FREEBSD("pool-netfs-ns-mountopts");
> #else
> DO_TEST("pool-netfs");
> DO_TEST("pool-netfs-auto");
> DO_TEST("pool-netfs-protocol-ver");
> + DO_TEST("pool-netfs-ns-mountopts");
> #endif
> DO_TEST("pool-netfs-gluster");
> DO_TEST("pool-netfs-cifs");
> --
> 2.20.1
>
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
More information about the libvir-list
mailing list