Xavi Francisco has uploaded a new change for review.

Change subject: storage: Add custom mount options to NFS SD
......................................................................

storage: Add custom mount options to NFS SD

When creating or modifying a NFS Storage Domain a user should be able to
pass more mount options to the underlying host.

This patch implements a way to pass custom mount options to the
storageServer using the same approach as the PosixFS SD.

Change-Id: I1fd35107d14608a2e6f15feb6118b9cb33a22d05
Bug-Url: https://bugzilla.redhat.com/1087059
Signed-off-by: Xavi Francisco <xfran...@redhat.com>
---
M vdsm/storage/hsm.py
M vdsm/storage/storageServer.py
2 files changed, 20 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/84/27584/1

diff --git a/vdsm/storage/hsm.py b/vdsm/storage/hsm.py
index 8a9bdf1..0a81dc2 100644
--- a/vdsm/storage/hsm.py
+++ b/vdsm/storage/hsm.py
@@ -210,7 +210,8 @@
                 conDict.get('connection', None),
                 getIntParam(conDict, 'retrans', None),
                 getIntParam(conDict, 'timeout', None),
-                version)
+                version,
+                conDict.get('mnt_options', None))
     elif typeName == 'posixfs':
         params = storageServer.PosixFsConnectionParameters(
             conDict.get('connection', None),
diff --git a/vdsm/storage/storageServer.py b/vdsm/storage/storageServer.py
index 21260b6..421ef7c 100644
--- a/vdsm/storage/storageServer.py
+++ b/vdsm/storage/storageServer.py
@@ -62,7 +62,8 @@
 
 LocaFsConnectionParameters = namedtuple("LocaFsConnectionParameters", "path")
 NfsConnectionParameters = namedtuple("NfsConnectionParameters",
-                                     "export, retrans, timeout, version")
+                                     "export, retrans, timeout, version, "
+                                     "options")
 
 ConnectionInfo = namedtuple("ConnectionInfo", "type, params")
 
@@ -273,6 +274,10 @@
         return self._retrans
 
     @property
+    def options(self):
+        return self._options
+
+    @property
     def version(self):
         if self._version is not None:
             return self._version
@@ -293,14 +298,16 @@
         # Return -1 to signify the version has not been negotiated yet
         return -1
 
-    def __init__(self, export, timeout=600, retrans=6, version=None):
+    def __init__(self, export, timeout=600, retrans=6, version=None,
+                 options=""):
         self._remotePath = normpath(export)
-        options = self.DEFAULT_OPTIONS[:]
+        optionsList = self.DEFAULT_OPTIONS[:]
         self._timeout = timeout
         self._version = version
         self._retrans = retrans
-        options.append("timeo=%d" % timeout)
-        options.append("retrans=%d" % retrans)
+        self._options = options
+        optionsList.append("timeo=%d" % timeout)
+        optionsList.append("retrans=%d" % retrans)
 
         if version:
             try:
@@ -311,11 +318,13 @@
             if len(vers) > 2:
                 raise ValueError("Invalid NFS version '%s'" % version)
 
-            options.append("nfsvers=%d" % vers[0])
+            optionsList.append("nfsvers=%d" % vers[0])
             if len(vers) > 1:
-                options.append("minorversion=%d" % vers[1])
-
-        self._mountCon = MountConnection(export, "nfs", ",".join(options))
+                optionsList.append("minorversion=%d" % vers[1])
+        nfs_options = ",".join(optionsList)
+        if options:
+            nfs_options = ",".join((nfs_options, options))
+        self._mountCon = MountConnection(export, "nfs", nfs_options)
 
     def connect(self):
         return self._mountCon.connect()


-- 
To view, visit http://gerrit.ovirt.org/27584
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1fd35107d14608a2e6f15feb6118b9cb33a22d05
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Xavi Francisco <xfran...@redhat.com>
_______________________________________________
vdsm-patches mailing list
vdsm-patches@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches

Reply via email to