diff options
-rwxr-xr-x | plugins/discover_volumes.py | 16 | ||||
-rw-r--r-- | tests/test_discover_volumes.py | 6 |
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): |