diff options
author | Shireesh Anjal <anjalshireesh@gmail.com> | 2011-06-09 07:18:10 -0700 |
---|---|---|
committer | Shireesh Anjal <anjalshireesh@gmail.com> | 2011-06-09 07:18:10 -0700 |
commit | 81e667e15bb51c6f998050c5dee231fb433845c9 (patch) | |
tree | 9ffaa50015d4eb0200d6192dd1b99ec6c7baad66 /src | |
parent | 88d3c1664d867df409589911afd42277cff5a1dc (diff) | |
parent | e7438d4a3e5990c69820f37c80bd4c9a53247ef8 (diff) |
Merge pull request #65 from TimothyAsir/master
Bug fixed in vmware-discover-servers.py. Added timestamp to check recent response.
Diffstat (limited to 'src')
4 files changed, 40 insertions, 19 deletions
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 <disk name> <volume name> [-d/--delete]" % sys.argv[0] + print >> sys.stderr, "usage: %s <disk mount point> <volume name> [-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() - diff --git a/src/com.gluster.storage.management.server.scripts/src/multicast_response.py b/src/com.gluster.storage.management.server.scripts/src/multicast_response.py index baa3f830..3d8125d8 100644 --- a/src/com.gluster.storage.management.server.scripts/src/multicast_response.py +++ b/src/com.gluster.storage.management.server.scripts/src/multicast_response.py @@ -52,7 +52,8 @@ def response(multiCastGroup, port): if isinpeer():
time.sleep(5)
continue
- socketSend.sendto(socket.gethostname(), (multiCastGroup, port))
+ socketSend.sendto("<response><servername>%s</servername><time>%s</time></response>" % (socket.gethostname(), time.time()),
+ (multiCastGroup, port))
request = None
def main():
diff --git a/src/com.gluster.storage.management.server/WebContent/scripts/vmware-discover-servers.py b/src/com.gluster.storage.management.server/WebContent/scripts/vmware-discover-servers.py index 6ac15fed..80e6101c 100755 --- a/src/com.gluster.storage.management.server/WebContent/scripts/vmware-discover-servers.py +++ b/src/com.gluster.storage.management.server/WebContent/scripts/vmware-discover-servers.py @@ -23,6 +23,8 @@ import struct import syslog import Globals import Common +import time +from XmlHandler import * class TimeoutException(Exception): pass @@ -50,7 +52,12 @@ def serverDiscoveryRequest(multiCastGroup, port): while True: response = socketReceive.recvfrom(200) if response and response[0].upper() != "SERVERDISCOVERY": - servers.append(response[0]) + dom = XDOM() + dom.parseString(response[0]) + responsetime = dom.getTextByTagRoute("response.time") + servername = dom.getTextByTagRoute("response.servername") + if time.time() - float(responsetime) < 60: + servers.append(servername) signal.signal(signal.SIGALRM, timeoutSignal) signal.alarm(3) except TimeoutException: |