diff options
author | Nishanth Thomas <nthomas@redhat.com> | 2014-04-02 18:10:40 +0530 |
---|---|---|
committer | Bala.FA <barumuga@redhat.com> | 2014-04-29 10:14:33 +0530 |
commit | 13928ae0da5afb2d58fa2a268ebc61ee522ba3c4 (patch) | |
tree | 32a73c5d4d262649f48520c9f228a336287c27a3 /plugins/discoverlogicalcomponents.py | |
parent | 3f8ba5ca094e20d01fbd437a35c7f91c2d69b06f (diff) |
Added the plugins for discovering the gluster components
Modified the code to address the review comments
Change-Id: Iaf18745920ec1177622b5f8a667a2e77f89796da
Signed-off-by: Nishanth Thomas <nthomas@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/22345
Tested-by: Ramesh Nachimuthu <rnachimu@redhat.com>
Reviewed-by: Kanagaraj Mayilsamy <kmayilsa@redhat.com>
Diffstat (limited to 'plugins/discoverlogicalcomponents.py')
-rwxr-xr-x | plugins/discoverlogicalcomponents.py | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/plugins/discoverlogicalcomponents.py b/plugins/discoverlogicalcomponents.py new file mode 100755 index 0000000..50a259f --- /dev/null +++ b/plugins/discoverlogicalcomponents.py @@ -0,0 +1,71 @@ +#!/usr/bin/python +# discoverlogicalcomponents.py -- nagios plugin for discovering +#logical gluster components +# Copyright (C) 2014 Red Hat Inc +# +# This program 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 2 +# of the License, or (at your option) any later version. +# +# This program 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, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA +# +import commands +import json +import sys + +from glusternagios import utils + + +def discoverbricks(vol_info_out): + bricklist = [] + xmlElemList = utils.parseXml(vol_info_out, + "./volInfo/volumes/volume/bricks/brick") + for brick in xmlElemList: + brickdict = {} + brickstr = brick.text + brickproplist = brickstr.split(':') + brickdict['hostip'] = brickproplist[0] + brickdict['brickpath'] = brickproplist[1] + bricklist.append(brickdict) + + return bricklist + + +def discovervolumes(vol_info_out): + vollist = [] + + #Get the volume info + xmlElemList = utils.parseXml(vol_info_out, "./volInfo/volumes/volume") + for volume in xmlElemList: + voldict = {} + voldict['name'] = volume.find('name').text + voldict['typeStr'] = volume.find('typeStr').text + vollist.append(voldict) + + return vollist + + +def discoverlogicalelements(): + resultlist = {} + resultstring = "" + command_vol_info = utils.sudoCmdPath.cmd + " " + \ + utils.glusterCmdPath.cmd + " volume info --xml" + vol_info_out = commands.getoutput(command_vol_info) + resultlist['volumes'] = discovervolumes(vol_info_out) + resultlist['bricks'] = discoverbricks(vol_info_out) + #convert to string + resultstring = json.dumps(resultlist) + print resultstring + sys.exit(utils.PluginStatusCode.OK) + + +if __name__ == '__main__': + discoverlogicalelements() |