summaryrefslogtreecommitdiffstats
path: root/python_pgms/gsyncd_mtab_race/mtab_gsync.py
diff options
context:
space:
mode:
authorLakshmipathi <lakshmipathi@gluster.com>2011-09-15 15:07:26 +0530
committerLakshmipathi.G <lakshmipathi@gluster.com>2011-09-15 15:07:26 +0530
commit37500616aadfa94ab816e71a0c18df3d91b5e42f (patch)
tree8de148217da0473969d31ec956169f91783acf91 /python_pgms/gsyncd_mtab_race/mtab_gsync.py
parent9f10e75b5cd5ef1dc2a0d166d6de6f8c0ef662a0 (diff)
gsyncd python script for checking mtab race
Diffstat (limited to 'python_pgms/gsyncd_mtab_race/mtab_gsync.py')
-rw-r--r--python_pgms/gsyncd_mtab_race/mtab_gsync.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/python_pgms/gsyncd_mtab_race/mtab_gsync.py b/python_pgms/gsyncd_mtab_race/mtab_gsync.py
new file mode 100644
index 0000000..c2fe7e6
--- /dev/null
+++ b/python_pgms/gsyncd_mtab_race/mtab_gsync.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python
+
+import os, sys, tempfile, select, time
+
+def connect(vol, sleeptime=None):
+ d = tempfile.mkdtemp()
+ try:
+ argv = ["glusterfs", "-LDEBUG", "-l/tmp/gl0.log", '-s', "localhost",
+ '--volfile-id', vol, '--client-pid=-1', d]
+ if os.spawnvp(os.P_WAIT, argv[0], argv):
+ raise RuntimeError("command failed: " + " ".join(argv))
+ print >> sys.stderr, 'auxiliary glusterfs mount in place'
+ os.chdir(d)
+ argv = ['umount', '-l', d]
+ if sleeptime != None:
+ time.sleep(sleeptime)
+ if os.spawnvp(os.P_WAIT, argv[0], argv):
+ raise RuntimeError("command failed: " + " ".join(argv))
+ finally:
+ try:
+ os.rmdir(d)
+ except:
+ print >> sys.stderr, 'stale mount possibly left behind on ' + d
+ print >> sys.stderr, 'auxiliary glusterfs mount prepared'
+
+args = sys.argv[1:2]
+if len(sys.argv) > 2:
+ args.append(float(sys.argv[2]))
+connect(*args)