summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.server.scripts
diff options
context:
space:
mode:
authorShireesh Anjal <anjalshireesh@gmail.com>2011-04-28 22:55:20 -0700
committerShireesh Anjal <anjalshireesh@gmail.com>2011-04-28 22:55:20 -0700
commit276118b6d207bb49905d1e9c19a7f08c33f9ed8d (patch)
tree7b013530f472fa5d6ebe83cf70a869875d4eb576 /src/com.gluster.storage.management.server.scripts
parente6433daabe87fec1ae58273114b8862b82de4da2 (diff)
parent14c2ae3d7351b6884c6e94f771896610cbdbfec4 (diff)
Merged pull request #23 from TimothyAsir/master.
Updated multicast_response.py to respond only if the server is not part of peer list.
Diffstat (limited to 'src/com.gluster.storage.management.server.scripts')
-rwxr-xr-xsrc/com.gluster.storage.management.server.scripts/src/nodes/clear_volume_directory.py33
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/nodes/multicast_response.py19
2 files changed, 46 insertions, 6 deletions
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 <disk name> <volume name>" % sys.argv[0]
+ if len(sys.argv) != 4:
+ print >> sys.stderr, "usage: %s <disk name> <volume name> <option>" % sys.argv[0]
sys.exit(-1)
disk = sys.argv[1]
volumeName = sys.argv[2]
- print clearVolumeDirectory(disk, volumeName)
+ option = sys.argv[3]
+ print clearVolumeDirectory(disk, volumeName, option)
sys.exit(0)
if __name__ == "__main__":
main()
+
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
# <http://www.gnu.org/licenses/>.
+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))