#!/usr/bin/python from subprocess import check_output import xml.etree.ElementTree as ET print "<<>>" print "[peers]" pl_xml = check_output(["gluster", "--mode=script", "--xml", "peer", "status" ]) pl = ET.fromstring(pl_xml) for peer in pl.iter('peer'): p = {} for c in peer.iter(): p[c.tag] = c.text print "%s %s %s %s %s" % (p['uuid'], p['hostname'], p['connected'], p['state'], p['stateStr']) vl_xml = check_output(["gluster", "--mode=script", "--xml", "volume", "list" ]) vl = ET.fromstring(vl_xml) for vol in vl.iter('volume'): print "[volstatus:%s]" % vol.text vs_xml = check_output(["gluster", "--mode=script", "--xml", "volume", "status", vol.text, "detail" ]) vs = ET.fromstring(vs_xml) for node in vs.iter('node'): n = {} for c in node.iter(): n[c.tag] = c.text print "%s %s %s %s %s %s" % (n['peerid'], n['hostname'], n['status'], n['sizeTotal'], n['sizeFree'], n['path'] ) # heal info has no xml output so far... :( # # print "[heal:%s]" % vol.text # hi_xml = check_output(["gluster", "--mode=script", "--xml", "volume", "heal", vol.text, "info" ]) # hi = ET.fromstring(hi_xml)