summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.server.scripts
diff options
context:
space:
mode:
authorTim <timothyasir@gluster.com>2011-04-26 18:18:09 +0530
committerTim <timothyasir@gluster.com>2011-04-26 18:18:09 +0530
commitb2187852532fcc1e5671452d86a0eb472d1204c6 (patch)
tree8654e511e25ab9f8384683a3871a12223db171e0 /src/com.gluster.storage.management.server.scripts
parentc11192c4cf06f14ad90d72819ebeee2ad527f16d (diff)
Added get-disk-mount-point.py file to get disk mount point of a given path
Added readFsTab function into DiskUtils.py to read /etc/fstab entries
Diffstat (limited to 'src/com.gluster.storage.management.server.scripts')
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/common/DiskUtils.py34
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/common/Utils.py32
-rwxr-xr-xsrc/com.gluster.storage.management.server.scripts/src/nodes/get-disk-mount-point.py64
3 files changed, 130 insertions, 0 deletions
diff --git a/src/com.gluster.storage.management.server.scripts/src/common/DiskUtils.py b/src/com.gluster.storage.management.server.scripts/src/common/DiskUtils.py
index bde12500..0e42bba2 100644
--- a/src/com.gluster.storage.management.server.scripts/src/common/DiskUtils.py
+++ b/src/com.gluster.storage.management.server.scripts/src/common/DiskUtils.py
@@ -175,6 +175,40 @@ def getDiskList(diskDeviceList=None):
diskList.append(disk)
return diskList
+def readFsTab(fsTabFile=Globals.FSTAB_FILE):
+ try:
+ fsTabfp = open(fsTabFile)
+ except IOError, e:
+ Utils.log("readFsTab(): " + str(e))
+ return None
+
+ fsTabEntryList = []
+ for line in fsTabfp:
+ tokens = line.strip().split()
+ if not tokens or tokens[0].startswith('#'):
+ continue
+ fsTabEntry = {}
+ fsTabEntry["Device"] = None
+ fsTabEntry["MountPoint"] = None
+ fsTabEntry["FsType"] = None
+ fsTabEntry["Options"] = None
+ fsTabEntry["DumpOption"] = 0
+ fsTabEntry["fsckOrder"] = 0
+ try:
+ fsTabEntry["Device"] = tokens[0]
+ fsTabEntry["MountPoint"] = tokens[1]
+ fsTabEntry["FsType"] = tokens[2]
+ fsTabEntry["Options"] = tokens[3]
+ fsTabEntry["DumpOption"] = tokens[4]
+ fsTabEntry["fsckOrder"] = tokens[5]
+ except IndexError:
+ pass
+ if fsTabEntry["Device"] and fsTabEntry["MountPoint"] and fsTabEntry["FsType"] and fsTabEntry["Options"]:
+ fsTabEntryList.append(fsTabEntry)
+
+ fsTabfp.close()
+ return fsTabEntryList
+
def getMountPointByUuid(partitionUuid):
# check uuid in etc/fstab
diff --git a/src/com.gluster.storage.management.server.scripts/src/common/Utils.py b/src/com.gluster.storage.management.server.scripts/src/common/Utils.py
index 601fd3dc..5140b641 100644
--- a/src/com.gluster.storage.management.server.scripts/src/common/Utils.py
+++ b/src/com.gluster.storage.management.server.scripts/src/common/Utils.py
@@ -117,6 +117,38 @@ def openLog(fileName=None):
return False
return True
+def record(priority, message=None):
+ global LOG_FILE_OBJ
+ global SYSLOG_REQUIRED
+
+ stack = inspect.stack()[1]
+ if stack[3] == "<module>":
+ prefix = "%s:%s:%s" % (stack[1], stack[2], stack[3])
+ else:
+ prefix = "%s:%s:%s()" % (stack[1], stack[2], stack[3])
+
+ if type(priority) == type("") or type(priority) == type(u""):
+ logPriority = syslog.LOG_INFO
+ logMessage = priority
+ else:
+ logPriority = priority
+ logMessage = message
+
+ if SYSLOG_REQUIRED:
+ syslog.syslog(logPriority, "[%s]: %s" % (prefix, logMessage))
+ return
+
+ fp = sys.stderr
+ if LOG_FILE_OBJ:
+ fp = LOG_FILE_OBJ
+
+ fp.write("[%s] %s [%s]: %s" % (str(datetime.now()), _getLogCode(logPriority), prefix, logMessage))
+ if logMessage[-1] != '\n':
+ fp.write("\n")
+ fp.flush()
+ return
+
+
def trace(message):
if message:
log(syslog.LOG_DEBUG, message)
diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/get-disk-mount-point.py b/src/com.gluster.storage.management.server.scripts/src/nodes/get-disk-mount-point.py
new file mode 100755
index 00000000..b2274b4d
--- /dev/null
+++ b/src/com.gluster.storage.management.server.scripts/src/nodes/get-disk-mount-point.py
@@ -0,0 +1,64 @@
+#!/usr/bin/python
+# Copyright (C) 2010 Gluster, Inc. <http://www.gluster.com>
+# This file is part of Gluster Storage Platform.
+#
+# Gluster Storage Platform is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 3 of
+# the License, or (at your option) any later version.
+#
+# Gluster Storage Platform is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see
+# <http://www.gnu.org/licenses/>.
+
+import os
+import syslog
+import Common
+from DiskUtils import *
+from XmlHandler import ResponseXml
+
+
+def getmountpoint(path):
+ if not path:
+ Common.log(syslog.LOG_ERR, "Not a valid path:%s" % path)
+ rs.appendTagRoute("status.code", "-1")
+ rs.appendTagRoute("status.message", "Error: given path name is empty")
+ return rs.toprettyxml()
+
+ rs = ResponseXml()
+ mountPoint = None
+
+ for line in readFsTab():
+ if path.startswith(line['MountPoint']):
+ if not mountPoint:
+ mountPoint = line['MountPoint']
+ if len(line['MountPoint']) > len(mountPoint):
+ mountPoint = line['MountPoint']
+
+ if "/" == mountPoint or not mountPoint:
+ Common.log(syslog.LOG_ERR, "failed to find mount point of the given path:%s" % path)
+ rs.appendTagRoute("status.code", "-1")
+ rs.appendTagRoute("status.message", "Error: Unable to find disk mount point")
+ return rs.toprettyxml()
+
+ rs.appendTagRoute("status.code", "0")
+ rs.appendTagRoute("status.message", mountPoint)
+ return rs.toprettyxml()
+
+def main():
+ if len(sys.argv) != 2:
+ print >> sys.stderr, "usage: %s <path>" % sys.argv[0]
+ sys.exit(-1)
+
+ path = sys.argv[1]
+ print getmountpoint(path)
+ sys.exit(0)
+
+if __name__ == "__main__":
+ main()
+