summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim <timothyasir@gluster.com>2011-05-30 19:35:12 +0530
committerTim <timothyasir@gluster.com>2011-05-30 19:35:12 +0530
commitea79ff5d088c25ad07203fd2e8f9f396d031bb21 (patch)
treef0b90f0541b2013ddb607889577a11bb7a2d0796
parent572c7c82b2fa160ae1b5095b1d7df847479077a1 (diff)
Removed nodes, common, server folders and moved the python files to com.gluster.storage.management.server.script directory
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/Commands.py (renamed from src/com.gluster.storage.management.server.scripts/src/common/Commands.py)0
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/Common.py (renamed from src/com.gluster.storage.management.server.scripts/src/common/Common.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.server.scripts/src/Disk.py (renamed from src/com.gluster.storage.management.server.scripts/src/nodes/Disk.py)0
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/DiskUtils.py (renamed from src/com.gluster.storage.management.server.scripts/src/common/DiskUtils.py)0
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/GetServerNetworkConfig.py (renamed from src/com.gluster.storage.management.server.scripts/src/nodes/GetServerNetworkConfig.py)0
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/Globals.py (renamed from src/com.gluster.storage.management.server.scripts/src/common/Globals.py)0
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/GlusterdUtils.py (renamed from src/com.gluster.storage.management.server.scripts/src/nodes/GlusterdUtils.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.server.scripts/src/NetworkUtils.py (renamed from src/com.gluster.storage.management.server.scripts/src/common/NetworkUtils.py)0
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/Protocol.py (renamed from src/com.gluster.storage.management.server.scripts/src/common/Protocol.py)0
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/ServerUtils.py (renamed from src/com.gluster.storage.management.server.scripts/src/nodes/ServerUtils.py)0
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/Utils.py (renamed from src/com.gluster.storage.management.server.scripts/src/common/Utils.py)0
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/VolumeUtils.py (renamed from src/com.gluster.storage.management.server.scripts/src/nodes/VolumeUtils.py)0
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/XmlHandler.py (renamed from src/com.gluster.storage.management.server.scripts/src/nodes/XmlHandler.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.server.scripts/src/clear_volume_directory.py (renamed from src/com.gluster.storage.management.server.scripts/src/nodes/clear_volume_directory.py)0
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/common/system-config-network-tui-1.3.99.18-1.el5.noarch.rpmbin1915520 -> 0 bytes
-rwxr-xr-xsrc/com.gluster.storage.management.server.scripts/src/create_volume_directory.py (renamed from src/com.gluster.storage.management.server.scripts/src/nodes/create_volume_directory.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.server.scripts/src/get_disk_mount_point.py (renamed from src/com.gluster.storage.management.server.scripts/src/nodes/get_disk_mount_point.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.server.scripts/src/get_disk_name_by_path.py (renamed from src/com.gluster.storage.management.server.scripts/src/nodes/get_disk_name_by_path.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.server.scripts/src/get_file.py (renamed from src/com.gluster.storage.management.server.scripts/src/nodes/get_file.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.server.scripts/src/get_server_details.py (renamed from src/com.gluster.storage.management.server.scripts/src/nodes/get_server_details.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.server.scripts/src/get_volume_brick_log.py (renamed from src/com.gluster.storage.management.server.scripts/src/nodes/get_volume_brick_log.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.server.scripts/src/get_volume_log.py (renamed from src/com.gluster.storage.management.server.scripts/src/nodes/get_volume_log.py)0
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/multicast_response.py (renamed from src/com.gluster.storage.management.server.scripts/src/nodes/multicast_response.py)0
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/nodes/Agent.py118
-rwxr-xr-xsrc/com.gluster.storage.management.server.scripts/src/nodes/PeerAgent.py212
-rwxr-xr-xsrc/com.gluster.storage.management.server.scripts/src/nodes/ServerAgent.py179
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/nodes/ServerRequestHandler.py76
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/nodes/Socket.py47
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/server/RemoteExecute.py287
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/server/RequestHandler.py58
-rw-r--r--src/com.gluster.storage.management.server.scripts/src/server/TransportAgent.py26
-rwxr-xr-xsrc/com.gluster.storage.management.server.scripts/src/server/transport.py94
-rwxr-xr-xsrc/com.gluster.storage.management.server.scripts/src/server/vmware-discover-servers.py83
33 files changed, 0 insertions, 1180 deletions
diff --git a/src/com.gluster.storage.management.server.scripts/src/common/Commands.py b/src/com.gluster.storage.management.server.scripts/src/Commands.py
index c728b565..c728b565 100644
--- a/src/com.gluster.storage.management.server.scripts/src/common/Commands.py
+++ b/src/com.gluster.storage.management.server.scripts/src/Commands.py
diff --git a/src/com.gluster.storage.management.server.scripts/src/common/Common.py b/src/com.gluster.storage.management.server.scripts/src/Common.py
index 99c2f440..99c2f440 100644
--- a/src/com.gluster.storage.management.server.scripts/src/common/Common.py
+++ b/src/com.gluster.storage.management.server.scripts/src/Common.py
diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/Disk.py b/src/com.gluster.storage.management.server.scripts/src/Disk.py
index a1ab9264..a1ab9264 100755
--- a/src/com.gluster.storage.management.server.scripts/src/nodes/Disk.py
+++ b/src/com.gluster.storage.management.server.scripts/src/Disk.py
diff --git a/src/com.gluster.storage.management.server.scripts/src/common/DiskUtils.py b/src/com.gluster.storage.management.server.scripts/src/DiskUtils.py
index 0e42bba2..0e42bba2 100644
--- a/src/com.gluster.storage.management.server.scripts/src/common/DiskUtils.py
+++ b/src/com.gluster.storage.management.server.scripts/src/DiskUtils.py
diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/GetServerNetworkConfig.py b/src/com.gluster.storage.management.server.scripts/src/GetServerNetworkConfig.py
index 3311eb56..3311eb56 100644
--- a/src/com.gluster.storage.management.server.scripts/src/nodes/GetServerNetworkConfig.py
+++ b/src/com.gluster.storage.management.server.scripts/src/GetServerNetworkConfig.py
diff --git a/src/com.gluster.storage.management.server.scripts/src/common/Globals.py b/src/com.gluster.storage.management.server.scripts/src/Globals.py
index 9ae53491..9ae53491 100644
--- a/src/com.gluster.storage.management.server.scripts/src/common/Globals.py
+++ b/src/com.gluster.storage.management.server.scripts/src/Globals.py
diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/GlusterdUtils.py b/src/com.gluster.storage.management.server.scripts/src/GlusterdUtils.py
index 7c0e899c..7c0e899c 100644
--- a/src/com.gluster.storage.management.server.scripts/src/nodes/GlusterdUtils.py
+++ b/src/com.gluster.storage.management.server.scripts/src/GlusterdUtils.py
diff --git a/src/com.gluster.storage.management.server.scripts/src/common/NetworkUtils.py b/src/com.gluster.storage.management.server.scripts/src/NetworkUtils.py
index 7a854564..7a854564 100755
--- a/src/com.gluster.storage.management.server.scripts/src/common/NetworkUtils.py
+++ b/src/com.gluster.storage.management.server.scripts/src/NetworkUtils.py
diff --git a/src/com.gluster.storage.management.server.scripts/src/common/Protocol.py b/src/com.gluster.storage.management.server.scripts/src/Protocol.py
index ff073593..ff073593 100644
--- a/src/com.gluster.storage.management.server.scripts/src/common/Protocol.py
+++ b/src/com.gluster.storage.management.server.scripts/src/Protocol.py
diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/ServerUtils.py b/src/com.gluster.storage.management.server.scripts/src/ServerUtils.py
index 1fec994c..1fec994c 100644
--- a/src/com.gluster.storage.management.server.scripts/src/nodes/ServerUtils.py
+++ b/src/com.gluster.storage.management.server.scripts/src/ServerUtils.py
diff --git a/src/com.gluster.storage.management.server.scripts/src/common/Utils.py b/src/com.gluster.storage.management.server.scripts/src/Utils.py
index 5140b641..5140b641 100644
--- a/src/com.gluster.storage.management.server.scripts/src/common/Utils.py
+++ b/src/com.gluster.storage.management.server.scripts/src/Utils.py
diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/VolumeUtils.py b/src/com.gluster.storage.management.server.scripts/src/VolumeUtils.py
index a19ccd62..a19ccd62 100644
--- a/src/com.gluster.storage.management.server.scripts/src/nodes/VolumeUtils.py
+++ b/src/com.gluster.storage.management.server.scripts/src/VolumeUtils.py
diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/XmlHandler.py b/src/com.gluster.storage.management.server.scripts/src/XmlHandler.py
index 72164ffb..72164ffb 100644
--- a/src/com.gluster.storage.management.server.scripts/src/nodes/XmlHandler.py
+++ b/src/com.gluster.storage.management.server.scripts/src/XmlHandler.py
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/clear_volume_directory.py
index 3bd0ab6f..3bd0ab6f 100755
--- a/src/com.gluster.storage.management.server.scripts/src/nodes/clear_volume_directory.py
+++ b/src/com.gluster.storage.management.server.scripts/src/clear_volume_directory.py
diff --git a/src/com.gluster.storage.management.server.scripts/src/common/system-config-network-tui-1.3.99.18-1.el5.noarch.rpm b/src/com.gluster.storage.management.server.scripts/src/common/system-config-network-tui-1.3.99.18-1.el5.noarch.rpm
deleted file mode 100644
index 4b07c4e4..00000000
--- a/src/com.gluster.storage.management.server.scripts/src/common/system-config-network-tui-1.3.99.18-1.el5.noarch.rpm
+++ /dev/null
Binary files differ
diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/create_volume_directory.py b/src/com.gluster.storage.management.server.scripts/src/create_volume_directory.py
index b8fb2166..b8fb2166 100755
--- a/src/com.gluster.storage.management.server.scripts/src/nodes/create_volume_directory.py
+++ b/src/com.gluster.storage.management.server.scripts/src/create_volume_directory.py
diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/get_disk_mount_point.py b/src/com.gluster.storage.management.server.scripts/src/get_disk_mount_point.py
index b2274b4d..b2274b4d 100755
--- a/src/com.gluster.storage.management.server.scripts/src/nodes/get_disk_mount_point.py
+++ b/src/com.gluster.storage.management.server.scripts/src/get_disk_mount_point.py
diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/get_disk_name_by_path.py b/src/com.gluster.storage.management.server.scripts/src/get_disk_name_by_path.py
index 72eb80dd..72eb80dd 100755
--- a/src/com.gluster.storage.management.server.scripts/src/nodes/get_disk_name_by_path.py
+++ b/src/com.gluster.storage.management.server.scripts/src/get_disk_name_by_path.py
diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/get_file.py b/src/com.gluster.storage.management.server.scripts/src/get_file.py
index 826ade6e..826ade6e 100755
--- a/src/com.gluster.storage.management.server.scripts/src/nodes/get_file.py
+++ b/src/com.gluster.storage.management.server.scripts/src/get_file.py
diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/get_server_details.py b/src/com.gluster.storage.management.server.scripts/src/get_server_details.py
index 2253ff30..2253ff30 100755
--- a/src/com.gluster.storage.management.server.scripts/src/nodes/get_server_details.py
+++ b/src/com.gluster.storage.management.server.scripts/src/get_server_details.py
diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/get_volume_brick_log.py b/src/com.gluster.storage.management.server.scripts/src/get_volume_brick_log.py
index 7c912412..7c912412 100755
--- a/src/com.gluster.storage.management.server.scripts/src/nodes/get_volume_brick_log.py
+++ b/src/com.gluster.storage.management.server.scripts/src/get_volume_brick_log.py
diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/get_volume_log.py b/src/com.gluster.storage.management.server.scripts/src/get_volume_log.py
index 826ade6e..826ade6e 100755
--- a/src/com.gluster.storage.management.server.scripts/src/nodes/get_volume_log.py
+++ b/src/com.gluster.storage.management.server.scripts/src/get_volume_log.py
diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/multicast_response.py b/src/com.gluster.storage.management.server.scripts/src/multicast_response.py
index dba65c07..dba65c07 100644
--- a/src/com.gluster.storage.management.server.scripts/src/nodes/multicast_response.py
+++ b/src/com.gluster.storage.management.server.scripts/src/multicast_response.py
diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/Agent.py b/src/com.gluster.storage.management.server.scripts/src/nodes/Agent.py
deleted file mode 100644
index 6d867d9e..00000000
--- a/src/com.gluster.storage.management.server.scripts/src/nodes/Agent.py
+++ /dev/null
@@ -1,118 +0,0 @@
-# Copyright (C) 2009 Gluster, Inc. <http://www.gluster.com>
-# 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
-# <http://www.gnu.org/licenses/>.
-
-import xmpp
-import sys
-import syslog
-
-class Agent:
- def __init__(self, jidString, jidResource, password, proxySettings=None):
- if jidString and jidResource and password:
- self.password = password
- self.proxySettings = proxySettings
- self.jid = xmpp.protocol.JID(jid=jidString)
- self.jid.setResource(jidResource)
- self.xmppClient = xmpp.Client(self.jid.getDomain(), debug=[])
- self.presenceHandler = None
- self.messageHandler = None
- return
- raise ValueError("jid, resource and password should not be empty")
-
- def registerPresenceHandler(self, function):
- self.presenceHandler = function
-
- def registerMessageHandler(self, function):
- self.messageHandler = function
-
- def __defaultMessageHandler(self, connection, event):
- syslog.syslog(syslog.LOG_DEBUG,
- "[Received]: from_jid=%s, type=%s, message=%s, error=%s\n" %
- (event.getFrom(), event.getType(), event.getBody(), event.getError()))
- if self.messageHandler:
- self.messageHandler(connection, event)
- else:
- sys.stderr.write("[Message]: from_jid=%s, type=%s, message=%s, error=%s\n" %
- (event.getFrom(), event.getType(), event.getBody(), event.getError()))
-
- def __defaultPresenceHandler(self, connection, event):
- syslog.syslog(syslog.LOG_DEBUG,
- "[Presence]: from_jid=%s, type=%s, status=%s, error=%s\n" %
- (event.getFrom(), event.getType(), event.getShow(), event.getError()))
- if self.presenceHandler:
- self.presenceHandler(connection, event)
- else:
- sys.stderr.write("[Presence]: from_jid=%s, type=%s, status=%s, error=%s\n" %
- (event.getFrom(), event.getType(), event.getShow(), event.getError()))
-
- def connect(self):
- syslog.syslog("Connecting to server %s\n" % self.jid.getDomain())
- connection = self.xmppClient.connect()
- if not connection:
- syslog.syslog("failed\n")
- if not self.proxySettings:
- return False
- syslog.syslog("Connecting to server %s through proxy server %s, port %s, username %s\n" %
- (self.jid.getDomain(),
- self.proxySettings["host"],
- self.proxySettings["port"],
- self.proxySettings["user"]))
- connection = self.xmppClient.connect(proxy=self.proxySettings)
- if not connection:
- syslog.syslog("failed\n")
- return False
-
- syslog.syslog("Authenticating with username %s\n" % self.jid)
- auth = self.xmppClient.auth(self.jid.getNode(),
- self.password,
- self.jid.getResource())
- if not auth:
- syslog.syslog("failed\n")
- return False
- syslog.syslog("done\n")
- syslog.syslog("connection type is %s. authentication type is %s\n" % (connection, auth))
-
- self.xmppClient.RegisterHandler("presence", self.__defaultPresenceHandler)
- self.xmppClient.RegisterHandler("message", self.__defaultMessageHandler)
-
- self.xmppClient.sendInitPresence()
- return True
-
- def disconnect(self):
- self.xmppClient.disconnect()
-
- def processMessage(self, timeout=1):
- return self.xmppClient.Process(timeout)
- #if not self.xmppClient.isConnected():
- # self.xmppClient.reconnectAndReauth()
-
- def sendMessage(self, jidString, message, messageType="chat"):
- syslog.syslog(syslog.LOG_DEBUG,
- "[send]: from_jid=%s, type=%s, message=%s\n" %
- (jidString, messageType, message))
- self.xmppClient.send(xmpp.protocol.Message(to=jidString,
- body=message,
- typ=messageType))
-
- def getNetworkSocket(self):
- return self.xmppClient.Connection._sock;
-
- def getRoster(self):
- return self.xmppClient.getRoster()
-
- def isConnected(self):
- return self.xmppClient.isConnected()
-##--end of Agent
diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/PeerAgent.py b/src/com.gluster.storage.management.server.scripts/src/nodes/PeerAgent.py
deleted file mode 100755
index 6218e921..00000000
--- a/src/com.gluster.storage.management.server.scripts/src/nodes/PeerAgent.py
+++ /dev/null
@@ -1,212 +0,0 @@
-#!/usr/bin/python
-# Copyright (C) 2010 Gluster, Inc. <http://www.gluster.com>
-# 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
-# <http://www.gnu.org/licenses/>.
-
-import os
-import sys
-import signal
-import atexit
-import socket
-import syslog
-import pwd
-from optparse import OptionParser
-
-import Globals
-import Socket
-import Utils
-from XmlHandler import ResponseXml
-
-
-ME = os.path.basename(sys.argv[0])
-PID_FILE = "/var/run/serveragent.pid"
-serverSocket = None
-clientSocket = None
-clientAddress = None
-clientInputStream = None
-clientOutputStream = None
-
-
-def sigTermHandler(signal, frame):
- sys.exit(0)
-
-
-def cleanup():
- try:
- if os.path.exists(PID_FILE):
- os.unlink(PID_FILE)
- except OSError, e:
- Utils.log("Failed to remove PID file %s: %s" % (PID_FILE, str(e)))
-
- try:
- if clientSocket:
- clientSocket.close()
- except socket.error, e:
- Utils.log("Failed to close client socket: %s" % str(e))
-
- try:
- if serverSocket:
- serverSocket.close()
- except socket.error, e:
- Utils.log("Failed to close server socket: " % str(e))
-
-def stripEmptyLines(content):
- ret = ""
- for line in content.split("\n"):
- if line.strip() != "":
- ret += line
- return ret
-
-def executeCommand(command):
- rv = Utils.runCommandFG(command, stdout=True, root=True)
- statusCode = rv["Status"]
- if statusCode != 0:
- output = "output: [" + stripEmptyLines(rv["Stdout"]) + "] error: [" + stripEmptyLines(rv["Stderr"]) + "]";
- rs = ResponseXml()
- rs.appendTagRoute("status.code", statusCode);
- rs.appendTagRoute("status.message", output);
- return rs.toprettyxml()
- else:
- return rv["Stdout"]
-
-def main():
- global PID_FILE
- global serverSocket
- global clientSocket
- global clientAddress
- global clientInputStream
- global clientOutputStream
-
- username = Globals.SERVER_AGENT_RUN_USERNAME
-
- Utils.openLog(Globals.PEER_AGENT_LOG_FILE)
-
- parser = OptionParser(version="%s %s" % (ME, Globals.GLUSTER_PLATFORM_VERSION))
-
- parser.add_option("-N", "--no-daemon",
- action="store_false", dest="daemonMode", default=True,
- help="Run in foreground")
- parser.add_option("-r", "--run-as", dest="username",
- help="Run the daemon as USERNAME (default: %s)" % Globals.SERVER_AGENT_RUN_USERNAME,
- metavar="USERNAME")
- (options, args) = parser.parse_args()
-
- if options.username:
- username = options.username
- try:
- userInfo = pwd.getpwnam(username)
- except KeyError, e:
- sys.stderr.write("%s\n" % str(e))
- serverSocket.close()
- sys.exit(-1)
- uid = userInfo.pw_uid
- gid = userInfo.pw_gid
-
- try:
- Utils.log("__DEBUG__ Opening server socket on port %s" % Globals.SERVER_AGENT_PORT)
- serverSocket = Socket.openServerSocket()
- except socket.error, e:
- sys.stderr.write("Failed to open server socket: %s\n" % str(e))
- sys.exit(-1)
-
- if options.daemonMode:
- if os.path.exists(PID_FILE):
- sys.stderr.write("fatal: %s file exists\n" % PID_FILE)
- serverSocket.close()
- sys.exit(-1)
-
- if not Utils.daemonize():
- sys.stderr.write("fatal: unable to run as daemon\n")
- serverSocket.close()
- sys.exit(-1)
- try:
- fp = open(PID_FILE, "w")
- fp.write("%s\n" % os.getpid())
- fp.close()
- except IOError, e:
- Utils.log("Pid file %s: %s" % (PID_FILE, str(e)))
- serverSocket.close()
- sys.exit(-1)
- try:
- os.chown(PID_FILE, uid, gid)
- except OSError, e:
- Utils.log("Pid file %s: %s" % (PID_FILE, str(e)))
- serverSocket.close()
- try:
- os.unlink(PID_FILE)
- except OSError, ex:
- Utils.log("Failed to remove PID file %s: %s" % (PID_FILE, str(ex)))
- sys.exit(-1)
- else:
- Globals.GLUSTER_DEBUG = True
-
- try:
- os.setregid(gid, gid)
- except OSError, e:
- Utils.log("Failed to set effective and real gid to %s: %s" % (gid, str(e)))
- cleanup()
- sys.exit(-1)
- try:
- os.setreuid(uid, uid)
- except OSError, e:
- Utils.log("Failed to set effective and real uid to %s: %s" % (uid, str(e)))
- cleanup()
- sys.exit(-1)
-
- atexit.register(cleanup)
- signal.signal(signal.SIGTERM, sigTermHandler)
-
- while True:
- Utils.log("__DEBUG__ Waiting for new connection on port %s" % Globals.SERVER_AGENT_PORT)
- try:
- clientSocket, clientAddress, clientInputStream, clientOutputStream = Socket.acceptClient(serverSocket)
- except socket.error, e:
- Utils.log("Failed to accept new connection: %s" % str(e))
- sys.exit(-1)
-
- Utils.log('__DEBUG__ Connected by %s' % str(clientAddress))
- try:
- requestString = Socket.readPacket(clientInputStream)
- Utils.log('__DEBUG__ Received %s' % repr(requestString))
- requestParts = requestString.split(None, 3)
-
- if "get_file" == requestParts[0]:
- if len(requestParts) != 2:
- rs = ResponseXml()
- rs.appendTagRoute("status.code", "-1")
- rs.appendTagRoute("status.message", "File path not passed")
- Socket.writePacket(clientOutputStream, rs.toprettyxml())
- else:
- filePath = requestParts[1]
- fp = open(filePath)
- clientSocket.sendall(fp.read())
- fp.close()
- clientOutputStream.flush()
- else:
- responseString = executeCommand(requestString)
- if responseString:
- Socket.writePacket(clientOutputStream, responseString)
- clientOutputStream.flush()
- else:
- Utils.log('__DEBUG__ empty response string')
- Utils.log('__DEBUG__ Closing client %s' % str(clientAddress))
- clientSocket.close()
- except socket.error, e:
- Utils.log("Socket error on client: %s" % str(e))
- sys.exit(0)
-
-if __name__ == "__main__":
- main()
diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/ServerAgent.py b/src/com.gluster.storage.management.server.scripts/src/nodes/ServerAgent.py
deleted file mode 100755
index bcb2bac1..00000000
--- a/src/com.gluster.storage.management.server.scripts/src/nodes/ServerAgent.py
+++ /dev/null
@@ -1,179 +0,0 @@
-#!/usr/bin/python
-# Copyright (C) 2010 Gluster, Inc. <http://www.gluster.com>
-# 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
-# <http://www.gnu.org/licenses/>.
-
-import os
-import sys
-import signal
-import atexit
-import socket
-import syslog
-import pwd
-from optparse import OptionParser
-
-import Globals
-import Socket
-import Utils
-import ServerRequestHandler
-
-
-ME = os.path.basename(sys.argv[0])
-PID_FILE = "/var/run/serveragent.pid"
-serverSocket = None
-clientSocket = None
-clientAddress = None
-clientInputStream = None
-clientOutputStream = None
-
-
-def sigTermHandler(signal, frame):
- sys.exit(0)
-
-
-def cleanup():
- try:
- if os.path.exists(PID_FILE):
- os.unlink(PID_FILE)
- except OSError, e:
- Utils.log("Failed to remove PID file %s: %s" % (PID_FILE, str(e)))
-
- try:
- if clientSocket:
- clientSocket.close()
- except socket.error, e:
- Utils.log("Failed to close client socket: %s" % str(e))
-
- try:
- if serverSocket:
- serverSocket.close()
- except socket.error, e:
- Utils.log("Failed to close server socket: " % str(e))
-
-
-def main():
- global PID_FILE
- global serverSocket
- global clientSocket
- global clientAddress
- global clientInputStream
- global clientOutputStream
-
- username = Globals.SERVER_AGENT_RUN_USERNAME
-
- Utils.openLog(Globals.SERVER_AGENT_LOG_FILE)
-
- parser = OptionParser(version="%s %s" % (ME, Globals.GLUSTER_PLATFORM_VERSION))
-
- parser.add_option("-N", "--no-daemon",
- action="store_false", dest="daemonMode", default=True,
- help="Run in foreground")
- parser.add_option("-r", "--run-as", dest="username",
- help="Run the daemon as USERNAME (default: %s)" % Globals.SERVER_AGENT_RUN_USERNAME,
- metavar="USERNAME")
- (options, args) = parser.parse_args()
-
- if options.username:
- username = options.username
- try:
- userInfo = pwd.getpwnam(username)
- except KeyError, e:
- sys.stderr.write("%s\n" % str(e))
- serverSocket.close()
- sys.exit(-1)
- uid = userInfo.pw_uid
- gid = userInfo.pw_gid
-
- try:
- Utils.log("__DEBUG__ Opening server socket on port %s" % Globals.SERVER_AGENT_PORT)
- serverSocket = Socket.openServerSocket()
- except socket.error, e:
- sys.stderr.write("Failed to open server socket: %s\n" % str(e))
- sys.exit(-1)
-
- if options.daemonMode:
- if os.path.exists(PID_FILE):
- sys.stderr.write("fatal: %s file exists\n" % PID_FILE)
- serverSocket.close()
- sys.exit(-1)
-
- if not Utils.daemonize():
- sys.stderr.write("fatal: unable to run as daemon\n")
- serverSocket.close()
- sys.exit(-1)
- try:
- fp = open(PID_FILE, "w")
- fp.write("%s\n" % os.getpid())
- fp.close()
- except IOError, e:
- Utils.log("Pid file %s: %s" % (PID_FILE, str(e)))
- serverSocket.close()
- sys.exit(-1)
- try:
- os.chown(PID_FILE, uid, gid)
- except OSError, e:
- Utils.log("Pid file %s: %s" % (PID_FILE, str(e)))
- serverSocket.close()
- try:
- os.unlink(PID_FILE)
- except OSError, ex:
- Utils.log("Failed to remove PID file %s: %s" % (PID_FILE, str(ex)))
- sys.exit(-1)
- else:
- Globals.GLUSTER_DEBUG = True
-
- try:
- os.setregid(gid, gid)
- except OSError, e:
- Utils.log("Failed to set effective and real gid to %s: %s" % (gid, str(e)))
- cleanup()
- sys.exit(-1)
- try:
- os.setreuid(uid, uid)
- except OSError, e:
- Utils.log("Failed to set effective and real uid to %s: %s" % (uid, str(e)))
- cleanup()
- sys.exit(-1)
-
- atexit.register(cleanup)
- signal.signal(signal.SIGTERM, sigTermHandler)
-
- while True:
- Utils.log("__DEBUG__ Waiting for new connection on port %s" % Globals.SERVER_AGENT_PORT)
- try:
- clientSocket, clientAddress, clientInputStream, clientOutputStream = Socket.acceptClient(serverSocket)
- except socket.error, e:
- Utils.log("Failed to accept new connection: %s" % str(e))
- sys.exit(-1)
-
- Utils.log('__DEBUG__ Connected by %s' % str(clientAddress))
- try:
- requestString = Socket.readPacket(clientInputStream)
- Utils.log('__DEBUG__ Received %s' % repr(requestString))
- responseString = ServerRequestHandler.handleRequest(requestString)
- if responseString:
- Socket.writePacket(clientOutputStream, responseString)
- clientOutputStream.flush()
- else:
- Utils.log('__DEBUG__ empty response string')
- Utils.log('__DEBUG__ Closing client %s' % str(clientAddress))
- clientSocket.close()
- except socket.error, e:
- Utils.log("Socket error on client: %s" % str(e))
- sys.exit(0)
-
-if __name__ == "__main__":
- main()
diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/ServerRequestHandler.py b/src/com.gluster.storage.management.server.scripts/src/nodes/ServerRequestHandler.py
deleted file mode 100644
index 31d4eb8c..00000000
--- a/src/com.gluster.storage.management.server.scripts/src/nodes/ServerRequestHandler.py
+++ /dev/null
@@ -1,76 +0,0 @@
-# Copyright (C) 2010 Gluster, Inc. <http://www.gluster.com>
-# 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
-# <http://www.gnu.org/licenses/>.
-
-import os
-
-import Commands
-from Protocol import *
-from Globals import *
-from GetServerNetworkConfig import *
-
-def handleRequestGetServerNetworkConfig(requestDom):
- return getServerNetworkConfig(requestDom)
-
-def handleRequest(requestString):
- log("Received request %s" % repr(requestString))
-
- requestDom = XDOM()
- requestDom.parseString(requestString)
- if not requestDom:
- log("Invalid request")
- return None
-
- preRequestMap = {}
-
- postRequestMap = {}
-
- cleanupRequestMap = {}
-
- requestMap = { Commands.COMMAND_GET_SERVER_NETWORK_CONFIG : handleRequestGetServerNetworkConfig }
-
- messageId = requestDom.getMessageId()
- if not messageId:
- log("Invalid message Id")
- return None
-
- requestCommand = requestDom.getRequestCommand()
- if not requestCommand:
- log("invalid request command")
- return None
-
- requestAction = requestDom.getRequestAction()
- version = requestDom.getVersion()
- #if not isSupportedVersion(version):
- # log("Unsupported version request %s" % requestDom.toxml())
- # return ResponseXml(requestCommand, "Unsupported version request", messageId, version).toxml()
-
- try:
- if not requestAction:
- responseDom = requestMap[requestCommand](requestDom)
- elif requestAction.upper() == "PRE":
- responseDom = preRequestMap[requestCommand](requestDom)
- elif requestAction.upper() == "POST":
- responseDom = postRequestMap[requestCommand](requestDom)
- elif requestAction.upper() == "CLEANUP":
- responseDom = cleanupRequestMap[requestCommand](requestDom)
- else:
- log("Unknown request action %s" % requestAction)
- return None
- return responseDom.toxml()
- except KeyError:
- log("No handler found for command %s for action %s" % (requestCommand, requestAction))
- return ResponseXml(requestCommand, "Invalid command", messageId, version).toxml()
diff --git a/src/com.gluster.storage.management.server.scripts/src/nodes/Socket.py b/src/com.gluster.storage.management.server.scripts/src/nodes/Socket.py
deleted file mode 100644
index ba6b6ad0..00000000
--- a/src/com.gluster.storage.management.server.scripts/src/nodes/Socket.py
+++ /dev/null
@@ -1,47 +0,0 @@
-import socket
-import sys
-import Globals
-
-def openServerSocket(bindAddress="", port=Globals.SERVER_AGENT_PORT):
- sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- sock.bind((bindAddress, port))
- sock.listen(1)
- return sock
-
-
-def connectToServer(serverName, port=Globals.SERVER_AGENT_PORT):
- sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- sock.connect((serverName, port))
- print "__DEBUG__ connected to ", serverName, " on port ", port
- inputStream = sock.makefile("r")
- outputStream = sock.makefile("w")
- return sock, inputStream, outputStream
-
-
-def acceptClient(serverSocket):
- clientSocket, clientAddress = serverSocket.accept()
- clientInputStream = clientSocket.makefile("r")
- clientOutputStream = clientSocket.makefile("w")
- return clientSocket, clientAddress, clientInputStream, clientOutputStream
-
-
-def readPacket(inputStream):
- packetString = ""
- while True:
- line = inputStream.readline()
- print "__DEBUG__", line
- if not line:
- break
- if line.strip() == "":
- # end of input received
- return packetString
- packetString += line
- return packetString
-
-
-def writePacket(outputStream, packetString):
- rv = outputStream.write(packetString.strip() + "\n\n")
- outputStream.flush()
-
-
diff --git a/src/com.gluster.storage.management.server.scripts/src/server/RemoteExecute.py b/src/com.gluster.storage.management.server.scripts/src/server/RemoteExecute.py
deleted file mode 100644
index 1800234f..00000000
--- a/src/com.gluster.storage.management.server.scripts/src/server/RemoteExecute.py
+++ /dev/null
@@ -1,287 +0,0 @@
-# Copyright (C) 2010 Gluster, Inc. <http://www.gluster.com>
-# 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
-# <http://www.gnu.org/licenses/>.
-
-import os
-import socket
-#import paramiko
-import syslog
-import sys
-import Socket
-import Globals
-from copy import deepcopy
-from ServerUtils import *
-
-SERVER_AGENT_COMMAND = "/usr/sbin/server-agent"
-SERVER_AGENT_CLEANUP_COMMAND = SERVER_AGENT_COMMAND + " --cleanup"
-SERVER_AGENT_PRE_COMMAND = SERVER_AGENT_COMMAND + " --pre"
-SERVER_AGENT_POST_COMMAND = SERVER_AGENT_COMMAND + " --post"
-TRANSPORT_USER_NAME = "transport"
-TRANSPORT_PRIVATE_KEY_FILE = Globals.TRANSPORT_HOME_DIR + "/.ssh/id_rsa"
-
-def remoteExecute(serverList, command, commandInput=None):
- print "REMOTE:", serverList
- statusDict = {}
- ssh = paramiko.SSHClient()
- ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
- try:
- privateKey = paramiko.RSAKey.from_private_key_file(TRANSPORT_PRIVATE_KEY_FILE)
- except IOError:
- log(syslog.LOG_ERR, "Private key file %s not found" % TRANSPORT_PRIVATE_KEY_FILE)
- return None
- print "STAGE1"
- for serverName in serverList.keys():
- serverStatus = {}
- serverStatus["ConnectionStatus"] = None
- serverStatus["ExecutionStatus"] = None
- serverStatus["StdOutString"] = None
- serverStatus["StdErrString"] = None
- serverStatus["ConnectedIp"] = None
- serverStatus["Error"] = None
-
- isConnected = False
- for serverIp in serverList[serverName]:
- try:
- ssh.connect(serverIp, username=TRANSPORT_USER_NAME, pkey=privateKey)
- isConnected = True
- break
- except socket.error:
- log(syslog.LOG_ERR, "Server %s:%s is inaccessible" % (serverName, serverIp))
- continue
- if not isConnected:
- serverStatus["ConnectionStatus"] = "inaccessible"
- statusDict[serverName] = serverStatus
- continue
-
- try:
- transport = ssh.get_transport()
- channel = transport.open_session()
- serverStatus["ConnectionStatus"] = True
- channel.exec_command(command)
- stdin = channel.makefile('wb')
- stdout = channel.makefile('rb')
- stderr = channel.makefile_stderr('rb')
- if commandInput:
- stdin.write(commandInput)
- channel.shutdown_write()
-
- returnValue = channel.recv_exit_status() ## this is blocking call
- serverStatus["ExecutionStatus"] = returnValue
- print "RRRRRRRRRRRRRRRR:", returnValue
- errorString = ""
- if -1 == returnValue:
- errorString = stderr.read()
- serverStatus["StdErrString"] = errorString
- if "bash: " + command.split()[0] + ": command not found\n" == errorString:
- log(syslog.LOG_ERR, "command %s not found in server %s" % (command, serverName))
- serverStatus["Error"] = "Command not found"
- else:
- serverStatus["StdErrString"] = stderr.read()
- serverStatus["StdOutString"] = stdout.read()
- ssh.close()
- except paramiko.SSHException:
- # Channel error (channel not open)
- log(syslog.LOG_ERR, "Server %s:%s connection aborted" % (serverName, serverIp))
- serverStatus["ConnectionStatus"] = "aborted"
- except socket.error:
- log(syslog.LOG_ERR, "Server %s:%s is inaccessible" % (serverName, serverIp))
- serverStatus["ConnectionStatus"] = "inaccessible"
- except paramiko.AuthenticationException:
- log(syslog.LOG_ERR, "Authentication error on server %s:%s of user %s" %
- (serverName, serverIp, TRANSPORT_USER_NAME))
- serverStatus["ConnectionStatus"] = "authentication error"
- serverStatus["ConnectedIp"] = serverIp
- statusDict[serverName] = serverStatus
- return statusDict
-
-def cleanupExecuteSsh(serverList, requestDom):
- return remoteExecute(serverList, SERVER_AGENT_CLEANUP_COMMAND, requestDom.toxml())
-
-def executeRequestCommandSsh(serverList, command, requestDom, cleanupFlag):
- cleanupStatusDict = {}
- successStatusDict = {}
- failureServerList = {}
- cleanupServerList = {}
- serverList = deepcopy(serverList)
- statusDict = remoteExecute(serverList, command, requestDom.toxml())
- for serverName in statusDict.keys():
- statusDict["Response"] = None
- if statusDict[serverName]["ConnectionStatus"] == True:
- setLastAccessedNetwork(serverName, statusDict[serverName]["ConnectedIp"])
- if statusDict[serverName]["ConnectedIp"]:
- ipList = serverList[serverName]
- ipList.remove(statusDict[serverName]["ConnectedIp"])
- cleanupServerList[serverName] = [statusDict[serverName]["ConnectedIp"]] + ipList
- if statusDict[serverName]["ExecutionStatus"] != 0:
- failureServerList[serverName] = statusDict[serverName]
- continue
- responseDom = XDOM()
- if not responseDom.parseString(statusDict[serverName]["StdOutString"]):
- failureServerList[serverName] = statusDict[serverName]
- continue
- statusDict["Response"] = responseDom
- if "OK" != responseDom.getAttribute("response-code"):
- failureServerList[serverName] = statusDict[serverName]
- continue
- successStatusDict[serverName] = statusDict[serverName]
- if cleanupFlag and failureServerList:
- cleanupStatusDict = remoteExecute(cleanupServerList, SERVER_AGENT_CLEANUP_COMMAND, requestDom.toxml())
- return successStatusDict, failureServerList, cleanupStatusDict
-
-def preExecuteSsh(serverList, requestDom, cleanupFlag=True):
- return executeRequestCommandSsh(serverList, SERVER_AGENT_PRE_COMMAND, requestDom, cleanupFlag)
-
-def executeSsh(serverList, requestDom, cleanupFlag=True):
- return executeRequestCommandSsh(serverList, SERVER_AGENT_COMMAND, requestDom, cleanupFlag)
-
-def postExecuteSsh(serverList, requestDom, cleanupFlag=True):
- return executeRequestCommandSsh(serverList, SERVER_AGENT_POST_COMMAND, requestDom, cleanupFlag)
-
-def runPullUpdatesDir(sourceServerIp, destServerIpList):
- command = "/usr/sbin/pull-dir.sh %s %s %s" % (sourceServerIp,
- Globals.UPDATES_DIR[1:],
- Globals.UPDATES_DIR)
- statusDict = remoteExecute(destServerIpList, command)
- status = True
- for serverName in statusDict.keys():
- if statusDict[serverName]["ExecutionStatus"] != 0:
- log(syslog.LOG_ERR, "Failed to execute [%s] in server %s" % (command, serverName))
- status = False
- return status
-
-def runPullGlusterDir(sourceServerIp, destServerIpList):
- command = "/usr/sbin/pull-dir.sh %s %s %s" % (sourceServerIp,
- Globals.GLUSTER_BASE_DIR[1:],
- Globals.GLUSTER_BASE_DIR)
- statusDict = remoteExecute(destServerIpList, command)
- status = True
- for serverName in statusDict.keys():
- if statusDict[serverName]["ExecutionStatus"] != 0:
- log(syslog.LOG_ERR, "Failed to execute [%s] in server %s" % (command, serverName))
- status = False
- return status
-
-def syncConfiguration(syncToInstaller=False, sourceServerIpList=None):
- thisServerName = getCurrentServerName()
- serverList = getAllServerList()
- serverList.remove(thisServerName)
- serverIpList = getExecuteServerList(serverList)
- if syncToInstaller:
- installerIp = getInstallerIp()
- if not installerIp:
- log(syslog.LOG_ERR, "Installer IP address is not found")
- return False
- serverIpList[Globals.INSTALLER_SERVER_NAME] = [installerIp]
-
- if not serverIpList:
- log(syslog.LOG_ERR, "No servers found for sync configuration")
- return False
-
- signature = generateSignature()
- if not storeSignature(signature, Globals.SIGNATURE_FILE):
- log(syslog.LOG_ERR, "failed to store signature %s to %s file" %
- (signature, Globals.SIGNATURE_FILE))
- return False
-
- thisServerIpList = getExecuteServerList([thisServerName])
- if sourceServerIpList:
- thisServerIpList = sourceServerIpList
- return runPullGlusterDir(thisServerIpList[thisServerName][0], serverIpList)
-
-def remoteExecuteTcp(serverIpList, requestString):
- serverStatus = {}
- serverStatus["ConnectionStatus"] = False
- serverStatus["ExecutionStatus"] = -1
- serverStatus["StdOutString"] = None
- serverStatus["StdErrString"] = None
- serverStatus["ConnectedIp"] = None
- serverStatus["Error"] = None
-
- for ipAddress in serverIpList.values()[0]:
- try:
- sock, inputStream, outputStream = Socket.connectToServer(ipAddress)
- Socket.writePacket(outputStream, requestString)
- packetString = Socket.readPacket(inputStream)
- log('__DEBUG__ Received: %s' % repr(packetString))
- sock.close()
- serverStatus["ConnectionStatus"] = True
- serverStatus["ExecutionStatus"] = 0
- serverStatus["StdOutString"] = packetString
- serverStatus["StdErrString"] = None
- serverStatus["ConnectedIp"] = ipAddress
- serverStatus["Error"] = None
- return serverStatus
- except socket.error, e:
- log("socket error on [%s:%s]: %s" % (serverIpList.keys()[0], ipAddress, str(e)))
- return serverStatus
-
-def executeRequestCommand(serverList, command, requestDom, cleanupFlag):
- cleanupStatusDict = {}
- successStatusDict = {}
- failureServerList = {}
- cleanupServerList = {}
- serverList = deepcopy(serverList)
-
- statusDict = {}
- for serverName in serverList.keys():
- serverStatus = remoteExecuteTcp({serverName : serverList[serverName]}, requestDom.toxml())
- statusDict[serverName] = serverStatus
- for serverName in statusDict.keys():
- statusDict["Response"] = None
- if statusDict[serverName]["ConnectionStatus"] == True:
- setLastAccessedNetwork(serverName, statusDict[serverName]["ConnectedIp"])
- if statusDict[serverName]["ConnectedIp"]:
- ipList = serverList[serverName]
- ipList.remove(statusDict[serverName]["ConnectedIp"])
- cleanupServerList[serverName] = [statusDict[serverName]["ConnectedIp"]] + ipList
- if statusDict[serverName]["ExecutionStatus"] != 0:
- failureServerList[serverName] = statusDict[serverName]
- continue
- responseDom = XDOM()
- if not responseDom.parseString(statusDict[serverName]["StdOutString"]):
- failureServerList[serverName] = statusDict[serverName]
- continue
- statusDict["Response"] = responseDom
- if "OK" != responseDom.getResponseCode():
- failureServerList[serverName] = statusDict[serverName]
- continue
- successStatusDict[serverName] = statusDict[serverName]
- if cleanupFlag and failureServerList:
- rq = deepcopy(requestDom)
- rq.setRequestAction("cleanup")
- cleanupStatusDict = {}
- for serverName in cleanupServerList.keys():
- serverStatus = remoteExecuteTcp({serverName : cleanupServerList[serverName]}, rq.toxml())
- cleanupStatusDict[serverName] = serverStatus
- return successStatusDict, failureServerList, cleanupStatusDict
-
-def preExecute(serverList, requestDom, cleanupFlag=True):
- rq = deepcopy(requestDom)
- rq.setRequestAction("pre")
- return executeRequestCommand(serverList, SERVER_AGENT_PRE_COMMAND, rq, cleanupFlag)
-
-def execute(serverList, requestDom, cleanupFlag=True):
- return executeRequestCommand(serverList, SERVER_AGENT_COMMAND, requestDom, cleanupFlag)
-
-def postExecute(serverList, requestDom, cleanupFlag=True):
- rq = deepcopy(requestDom)
- rq.setRequestAction("post")
- return executeRequestCommand(serverList, SERVER_AGENT_POST_COMMAND, rq, cleanupFlag)
-
-def cleanupExecute(serverList, requestDom):
- rq = deepcopy(requestDom)
- rq.setRequestAction("cleanup")
- return executeRequestCommand(serverList, SERVER_AGENT_CLEANUP_COMMAND, rq, False)
diff --git a/src/com.gluster.storage.management.server.scripts/src/server/RequestHandler.py b/src/com.gluster.storage.management.server.scripts/src/server/RequestHandler.py
deleted file mode 100644
index e6fe88ff..00000000
--- a/src/com.gluster.storage.management.server.scripts/src/server/RequestHandler.py
+++ /dev/null
@@ -1,58 +0,0 @@
-import os
-import glob
-#import paramiko
-import tempfile
-#import uuid
-import socket
-import tarfile
-import time
-import Globals
-import Commands
-from Protocol import *
-from RemoteExecute import *
-from NetworkUtils import *
-
-def handleRequestGetServerNetworkConfig(requestDom):
- messageId = requestDom.getAttribute("id")
- serverName = requestDom.getTextByTagRoute("command.server-name")
- version = requestDom.getVersion()
- request = requestDom.getAttribute("request")
-
- if not serverName:
- responseDom = ResponseXml(Commands.COMMAND_GET_SERVER_NETWORK_CONFIG, "No server name given", messageId, version)
- responseDom.appendTagRoute("server.name", serverName)
- return responseDom
-
- #serverIpList = getExecuteServerList([serverName])
- #if not serverIpList:
- # responseDom = ResponseXml(Commands.COMMAND_GET_SERVER_NETWORK_CONFIG, "Unable to get server ip", messageId, version)
- # responseDom.appendTagRoute("server.name", serverName)
- # return responseDom
-
- successStatusDict, failureServerList, cleanupStatusDict = \
- execute({serverName:[serverName]}, requestDom, Globals.REQUEST_MAP[request]["cleanup"])
- if failureServerList:
- response = failureServerList[serverName]["StdOutString"]
- if not response:
- return ResponseXml(Commands.COMMAND_GET_SERVER_NETWORK_CONFIG,
- "Failed to execute get server network config", messageId, version)
- responseDom = XDOM()
- if responseDom.parseString(response):
- return responseDom
- errorResponseDom = ResponseXml(Commands.COMMAND_GET_SERVER_NETWORK_CONFIG,
- "Invalid response of get server network config", messageId, version)
- errorResponseDom.appendTagRoute("server.name", serverName)
- return errorResponseDom
-
- responseDom = XDOM()
- if not responseDom.parseString(successStatusDict[serverName]["StdOutString"]):
- errorResponseDom = ResponseXml(Commands.COMMAND_GET_SERVER_NETWORK_CONFIG,
- "Invalid response of get server network config", messageId, version)
- errorResponseDom.appendTagRoute("server.name", serverName)
- return errorResponseDom
-
- #configDom = getServerNetworkConfigFromLocalFile(serverName)
- #if not (configDom and compareServerNetworkDom(configDom, responseDom)):
- # updateServerNetworkConfigXmlFile(serverName, responseDom)
- # syncConfiguration()
- return responseDom
diff --git a/src/com.gluster.storage.management.server.scripts/src/server/TransportAgent.py b/src/com.gluster.storage.management.server.scripts/src/server/TransportAgent.py
deleted file mode 100644
index 5f39b585..00000000
--- a/src/com.gluster.storage.management.server.scripts/src/server/TransportAgent.py
+++ /dev/null
@@ -1,26 +0,0 @@
-import Commands
-#from Common import log
-from Protocol import *
-from RequestHandler import *
-
-def processRequest(requestDom):
- Globals.REQUEST_MAP = {
- Commands.COMMAND_GET_SERVER_NETWORK_CONFIG : {"handle":handleRequestGetServerNetworkConfig,
- "pre-run":False, "run":True, "post-run":False, \
- "cleanup":False, "sync-config":False, "safemode":False}}
-
- messageId = requestDom.getMessageId()
- if not messageId:
- log("invalid message from web agent")
- return None
-
- requestCommand = requestDom.getRequestCommand()
- if not requestCommand:
- log("invalid request from web agent")
- return None
-
- try:
- requestCommand = Globals.REQUEST_MAP[requestCommand]['handle']
- except KeyError: # Handler not found!
- return ResponseXml(requestCommand, "Invalid command", messageId, version)
- return requestCommand(requestDom)
diff --git a/src/com.gluster.storage.management.server.scripts/src/server/transport.py b/src/com.gluster.storage.management.server.scripts/src/server/transport.py
deleted file mode 100755
index 9255ff40..00000000
--- a/src/com.gluster.storage.management.server.scripts/src/server/transport.py
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/usr/bin/python
-# Copyright (C) 2009 Gluster, Inc. <http://www.gluster.com>
-# 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
-# <http://www.gnu.org/licenses/>.
-
-import sys
-import syslog
-import signal
-import datetime
-from Globals import *
-from Protocol import *
-from TransportAgent import *
-from optparse import OptionParser
-
-class TimeoutException(Exception):
- pass
-
-def timeoutSignal(signum, frame):
- raise TimeoutException, "Timed out"
-
-def main():
- openLog(Globals.TRANSPORT_AGENT_LOG_FILE)
- parser = OptionParser(version="%transport " + Globals.GLUSTER_PLATFORM_VERSION)
- parser.add_option("-f", "--force",
- action="store_true", dest="force", default=False,
- help="Execute command forcefully")
-
- parser.add_option("-t", "--timeout",
- type="int", nargs=1, dest="timeout",
- help="Session time-out")
-
- parser.add_option("--debug",
- action="store_true", dest="debug", default=False,
- help="Enable debug mode")
- (options, args) = parser.parse_args()
- Globals.GLUSTER_DEBUG = options.debug
-
- if len(args) != 1:
- #print "usage: Transport.py [-f | --force] [-t N | --timeout=N] [--debug] <input-file>"
- log(syslog.LOG_ERR, "invalid arguments")
- sys.exit(-1)
-
- signal.signal(signal.SIGALRM, timeoutSignal)
- signal.alarm(options.timeout)
- inputFile = args[0]
- #outputFile = args[1]
- try:
- requestString = open(inputFile).read()
- if not requestString:
- sys.exit(-1)
- fp = open("/tmp/transport.log", "a")
- fp.write("\n%s: Send: %s\n" % (str(datetime.now()), requestString))
- fp.close()
- except IOError:
- log(syslog.LOG_ERR, "Unable to read input xml file %s" % inputFile)
- sys.exit(-1)
-
- requestDom = RequestXml(requestString)
- if not requestDom:
- log(syslog.LOG_ERR, "error: invalid request: %s" % requestString)
- sys.exit(-1)
-
- responseDom = processRequest(requestDom)
- if not responseDom:
- log(syslog.LOG_ERR, "command execution failed")
- sys.exit(-1)
-
- #fp = open("/tmp/transport.log", "a")
- #fp.write("%s: Receive: %s\n" % (str(datetime.now()), responseDom.toxml()))
- #fp.close()
-
- #responseDom.writexml(outputFile)
- print responseDom.toxml()
- sys.exit(0)
-
-if __name__ == "__main__":
- try:
- main()
- except TimeoutException:
- log(syslog.LOG_ERR, "session timed out")
- sys.exit(-1)
diff --git a/src/com.gluster.storage.management.server.scripts/src/server/vmware-discover-servers.py b/src/com.gluster.storage.management.server.scripts/src/server/vmware-discover-servers.py
deleted file mode 100755
index 6ac15fed..00000000
--- a/src/com.gluster.storage.management.server.scripts/src/server/vmware-discover-servers.py
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/usr/bin/python
-# Copyright (C) 2009 Gluster, Inc. <http://www.gluster.com>
-# 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
-# <http://www.gnu.org/licenses/>.
-
-import sys
-import socket
-import signal
-import struct
-import syslog
-import Globals
-import Common
-
-class TimeoutException(Exception):
- pass
-
-def timeoutSignal(signum, frame):
- raise TimeoutException, "Timed out"
-
-def serverDiscoveryRequest(multiCastGroup, port):
- servers = []
- # Sending request to all the servers
- socketSend = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
- socketSend.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 2)
- socketSend.sendto("ServerDiscovery", (multiCastGroup, port))
-
- # Waiting for the response
- socketReceive = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
- socketReceive.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- socketReceive.bind(('', port))
- mreq = struct.pack("4sl", socket.inet_aton(multiCastGroup), socket.INADDR_ANY)
-
- socketReceive.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
- socketSend.sendto("ServerDiscovery", (multiCastGroup, port))
-
- try:
- while True:
- response = socketReceive.recvfrom(200)
- if response and response[0].upper() != "SERVERDISCOVERY":
- servers.append(response[0])
- signal.signal(signal.SIGALRM, timeoutSignal)
- signal.alarm(3)
- except TimeoutException:
- return servers
- return None
-
-def main():
- syslog.openlog("discovery server request")
- servers = serverDiscoveryRequest(Globals.MULTICAST_GROUP, Globals.MULTICAST_PORT)
- if not servers:
- Common.log(syslog.LOG_ERR, "Failed to discover new servers")
- sys.exit(-1)
-
- servers = set(servers)
- try:
- #fp = open(Globals.DISCOVERED_SERVER_LIST_FILENAME, "w")
- #fp.writelines(list(servers))
- #fp.close()
- for server in servers:
- print server
- except IOError:
- Common.log(syslog.LOG_ERR, "Unable to open file %s" % Globals.DISCOVERED_SERVER_LIST_FILENAME)
- sys.exit(-1)
-
- #for serverName in servers:
- # print serverName
- sys.exit(0)
-
-if __name__ == "__main__":
- main()