summaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorNishanth Thomas <nthomas@redhat.com>2014-11-07 00:54:13 +0530
committerSahina Bose <sabose@redhat.com>2014-11-17 21:39:56 -0800
commitabb72c79f7f2906195c0b7e33d3ad198dd372aec (patch)
treebc10679f1a6ce46c28b3a90a51d817c981386e49 /plugins
parent40a0f0670b126897f5a98445ed51669b9dc88ec6 (diff)
gluster-nagios-addons:discover_volumes to return proper error in case of exception
discoverVolumes was not returning the error message in case of exception while retrieving the data from the backend. Due this the calling funtions always expect a list and causing inconsistent results https://bugzilla.redhat.com/show_bug.cgi?id=1136205 https://bugzilla.redhat.com/show_bug.cgi?id=1109843 Signed-off-by: Nishanth Thomas <nthomas@redhat.com> Change-Id: I518a5f94fd5d414028970379e268e0aa8a408285 Reviewed-on: http://review.gluster.org/9065 Reviewed-by: Shubhendu Tripathi <shtripat@redhat.com> Tested-by: Nishanth Thomas <nishusemail@gmail.com> Reviewed-by: Sahina Bose <sabose@redhat.com>
Diffstat (limited to 'plugins')
-rwxr-xr-xplugins/discover_volumes.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/plugins/discover_volumes.py b/plugins/discover_volumes.py
index 53d17a8..c175247 100755
--- a/plugins/discover_volumes.py
+++ b/plugins/discover_volumes.py
@@ -50,7 +50,15 @@ def discoverVolumes(volumeName, list):
}
"""
resultlist = {}
- volumes = glustercli.volumeInfo(volumeName)
+ try:
+ volumes = glustercli.volumeInfo(volumeName)
+ except glustercli.GlusterLockedException as e:
+ resultString = ("UNKNOWN: temporary error. %s" % '.'.join(e.err))
+ return utils.PluginStatusCode.UNKNOWN, resultString
+ except glustercli.GlusterCmdFailedException as e:
+ resultString = ("UNKNOWN: Failed to get the volume Information. "
+ "%s" % '.'.join(e.err))
+ return utils.PluginStatusCode.UNKNOWN, resultString
for key, volume in volumes.iteritems():
volDict = {}
volDict['name'] = key
@@ -74,7 +82,7 @@ def discoverVolumes(volumeName, list):
'hostUuid': brick['hostUuid']})
resultlist[key] = volDict
resultString = json.dumps(resultlist)
- return resultString
+ return utils.PluginStatusCode.OK, resultString
def get_arg_parser():
@@ -89,6 +97,6 @@ def get_arg_parser():
if __name__ == '__main__':
args = get_arg_parser().parse_args()
- resultString = discoverVolumes(args.volume, args.list)
+ status, resultString = discoverVolumes(args.volume, args.list)
print resultString
- sys.exit(utils.PluginStatusCode.OK)
+ sys.exit(status)