summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorShireesh Anjal <anjalshireesh@gmail.com>2011-06-09 07:18:10 -0700
committerShireesh Anjal <anjalshireesh@gmail.com>2011-06-09 07:18:10 -0700
commit81e667e15bb51c6f998050c5dee231fb433845c9 (patch)
tree9ffaa50015d4eb0200d6192dd1b99ec6c7baad66 /src
parent88d3c1664d867df409589911afd42277cff5a1dc (diff)
parente7438d4a3e5990c69820f37c80bd4c9a53247ef8 (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')
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/DiskUtils.py16
-rwxr-xr-xsrc/com.gluster.storage.management.server.scripts/src/clear_volume_directory.py31
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/multicast_response.py3
-rwxr-xr-xsrc/com.gluster.storage.management.server/WebContent/scripts/vmware-discover-servers.py9
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: