[Ocfs2-test-devel] [PATCH 1/1] Ocfs2-test: Let remote_mount support mounting options.
Tristan Ye
tristan.ye at oracle.com
Tue Aug 11 01:45:04 PDT 2009
Several tests such as quota_test should add mounting options
when mounting volume among nodes, we therefore have to support
this in remote_mount.
Signed-off-by: Tristan Ye <tristan.ye at oracle.com>
---
programs/python_common/command.py | 14 +++++++++++++-
programs/python_common/o2tf.py | 4 ++--
programs/python_common/o2tf.sh | 13 +++++++++++--
programs/python_common/remote_mount.py | 18 +++++++++++++++---
4 files changed, 41 insertions(+), 8 deletions(-)
diff --git a/programs/python_common/command.py b/programs/python_common/command.py
index 04c99e8..e6ca351 100755
--- a/programs/python_common/command.py
+++ b/programs/python_common/command.py
@@ -34,6 +34,7 @@ logfile = config.LOGFILE
Usage = 'Usage: %prog [--Debug] \
[-l|--label label] \
[-m|--mountpoint mountpoint] \
+[-o|--options mountoptions] \
[--mount] \
[--umount]'
#
@@ -62,6 +63,12 @@ if __name__=='__main__':
type='string',
help='Directory where the partition will be mount.')
#
+ parser.add_option('-o',
+ '--options',
+ dest='mountoptions',
+ type='string',
+ help='mounting options to be added')
+#
parser.add_option('--umount',
action="store_true",
dest='doumount',
@@ -77,9 +84,14 @@ if __name__=='__main__':
parser.error('Please specify mountpoint.')
if not options.label:
parser.error('Please specify Label.')
+ if options.mountoptions:
+ mt_options = '-o %s' %(options.mountoptions)
+ else:
+ mt_options = ''
if not mounted:
o2tf.SudoMount(options.DEBUGON, logfile,
- options.mountpoint, options.label)
+ options.mountpoint, options.label,
+ mt_options)
else:
o2tf.printlog('Partition already mounted.',
logfile, 0, '')
diff --git a/programs/python_common/o2tf.py b/programs/python_common/o2tf.py
index ab4374a..720fcf6 100644
--- a/programs/python_common/o2tf.py
+++ b/programs/python_common/o2tf.py
@@ -405,10 +405,10 @@ def SudoUmount(DEBUGON, logfile, mountpoint):
#
# SudoMount is used by:
#
-def SudoMount(DEBUGON, logfile, mountpoint, label):
+def SudoMount(DEBUGON, logfile, mountpoint, label, options):
'''Find and return device Label based on devicename'''
from commands import getstatusoutput
- status = getstatusoutput('sudo mount LABEL=%s %s' % (label,
+ status = getstatusoutput('sudo mount LABEL=%s %s %s' % (label, options,
mountpoint))
if status[0] == 0:
return
diff --git a/programs/python_common/o2tf.sh b/programs/python_common/o2tf.sh
index c73f66c..d912a9b 100755
--- a/programs/python_common/o2tf.sh
+++ b/programs/python_common/o2tf.sh
@@ -252,15 +252,24 @@ function f_remote_mount()
#${2} specify label name
#${3} specify mount point
#${4} specify MPI hosts, it's comma-spearated-value
+ #${5} specify mount options
local logfile=${1}
local L=${2}
local M=${3}
local MPIHOSTS=${4}
+ local MT_OPTIONS=
+
+ shift 4
+
+ local O=${@}
+ if [ ! -z "${O}" ];then
+ MT_OPTIONS="-o ${O}"
+ fi
- f_LogMsg ${logfile} "${REMOTE_MOUNT_BIN} -l ${L} -m ${M} -n ${MPIHOSTS}"
- ${REMOTE_MOUNT_BIN} -l ${L} -m ${M} -n ${MPIHOSTS}>>${logfile} 2>&1
+ f_LogMsg ${logfile} "${REMOTE_MOUNT_BIN} -l ${L} -m ${M} -n ${MPIHOSTS} ${MT_OPTIONS}"
+ ${REMOTE_MOUNT_BIN} -l ${L} -m ${M} -n ${MPIHOSTS} ${MT_OPTIONS}>>${logfile} 2>&1
RET=$?
if [ "${RET}" != "0" ];then
diff --git a/programs/python_common/remote_mount.py b/programs/python_common/remote_mount.py
index ae2a6c5..754f1ab 100755
--- a/programs/python_common/remote_mount.py
+++ b/programs/python_common/remote_mount.py
@@ -37,7 +37,8 @@ logfile = config.LOGFILE
#
Usage = 'Usage: %prog [-l|-label label] \
[-m|--mountpoint mountpoint] \
-[-n|--nodes nodelist]'
+[-n|--nodes nodelist] \
+[-o|--options mountoptions]'
#
if userid == 'root':
o2tf.printlog('This program uses Openmpi. Should not run as root',
@@ -63,6 +64,12 @@ if __name__=='__main__':
dest='nodelist',
type='string',
help='List of nodes where the test will be executed.')
+
+ parser.add_option('-o',
+ '--options',
+ dest='mountoptions',
+ type='string',
+ help='Mounting options to be added.')
#
(options, args) = parser.parse_args()
if len(args) != 0:
@@ -73,6 +80,10 @@ if __name__=='__main__':
parser.error('Please specify mountpoint.')
if not options.label:
parser.error('Please specify Label.')
+ if options.mountoptions:
+ mt_options = '-o %s' %(options.mountoptions)
+ else:
+ mt_options = ''
#
nodelist = options.nodelist.split(',')
nodelen = len(nodelist)
@@ -88,9 +99,10 @@ if DEBUGON:
else:
buildcmd=config.BINDIR+'/command.py --mount'
#
-command = str('%s -l %s -m %s' % (buildcmd,
+command = str('%s -l %s -m %s %s' % (buildcmd,
options.label,
- options.mountpoint))
+ options.mountpoint,
+ mt_options))
#
o2tf.OpenMPIInit(DEBUGON, options.nodelist, logfile, 'ssh')
#
--
1.5.5
More information about the Ocfs2-test-devel
mailing list