From e7438d4a3e5990c69820f37c80bd4c9a53247ef8 Mon Sep 17 00:00:00 2001 From: Tim Date: Thu, 9 Jun 2011 17:33:01 +0530 Subject: Updated clear_volume_directory.py based on requirement changes Updated function to clear volume directory using disk mount point and volume name --- .../src/DiskUtils.py | 16 +++++++++++ .../src/clear_volume_directory.py | 31 ++++++++++------------ 2 files changed, 30 insertions(+), 17 deletions(-) (limited to 'src/com.gluster.storage.management.server.scripts') diff --git a/src/com.gluster.storage.management.server.scripts/src/DiskUtils.py b/src/com.gluster.storage.management.server.scripts/src/DiskUtils.py index 0e42bba2..69417f88 100644 --- a/src/com.gluster.storage.management.server.scripts/src/DiskUtils.py +++ b/src/com.gluster.storage.management.server.scripts/src/DiskUtils.py @@ -210,6 +210,22 @@ def readFsTab(fsTabFile=Globals.FSTAB_FILE): return fsTabEntryList +def checkDiskMountPoint(diskMountPoint): + try: + fstabEntries = open(Globals.FSTAB_FILE).readlines() + except IOError: + fstabEntries = [] + found = False + for entry in fstabEntries: + entry = entry.strip() + if not entry: + continue + entries = entry.split() + if entries and len(entries) > 1 and entries[0].startswith("UUID=") and entries[1].upper() == diskMountPoint.upper(): + return True + return False + + def getMountPointByUuid(partitionUuid): # check uuid in etc/fstab try: diff --git a/src/com.gluster.storage.management.server.scripts/src/clear_volume_directory.py b/src/com.gluster.storage.management.server.scripts/src/clear_volume_directory.py index 3bd0ab6f..6cf2ef38 100755 --- a/src/com.gluster.storage.management.server.scripts/src/clear_volume_directory.py +++ b/src/com.gluster.storage.management.server.scripts/src/clear_volume_directory.py @@ -25,28 +25,26 @@ import Utils import Common from optparse import OptionParser -def clearVolumeDirectory(disk, volumeName, todelete): - - # Retrieving disk uuid - diskUuid = DiskUtils.getUuidByDiskPartition(DiskUtils.getDevice(disk)) - +def clearVolumeDirectory(diskMountPoint, volumeName, todelete): rs = ResponseXml() - if not diskUuid: - Common.log(syslog.LOG_ERR, "failed to find disk:%s uuid" % disk) + if not DiskUtils.checkDiskMountPoint(diskMountPoint): + Common.log(syslog.LOG_ERR, "failed to find disk mount point %s" % diskMountPoint) rs.appendTagRoute("status.code", "-1") - rs.appendTagRoute("status.message", "Error: Unable to find disk uuid") + rs.appendTagRoute("status.message", "Error: Mount point does not exists") return rs.toprettyxml() - # Retrieving disk mount point using disk uuid - diskMountPoint = DiskUtils.getMountPointByUuid(diskUuid) if not os.path.exists(diskMountPoint): - Common.log(syslog.LOG_ERR, "failed to retrieve disk:%s mount point" % disk) - rs.appendTagRoute("status.code", "-1") - rs.appendTagRoute("status.message", "Error: Failed to retrieve disk details") + rs.appendTagRoute("status.code", "-2") + rs.appendTagRoute("status.message", "Error: Mount point path does not exists") return rs.toprettyxml() # clear volume directory from the disk volumeDirectory = "%s/%s" % (diskMountPoint, volumeName) + if not os.path.exists(volumeDirectory): + rs.appendTagRoute("status.code", "-3") + rs.appendTagRoute("status.message", "Error: Volume directory does not exists") + return rs.toprettyxml() + newVolumeDirectoryName = "%s_%s" % (volumeDirectory, time.time()) command = ["sudo", "mv", "-f", volumeDirectory, newVolumeDirectoryName] rv = Utils.runCommandFG(command, stdout=True, root=True) @@ -88,14 +86,13 @@ def main(): (options, args) = parser.parse_args() if len(args) != 2: - print >> sys.stderr, "usage: %s [-d/--delete]" % sys.argv[0] + print >> sys.stderr, "usage: %s [-d/--delete]" % sys.argv[0] sys.exit(-1) - disk = args[0] + diskMountPoint = args[0] volumeName = args[1] - print clearVolumeDirectory(disk, volumeName, options.deletedir) + print clearVolumeDirectory(diskMountPoint, volumeName, options.deletedir) sys.exit(0) if __name__ == "__main__": main() - -- cgit