Patchwork (GLUSTER-3743) nfs.volume-access: read-only [Does NOT work]

login
register
Submitter Vijaykumar
Date 2011-12-21 11:50:13
Message ID <20111221115013.GA9172@shell.gluster.com>
Download mbox | patch
Permalink /patch/8014/
State New
Headers show

Comments

Vijaykumar - 2011-12-21 11:50:13
---
 dvm/3743/3743.py  |  131 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 dvm/3743/testcase |    5 ++
 2 files changed, 136 insertions(+), 0 deletions(-)
 create mode 100755 dvm/3743/3743.py
 create mode 100755 dvm/3743/testcase

\ No newline at end of file

Patch

diff --git a/dvm/3743/3743.py b/dvm/3743/3743.py
new file mode 100755
index 0000000..b4c8b62
--- /dev/null
+++ b/dvm/3743/3743.py
@@ -0,0 +1,131 @@ 
+#!/usr/bin/python
+"""
+(GLUSTER-3743) nfs.volume-access: read-only [Does NOT work]
+"""
+
+from __future__ import with_statement
+import subprocess
+import sys
+import re
+import time 
+import os
+
+def bug(gdir):
+    cmd_dir = 'mkdir -p /exportdir/doa/'
+    dir_obj = subprocess.Popen(cmd_dir, shell=True, stdout=subprocess.PIPE)
+    ret = dir_obj.wait()
+    stderrdata = dir_obj.communicate()[1]
+    if ret:
+        print stderrdata
+        return 1
+    else:
+        pass
+
+    cmd_dir = 'mkdir -p /exportdir/client/'
+    dir_obj = subprocess.Popen(cmd_dir, shell=True, stdout=subprocess.PIPE)
+    ret = dir_obj.wait()
+    stderrdata = dir_obj.communicate()[1]
+    if ret:
+        print stderrdata
+        return 1
+    else:
+        pass
+
+    
+    cmd_vol = gdir+"/gluster volume create doa `hostname`:/exportdir/doa/d1 `hostname`:/exportdir/doa/d2"
+    vol_obj = subprocess.Popen(cmd_vol, shell=True, stdout=subprocess.PIPE)
+    ret_vol = vol_obj.wait()
+    stderrdata=vol_obj.communicate()[1]
+    
+    if ret_vol:
+        #print "error on creating vol"
+        print stderrdata
+        return 1
+    else:
+        pass
+    
+    cmd_start = gdir+"/gluster volume start doa"
+    start_obj = subprocess.Popen(cmd_start, shell=True, stdout=subprocess.PIPE)
+    ret_start = start_obj.wait()
+    stderrdata=start_obj.communicate()[1]
+    
+    if ret_start:
+        print stderrdata
+        return 1
+    else:
+        pass
+
+    cmd_set = gdir+"/gluster volume set doa nfs.volume-access read-only"
+    cmd_obj = subprocess.Popen(cmd_set, shell=True, stdout=subprocess.PIPE)
+    ret = cmd_obj.wait()
+    stderrdata = cmd_obj.communicate()[1]
+
+    if ret:
+        #print " set volume fail"
+        print stderrdata
+        return 1
+    else:
+        pass
+
+    time.sleep(10)
+    
+    cmd_obj = subprocess.Popen('showmount -e',shell=True, stdout=subprocess.PIPE)
+    stdoutdata = cmd_obj.communicate()
+    match = re.search('/doa',stdoutdata[0])
+    if match:
+        pass
+    else:
+        print "showmount"
+        print stdoutdata[1]
+        return 1
+    
+        
+
+    time.sleep(10)
+    cmd_mnt = "mount -t nfs -o nolock,vers=3  `hostname`:/doa /exportdir/client/"
+    cmd_obj = subprocess.Popen(cmd_mnt, shell=True, stdout=subprocess.PIPE)
+    ret = cmd_obj.wait()
+    stderrdata= cmd_obj.communicate()[0]
+    if ret:
+        print "error"
+        print stderrdata
+        return 1
+    else:
+        pass
+
+    cmd_tch = "touch a"
+    os.chdir('/exportdir/client')
+    cmd_obj = subprocess.Popen(cmd_tch, shell=True, stdout=subprocess.PIPE)
+    ret = cmd_obj.wait()
+    stderrdata = cmd_obj.communicate()
+    match = re.search('Read-only file system',stderrdata[0])
+        
+    if ret:
+        print stderrdata[1]
+        return 0
+    else:
+        return 1
+        
+    
+def main():
+    gdir = sys.argv[1]
+    return_status = bug(gdir)
+    obj = subprocess.Popen('umount -l /exportdir/client/', shell=True, stdout=subprocess.PIPE)
+    ret = obj.wait()
+    obj = subprocess.Popen('rm -rf /exportdir/', shell=True, stdout=subprocess.PIPE)
+    ret = obj.wait()
+    obj = subprocess.Popen('rm -rf /etc/glusterd/', shell=True, stdout=subprocess.PIPE)
+    ret = obj.wait()
+    obj = subprocess.Popen('/etc/init.d/glusterd restart', shell=True, stdout=subprocess.PIPE)
+    ret = obj.wait()
+    
+    if return_status:
+        print "unsuccessful"
+        sys.exit(1)
+    else:
+        print "successful"
+        sys.exit(0)
+
+
+if __name__=='__main__':
+    main()
diff --git a/dvm/3743/testcase b/dvm/3743/testcase
new file mode 100755
index 0000000..7d58115
--- /dev/null
+++ b/dvm/3743/testcase
@@ -0,0 +1,5 @@ 
+#!/bin/bash
+
+python $cwd/dvm/$global_bug_id/$global_bug_id.py $GLUSTERFSDIR
+ret=$?
+exit $ret;