summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xplugins/discover_volumes.py16
-rw-r--r--tests/test_discover_volumes.py6
2 files changed, 16 insertions, 6 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)
diff --git a/tests/test_discover_volumes.py b/tests/test_discover_volumes.py
index 626f2e3..e5d15b7 100644
--- a/tests/test_discover_volumes.py
+++ b/tests/test_discover_volumes.py
@@ -77,12 +77,14 @@ class TestDiscoverVolumes(TestCaseBase):
def testDiscoverVolumesList(self):
discover_volumes.glustercli.volumeInfo = self._mockGetVolumeInfo
- volumesList = json.loads(discover_volumes.discoverVolumes(None, True))
+ status, output = discover_volumes.discoverVolumes(None, True)
+ volumesList = json.loads(output)
self._verifyVolumeList(volumesList)
def testDiscoverVolumesInfo(self):
discover_volumes.glustercli.volumeInfo = self._mockGetVolumeInfo
- volumesList = json.loads(discover_volumes.discoverVolumes("V1", False))
+ status, output = discover_volumes.discoverVolumes("V1", False)
+ volumesList = json.loads(output)
self._verifyVolumeInfo(volumesList, "V1")
def testAruguments(self):