From 536e96b51ae8f7ad9edb69265933625c9e407e81 Mon Sep 17 00:00:00 2001 From: Tim Date: Fri, 29 Apr 2011 09:31:55 +0530 Subject: Updated multicast_response.py to response only if the server is not part of peer list. --- .../src/nodes/multicast_response.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src') diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/multicast_response.py b/src/com.gluster.storage.management.server.scripts/src/nodes/multicast_response.py index 64bc0899..dba65c07 100644 --- a/src/com.gluster.storage.management.server.scripts/src/nodes/multicast_response.py +++ b/src/com.gluster.storage.management.server.scripts/src/nodes/multicast_response.py @@ -16,10 +16,26 @@ # along with this program. If not, see # . +import os +import string +import time +import Utils import socket import struct import Globals +def isinpeer(): + command = "gluster peer status" + status = Utils.runCommand(command, output=True, root=True) + if status["Status"] == 0: + return True + #lines = status["Stdout"].split("\n") + #for line in lines: + # if string.upper(line).startswith("HOSTNAME: %s" % string.upper(socket.gethostname)): + # return True + Utils.log("command [%s] failed with [%d:%s]" % (command, status["Status"], os.strerror(status["Status"]))) + return False + def response(multiCastGroup, port): # waiting for the request! socketRequest = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) @@ -33,6 +49,9 @@ def response(multiCastGroup, port): #TODO: Remove infinite loop and make this as a deamon (service) while True: + if isinpeer(): + time.sleep(5) + continue request = socketRequest.recvfrom(1024) if request and request[0].upper() == "SERVERDISCOVERY": socketSend.sendto(socket.gethostname(), (multiCastGroup, port)) -- cgit From 14c2ae3d7351b6884c6e94f771896610cbdbfec4 Mon Sep 17 00:00:00 2001 From: Tim Date: Fri, 29 Apr 2011 11:05:18 +0530 Subject: Updated clear volume directory function to delete or rename directory based on the given option. --- .../src/nodes/clear_volume_directory.py | 33 ++++++++++++++++++---- 1 file changed, 27 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/clear_volume_directory.py b/src/com.gluster.storage.management.server.scripts/src/nodes/clear_volume_directory.py index a8a003a7..ff6b6484 100755 --- a/src/com.gluster.storage.management.server.scripts/src/nodes/clear_volume_directory.py +++ b/src/com.gluster.storage.management.server.scripts/src/nodes/clear_volume_directory.py @@ -18,12 +18,13 @@ import os import sys import syslog +import time from XmlHandler import ResponseXml import DiskUtils import Utils import Common -def clearVolumeDirectory(disk, volumeName): +def clearVolumeDirectory(disk, volumeName, option): # Retrieving disk uuid diskUuid = DiskUtils.getUuidByDiskPartition(DiskUtils.getDevice(disk)) @@ -45,13 +46,31 @@ def clearVolumeDirectory(disk, volumeName): # clear volume directory from the disk volumeDirectory = "%s/%s" % (diskMountPoint, volumeName) - command = ["sudo", "rm", "-fr", volumeDirectory] + newVolumeDirectoryName = "%s_%s" % (volumeDirectory, time.time()) + command = ["sudo", "mv", "-f", volumeDirectory, newVolumeDirectoryName] rv = Utils.runCommandFG(command, stdout=True, root=True) message = Common.stripEmptyLines(rv["Stdout"]) if rv["Stderr"]: error = Common.stripEmptyLines(rv["Stderr"]) message += "Error: [%s]" % (error) - Common.log(syslog.LOG_ERR, "failed to clear volume directory %s, %s" % (volumeDirectory, error)) + Common.log(syslog.LOG_ERR, "failed to rename volume directory %s, %s" % (volumeDirectory, error)) + rs.appendTagRoute("status.code", rv["Status"]) + rs.appendTagRoute("status.message", message) + return rs.toprettyxml() + + if "1" == option: + rv["Status"] = "0" + rs.appendTagRoute("status.code", rv["Status"]) + rs.appendTagRoute("status.message", message) + return rs.toprettyxml() + + command = ["sudo", "rm", "-fr", newVolumeDirectoryName] + rv = Utils.runCommandFG(command, stdout=True, root=True) + message = Common.stripEmptyLines(rv["Stdout"]) + if rv["Stderr"]: + error = Common.stripEmptyLines(rv["Stderr"]) + message += "Error: [%s]" % (error) + Common.log(syslog.LOG_ERR, "failed to clear volume directory %s, %s" % (newVolumeDirectoryName, error)) rs.appendTagRoute("status.code", rv["Status"]) rs.appendTagRoute("status.message", message) return rs.toprettyxml() @@ -63,14 +82,16 @@ def clearVolumeDirectory(disk, volumeName): return rs.toprettyxml() def main(): - if len(sys.argv) != 3: - print >> sys.stderr, "usage: %s " % sys.argv[0] + if len(sys.argv) != 4: + print >> sys.stderr, "usage: %s