From 94c2c26934f7f32b41cce2a9ec894dd6e060f794 Mon Sep 17 00:00:00 2001 From: Shireesh Anjal Date: Wed, 3 Aug 2011 12:58:10 +0530 Subject: Changed file format from dos to unix --- .../src/multicast_response.py | 148 ++++++++++----------- 1 file changed, 74 insertions(+), 74 deletions(-) (limited to 'src') diff --git a/src/com.gluster.storage.management.gateway.scripts/src/multicast_response.py b/src/com.gluster.storage.management.gateway.scripts/src/multicast_response.py index 18cf89ae..ae391b4b 100644 --- a/src/com.gluster.storage.management.gateway.scripts/src/multicast_response.py +++ b/src/com.gluster.storage.management.gateway.scripts/src/multicast_response.py @@ -1,74 +1,74 @@ -#!/usr/bin/python -# Copyright (C) 2009 Gluster, Inc. -# This file is part of Gluster Storage Platform. -# -# Gluster Storage Platform is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 3 of -# the License, or (at your option) any later version. -# -# Gluster Storage Platform is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty -# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see -# . - -import os -import string -import time -import Utils -import socket -import struct -import Globals -from XmlHandler import * - -def isInPeer(): - command = "gluster peer status" - status = Utils.runCommand(command, output=True, root=True) - if status["Status"] == 0: - if status["Stdout"].strip().upper() != "NO PEERS PRESENT": - return True - return False - 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) - socketRequest.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - socketRequest.bind(('', port)) - mreq = struct.pack("4sl", socket.inet_aton(multiCastGroup), socket.INADDR_ANY) - socketRequest.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq) - - socketSend = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) - socketSend.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 2) - - #TODO: Remove infinite loop and make this as a deamon (service) - while True: - request = socketRequest.recvfrom(1024) - if not request: - continue - dom = XDOM() - dom.parseString(request[0]) - if not dom: - continue - if not dom.getTextByTagRoute("request.name"): - continue - requesttime = dom.getTextByTagRoute("request.time") - if not requesttime: - continue - if isInPeer(): - time.sleep(5) - continue - socketSend.sendto("%s" % (socket.gethostname(), requesttime), - (multiCastGroup, port)) - request = None - -def main(): - response(Globals.MULTICAST_GROUP, Globals.MULTICAST_PORT) - -if __name__ == "__main__": - main() +#!/usr/bin/python +# Copyright (C) 2009 Gluster, Inc. +# This file is part of Gluster Storage Platform. +# +# Gluster Storage Platform is free software; you can redistribute it +# and/or modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 3 of +# the License, or (at your option) any later version. +# +# Gluster Storage Platform is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied warranty +# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see +# . + +import os +import string +import time +import Utils +import socket +import struct +import Globals +from XmlHandler import * + +def isInPeer(): + command = "gluster peer status" + status = Utils.runCommand(command, output=True, root=True) + if status["Status"] == 0: + if status["Stdout"].strip().upper() != "NO PEERS PRESENT": + return True + return False + 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) + socketRequest.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + socketRequest.bind(('', port)) + mreq = struct.pack("4sl", socket.inet_aton(multiCastGroup), socket.INADDR_ANY) + socketRequest.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq) + + socketSend = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) + socketSend.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 2) + + #TODO: Remove infinite loop and make this as a deamon (service) + while True: + request = socketRequest.recvfrom(1024) + if not request: + continue + dom = XDOM() + dom.parseString(request[0]) + if not dom: + continue + if not dom.getTextByTagRoute("request.name"): + continue + requesttime = dom.getTextByTagRoute("request.time") + if not requesttime: + continue + if isInPeer(): + time.sleep(5) + continue + socketSend.sendto("%s" % (socket.gethostname(), requesttime), + (multiCastGroup, port)) + request = None + +def main(): + response(Globals.MULTICAST_GROUP, Globals.MULTICAST_PORT) + +if __name__ == "__main__": + main() -- cgit