[PATCH v2 3/7] docs: added rng schema and formatdomain for NFS

Ryan Gahagan rgahagan at cs.utexas.edu
Wed Jan 6 21:32:28 UTC 2021


Signed-off-by: Ryan Gahagan <rgahagan at cs.utexas.edu>
---
 docs/formatdomain.rst         | 24 ++++++++++++++++++++++--
 docs/schemas/domaincommon.rng | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 54 insertions(+), 2 deletions(-)

diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index 1189795974..4402c52461 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -2370,6 +2370,14 @@ paravirtualized driver is specified via the ``disk`` element.
        </source>
        <target dev='sdb' bus='scsi'/>
      </disk>
+     <disk type='network' device='disk'>
+       <driver name='qemu' type='raw'/>
+       <source protocol='nfs' name='PATH'>
+         <host name='example.com'/>
+         <identity user='USER' group='GROUP'/>
+       </source>
+       <target dev='vda' bus='virtio'/>
+     </disk>
      <disk type='network' device='lun'>
        <driver name='qemu' type='raw'/>
        <source protocol='iscsi' name='iqn.2013-07.com.example:iscsi-nopool/0'>
@@ -2491,7 +2499,7 @@ paravirtualized driver is specified via the ``disk`` element.
    ``network``
       The ``protocol`` attribute specifies the protocol to access to the
       requested image. Possible values are "nbd", "iscsi", "rbd", "sheepdog",
-      "gluster", "vxhs", "http", "https", "ftp", ftps", or "tftp".
+      "gluster", "vxhs", "nfs", "http", "https", "ftp", ftps", or "tftp".
 
       For any ``protocol`` other than ``nbd`` an additional attribute ``name``
       is mandatory to specify which volume/image will be used.
@@ -2601,12 +2609,15 @@ paravirtualized driver is specified via the ``disk`` element.
       sheepdog one of the sheepdog servers (default is localhost:7000) zero or one                                                  7000
       gluster  a server running glusterd daemon                        one or more ( :since:`Since 2.1.0` ), just one prior to that 24007
       vxhs     a server running Veritas HyperScale daemon              only one                                                     9999
+      nfs      a server running Network File System                    only one ( :since:`Since 7.0.0` )                            must be omitted
       ======== ======================================================= ============================================================ ================
 
       gluster supports "tcp", "rdma", "unix" as valid values for the transport
       attribute. nbd supports "tcp" and "unix". Others only support "tcp". If
       nothing is specified, "tcp" is assumed. If the transport is "unix", the
-      socket attribute specifies the path to an AF_UNIX socket.
+      socket attribute specifies the path to an AF_UNIX socket. nfs only
+      supports the use of a "tcp" transport, and does not support using a
+      port at all so it must be omitted.
 
    ``snapshot``
       The ``name`` attribute of ``snapshot`` element can optionally specify an
@@ -2683,6 +2694,15 @@ paravirtualized driver is specified via the ``disk`` element.
    ``timeout``
       Specifies the connection timeout for protocols which support it. Note that
       '0' is considered as if the value is not provided. :since:`Since 6.2.0`
+   ``identity``
+      When using an ``nfs`` protocol, this is used to provide information on the
+      configuration of the user and group. The element has two attributes,
+      ``user`` and ``group``. The user can provide these elements as user or
+      group strings, or as user and group ID numbers directly if the string
+      is formatted using a "+" at the beginning of the ID number. If either
+      of these attributes is omitted, then that field is assumed to be the
+      default value for the current system. If both ``user`` and ``group``
+      are intended to be default, then the entire element may be omitted.
 
    For a "file" or "volume" disk type which represents a cdrom or floppy (the
    ``device`` attribute), it is possible to define policy what to do with the
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index 24b4994670..c3a4dd8ebc 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -1774,6 +1774,21 @@
     </element>
   </define>
 
+  <define name="diskSourceNetworkNFS">
+    <element name="identity">
+      <optional>
+        <attribute name="user">
+          <ref name="genericName"/>
+        </attribute>
+      </optional>
+      <optional>
+        <attribute name="group">
+          <ref name="genericName"/>
+        </attribute>
+      </optional>
+    </element>
+  </define>
+
   <define name="diskSourceNetworkProtocolRBD">
     <element name="source">
       <interleave>
@@ -2039,6 +2054,22 @@
     </element>
   </define>
 
+  <define name="diskSourceNetworkProtocolNFS">
+    <element name="source">
+      <interleave>
+        <attribute name="protocol">
+          <choice>
+            <value>nfs</value>
+          </choice>
+        </attribute>
+        <attribute name="name"/>
+        <ref name="diskSourceCommon"/>
+        <ref name="diskSourceNetworkHost"/>
+        <ref name="diskSourceNetworkNFS"/>
+      </interleave>
+    </element>
+  </define>
+
   <define name="diskSourceNetwork">
     <attribute name="type">
       <value>network</value>
@@ -2053,6 +2084,7 @@
       <ref name="diskSourceNetworkProtocolFTPS"/>
       <ref name="diskSourceNetworkProtocolSimple"/>
       <ref name="diskSourceNetworkProtocolVxHS"/>
+      <ref name="diskSourceNetworkProtocolNFS"/>
     </choice>
   </define>
 
-- 
2.29.2




More information about the libvir-list mailing list