diff options
-rwxr-xr-x | plugins/check_volume_status.py | 7 | ||||
-rw-r--r-- | tests/test_check_volume_status.py | 26 |
2 files changed, 31 insertions, 2 deletions
diff --git a/plugins/check_volume_status.py b/plugins/check_volume_status.py index df68657..7c72ef9 100755 --- a/plugins/check_volume_status.py +++ b/plugins/check_volume_status.py @@ -17,6 +17,8 @@ # import argparse +import json + from glusternagios import utils from glusternagios import glustercli @@ -32,8 +34,11 @@ def getVolumeStatus(args): return exitstatus, message elif volumes[args.volume]["volumeStatus"] == (glustercli. VolumeStatus.ONLINE): + ret_volumes = {} + ret_volumes[args.volume] = volumes.get(args.volume) + ret_volumes[args.volume]['options'] = {} exitstatus = utils.PluginStatusCode.OK - message = "OK: Volume is up" + message = ("OK: Volume is up \n%s" % json.dumps(ret_volumes)) elif volumes[args.volume]["volumeStatus"] == (glustercli. VolumeStatus.OFFLINE): exitstatus = utils.PluginStatusCode.CRITICAL diff --git a/tests/test_check_volume_status.py b/tests/test_check_volume_status.py index 6b0be67..68c5a9b 100644 --- a/tests/test_check_volume_status.py +++ b/tests/test_check_volume_status.py @@ -17,6 +17,7 @@ # # Refer to the README and COPYING files for full details of the license # +import json import mock from testrunner import PluginsTestCase as TestCaseBase @@ -41,6 +42,9 @@ class TestCheckVolumeStatus(TestCaseBase): args = ArgParseMock('test-cluster', 'test-vol') exitStatusCode, exitStatusMsg = (check_volume_status .getVolumeStatus(args)) + print exitStatusMsg + print _expectedVolume() + assert exitStatusMsg == ("OK: Volume is up \n%s" % _expectedVolume()) assert exitStatusCode == utils.PluginStatusCode.OK # Method to test volume status when no volume @@ -70,9 +74,29 @@ def _getVolume(): 'uuid': '0000-0000-0000-1111', 'volumeName': 'test-vol', 'volumeStatus': 'ONLINE', - 'volumeType': 'DISTRIBUTED'}} + 'volumeType': 'DISTRIBUTED'}, + 'test-vol2': {'brickCount': 2, + 'bricks': ['server1:/path1', 'server2:/path2'], + 'options': {'option': 'val'}, + 'transportType': ['tcp'], + 'uuid': '0000-0000-0000-1111', + 'volumeName': 'test-vol', + 'volumeStatus': 'ONLINE', + 'volumeType': 'DISTRIBUTED'}} return vol +def _expectedVolume(): + vol = {'test-vol': {'brickCount': 2, + 'bricks': ['server1:/path1', 'server2:/path2'], + 'options': {}, + 'transportType': ['tcp'], + 'uuid': '0000-0000-0000-1111', + 'volumeName': 'test-vol', + 'volumeStatus': 'ONLINE', + 'volumeType': 'DISTRIBUTED'}} + return json.dumps(vol) + + def _getEmptyVolume(): return {} |