From a89c4c7d98e41a26431252523b1894a64e598f9b Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 17 Aug 2011 17:13:48 +0530 Subject: Enhanced error handling and added license information to create_volume_directory.py --- .../src/backend/create_volume_directory.py | 46 ++++++---------------- 1 file changed, 12 insertions(+), 34 deletions(-) (limited to 'src') diff --git a/src/com.gluster.storage.management.gateway.scripts/src/backend/create_volume_directory.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/create_volume_directory.py index e295f249..66354412 100755 --- a/src/com.gluster.storage.management.gateway.scripts/src/backend/create_volume_directory.py +++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/create_volume_directory.py @@ -1,20 +1,8 @@ #!/usr/bin/python -# Copyright (C) 2010 Gluster, Inc. -# This file is part of Gluster Storage Platform. +# Copyright (C) 2011 Gluster, Inc. +# This file is part of Gluster Management Gateway. # -# 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 sys p1 = os.path.abspath(os.path.dirname(sys.argv[0])) @@ -35,7 +23,7 @@ def createDirectory(disk, volumeName): if not diskUuid: Utils.log("failed to find disk:%s uuid" % disk) rs.appendTagRoute("status.code", "-1") - rs.appendTagRoute("status.message", "Error: Unable to find disk uuid") + rs.appendTagRoute("status.message", "Error: Failed to find disk uuid") return rs.toprettyxml() # Retrieving disk mount point using disk uuid @@ -53,27 +41,17 @@ def createDirectory(disk, volumeName): rs.appendTagRoute("status.code", "-2") rs.appendTagRoute("status.message", "Volume directory already exists!") return rs.toprettyxml() - - if not os.path.exists(volumeDirectory): - command = ["sudo", "mkdir", volumeDirectory] - rv = Utils.runCommandFG(command, stdout=True, root=True) - message = Utils.stripEmptyLines(rv["Stdout"]) - if rv["Stderr"]: - error = Utils.stripEmptyLines(rv["Stderr"]) - message += "Error: [%s]" % (error) - Utils.log("failed to create volume directory %s, %s" % (volumeDirectory, error)) - rs.appendTagRoute("status.code", rv["Status"]) - rs.appendTagRoute("status.message", message) - return rs.toprettyxml() - - if not rv["Status"]: - rv["Status"] = "0" - if rv["Status"] == "0": - message = volumeDirectory + + rv = Utils.runCommand("mkdir %s" % volumeDirectory, output=True, root=True) + if rv["Status"] != 0: rs.appendTagRoute("status.code", rv["Status"]) - rs.appendTagRoute("status.message", message) + rs.appendTagRoute("status.message", "Failed to create volume directory") return rs.toprettyxml() + rs.appendTagRoute("status.code", rv["Status"]) + rs.appendTagRoute("status.message", volumeDirectory) + return rs.toprettyxml() + def main(): if len(sys.argv) != 3: sys.stderr.write("usage: %s \n" % os.path.basename(sys.argv[0])) -- cgit From 008635552ac7698219e75b9730d9c8a7523a5f13 Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 17 Aug 2011 17:17:54 +0530 Subject: Enhanced clear_volume_directory.py --- .../src/backend/clear_volume_directory.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/com.gluster.storage.management.gateway.scripts/src/backend/clear_volume_directory.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/clear_volume_directory.py index 029787e5..0f8248d8 100755 --- a/src/com.gluster.storage.management.gateway.scripts/src/backend/clear_volume_directory.py +++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/clear_volume_directory.py @@ -29,24 +29,22 @@ def main(): volumeDirectory = args[0] if not os.path.exists(volumeDirectory): - sys.stderr.write("Given volume directory path:%s does not exists" % volumeDirectory) + sys.stderr.write("Given volume directory path:%s does not exists\n" % volumeDirectory) sys.exit(1) + # trim '/' at the end + if '/' == volumeDirectory[-1]: + volumeDirectory = volumeDirectory[:-1] newVolumeDirectoryName = "%s_%s" % (volumeDirectory, time.time()) - rv = Utils.runCommand("mv -f %s %s" % (volumeDirectory, newVolumeDirectoryName), output=True, root=True) - if rv["Stderr"]: - sys.stderr.write(Utils.stripEmptyLines(rv["Stderr"])) + if Utils.runCommand("mv -f %s %s" % (volumeDirectory, newVolumeDirectoryName), root=True) != 0: + sys.stderr.write("Failed to rename volume directory\n") sys.exit(2) if not options.todelete: sys.exit(0) - rv = Utils.runCommand("rm -fr %s" % newVolumeDirectoryName, output=True, root=True) - if rv["Stderr"]: - sys.stderr.write(Utils.stripEmptyLines(rv["Stderr"])) - sys.exit(3) - - sys.exit(0) + rv = Utils.runCommand("rm -fr %s" % newVolumeDirectoryName, root=True) != 0 + sys.exit(rv) if __name__ == "__main__": main() -- cgit From 9cc34dcbb9b162109418522d1c912d394f07ce0e Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 17 Aug 2011 17:19:44 +0530 Subject: Enhanced error handling in get_rrd_cpu_details.py --- .../src/backend/get_rrd_cpu_details.py | 34 +++++++++------------- 1 file changed, 14 insertions(+), 20 deletions(-) (limited to 'src') diff --git a/src/com.gluster.storage.management.gateway.scripts/src/backend/get_rrd_cpu_details.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_rrd_cpu_details.py index e60d7199..774f8e4e 100755 --- a/src/com.gluster.storage.management.gateway.scripts/src/backend/get_rrd_cpu_details.py +++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_rrd_cpu_details.py @@ -14,10 +14,16 @@ if not p2 in sys.path: from XmlHandler import ResponseXml import Utils -def getCpuData(period): - cpuRrdFile = "/var/lib/rrd/cpu.rrd" - rs = ResponseXml() +CPU_RRD_FILE = "/var/lib/rrd/cpu.rrd" + +def main(): + if len(sys.argv) != 2: + sys.stderr.write("usage: %s \n" % os.path.basename(sys.argv[0])) + sys.exit(-1) + + period = sys.argv[1] + rs = ResponseXml() command = "rrdtool xport --start -%s \ DEF:cpuuser=%s:user:AVERAGE \ DEF:cpusystem=%s:system:AVERAGE \ @@ -29,26 +35,14 @@ def getCpuData(period): CDEF:totalpct=userpct,systempct,+ \ XPORT:userpct:userpct \ XPORT:systempct:systempct \ - XPORT:totalpct:totalpct" % (period, cpuRrdFile, cpuRrdFile, cpuRrdFile) + XPORT:totalpct:totalpct" % (period, CPU_RRD_FILE, CPU_RRD_FILE, CPU_RRD_FILE) rv = Utils.runCommand(command, output=True, root=True) - message = Utils.stripEmptyLines(rv["Stdout"]) - if rv["Stderr"]: - error = Utils.stripEmptyLines(rv["Stderr"]) - message += "Error: [%s]" % (error) - Utils.log("failed to create RRD file for cpu usages %s" % file) + if rv["Status"] != 0: rs.appendTagRoute("status.code", rv["Status"]) - rs.appendTagRoute("status.message", message) - return rs.toxml() - return rv["Stdout"] - -def main(): - if len(sys.argv) != 2: - sys.stderr.write("usage: %s \n" % os.path.basename(sys.argv[0])) - sys.exit(-1) - - period = sys.argv[1] - print getCpuData(period) + rs.appendTagRoute("status.message", "Failed to get RRD data of CPU") + print rs.toxml() + print rv["Stdout"] sys.exit(0) if __name__ == "__main__": -- cgit From 16757d8552d2964099113e14c9ad70f11b49ad83 Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 17 Aug 2011 17:21:59 +0530 Subject: Enhanced get_rrd_memory_details.py --- .../src/backend/get_rrd_memory_details.py | 50 +++++++--------------- 1 file changed, 16 insertions(+), 34 deletions(-) (limited to 'src') diff --git a/src/com.gluster.storage.management.gateway.scripts/src/backend/get_rrd_memory_details.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_rrd_memory_details.py index a6dd4987..a9272b1f 100755 --- a/src/com.gluster.storage.management.gateway.scripts/src/backend/get_rrd_memory_details.py +++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_rrd_memory_details.py @@ -1,20 +1,7 @@ #!/usr/bin/python -# Copyright (C) 2010 Gluster, Inc. -# This file is part of Gluster Storage Platform. +# Copyright (C) 2011 Gluster, Inc. +# This file is part of Gluster Management Gateway. # -# 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 -# . # Input command: get_rrd_memory_details.py 1hour # OUTPUT as bellow: @@ -54,8 +41,15 @@ import syslog from XmlHandler import ResponseXml import Utils -def getMemData(period): - memRrdFile = "/var/lib/rrd/mem.rrd" +MEMORY_RRD_FILE = "/var/lib/rrd/mem.rrd" + +def main(): + if len(sys.argv) != 2: + sys.stderr.write("usage: %s \n" % os.path.basename(sys.argv[0])) + sys.exit(-1) + + period = sys.argv[1] + rs = ResponseXml() command = "rrdtool xport --start -%s \ DEF:free=%s:memfree:AVERAGE \ @@ -69,26 +63,14 @@ def getMemData(period): XPORT:free:memoryFree \ XPORT:cache:memoryCache \ XPORT:buffer:memoryBuffer \ - XPORT:total:totalMemory" % (period, memRrdFile, memRrdFile, memRrdFile, memRrdFile) + XPORT:total:totalMemory" % (period, MEMORY_RRD_FILE, MEMORY_RRD_FILE, MEMORY_RRD_FILE, MEMORY_RRD_FILE) rv = Utils.runCommand(command, output=True, root=True) - message = Utils.stripEmptyLines(rv["Stdout"]) - if rv["Stderr"]: - error = Utils.stripEmptyLines(rv["Stderr"]) - message += "Error: [%s]" % (error) - Utils.log("failed to create RRD file for memory usages %s" % file) + if rv["Status"] != 0: rs.appendTagRoute("status.code", rv["Status"]) - rs.appendTagRoute("status.message", message) - return rs.toxml() - return rv["Stdout"] - -def main(): - if len(sys.argv) != 2: - sys.stderr.write("usage: %s \n" % os.path.basename(sys.argv[0])) - sys.exit(-1) - - period = sys.argv[1] - print getMemData(period) + rs.appendTagRoute("status.message", "Failed to get RRD data of memory usage") + print rs.toxml() + print rv["Stdout"] sys.exit(0) if __name__ == "__main__": -- cgit From 8478d0893ca8452f5e3ef8efa6c86f634db39e5b Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 17 Aug 2011 17:24:21 +0530 Subject: Added license information and enhanced error handling in get_rrd_net_details.py --- .../src/backend/get_rrd_net_details.py | 27 +++++----------------- 1 file changed, 6 insertions(+), 21 deletions(-) (limited to 'src') diff --git a/src/com.gluster.storage.management.gateway.scripts/src/backend/get_rrd_net_details.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_rrd_net_details.py index c319c888..f4a7a465 100755 --- a/src/com.gluster.storage.management.gateway.scripts/src/backend/get_rrd_net_details.py +++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_rrd_net_details.py @@ -1,20 +1,8 @@ #!/usr/bin/python -# Copyright (C) 2010 Gluster, Inc. -# This file is part of Gluster Storage Platform. +# Copyright (C) 2011 Gluster, Inc. +# This file is part of Gluster Management Gateway. # -# 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 sys p1 = os.path.abspath(os.path.dirname(sys.argv[0])) @@ -42,14 +30,11 @@ def main(): XPORT:received:received \ XPORT:transmitted:transmitted \ XPORT:total:total" % (period, device, device) + rv = Utils.runCommand(command, output=True, root=True) - message = Utils.stripEmptyLines(rv["Stdout"]) - if rv["Stderr"]: - error = Utils.stripEmptyLines(rv["Stderr"]) - message += "Error: [%s]" % (error) - Utils.log("failed to get RRD information of device %s" % file) + if rv["Status"] != 0: rs.appendTagRoute("status.code", rv["Status"]) - rs.appendTagRoute("status.message", message) + rs.appendTagRoute("status.message", "Failed to get RRD information of device %s" % device) print rs.toxml() print rv["Stdout"] sys.exit(0) -- cgit From 2b69d8a557662510fbba144d5c91a70134f5099b Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 17 Aug 2011 17:43:58 +0530 Subject: Updated get_server_details.py to log and return actual dbus error message --- .../src/backend/get_server_details.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/com.gluster.storage.management.gateway.scripts/src/backend/get_server_details.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_server_details.py index ecbe1237..2b353f2a 100755 --- a/src/com.gluster.storage.management.gateway.scripts/src/backend/get_server_details.py +++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_server_details.py @@ -104,8 +104,8 @@ def getServerDetails(listall): try: diskDom = DiskUtils.getDiskDom() except dbus.dbus_bindings.DBusException, e: - sys.stderr.write("Failed to connect HAL to get device details. Please check if HAL services are running\n") - Utils.log("Failed to connect HAL to get device details") + sys.stderr.write("%s. Please check if HAL services are running\n" % str(e)) + Utils.log("failed to get disk details :%s" % str(e)) sys.exit(1) if not diskDom: sys.stderr.write("No disk found!") -- cgit