# rpm -qa | grep gluster
glusterfs-geo-replication-3.6.5-1.el7.x86_64
glusterfs-3.6.5-1.el7.x86_64
glusterfs-libs-3.6.5-1.el7.x86_64
glusterfs-cli-3.6.5-1.el7.x86_64
glusterfs-fuse-3.6.5-1.el7.x86_64
glusterfs-debuginfo-3.6.5-1.el7.x86_64
glusterfs-api-3.6.5-1.el7.x86_64
glusterfs-server-3.6.5-1.el7.x86_64
[root@server01 infra]# gluster vol status archive detail --xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<cliOutput>
<opRet>0</opRet>
<opErrno>0</opErrno>
<opErrstr/>
<volStatus>
<volumes>
<volume>
<volName>archive</volName>
<nodeCount>1</nodeCount>
<node>
<hostname>server03</hostname>
<path>/export/raid/archive</path>
<peerid>6a9da7fc-70ec-4302-8152-0e61929a7c8b</peerid>
<status>1</status>
<port>49152</port>
<pid>26298</pid>
<sizeTotal>10994207162368</sizeTotal>
<sizeFree>2949546762240</sizeFree>
<device>/dev/sdh1</device>
<blockSize>4096</blockSize>
<mntOptions>rw,relatime,attr2,inode64,noquota</mntOptions>
<fsName>xfs</fsName>
</node>
</volume>
</volumes>
</volStatus>
</cliOutput>
# python [25/594]
Python 2.7.5 (default, Jun 24 2015, 00:41:19)
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from gluster.cli import volume
>>> vol_list = volume.vollist()
>>> volume.info('archive')
[{'status': 'Started', 'bricks': [{'name': 'server03:/export/raid/archive', 'uuid': '6a9da7fc-70ec-4302-8152-0e61929a7c8b'}], 'distribute': 1, 'replica': 1, 'stripe': 1, 'num_bricks':
1, 'transport': 'TCP', 'uuid': 'd7020552-60f5-4b06-b546-dea27815c63c', 'name': 'archive', 'type': 'DISTRIBUTE', 'options': [{'name': 'nfs.acl', 'value': 'off'}]}]
>>> volume.status_detail(volname='archive')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/infra/glustercli-python/gluster/cli/volume.py", line 176, in status_detail
return parse_volume_status(volume_execute_xml(cmd), info(volname))
File "/usr/infra/glustercli-python/gluster/cli/parsers.py", line 101, in parse_volume_status
nodes_data = _parse_volume_status(status_data)
File "/usr/infra/glustercli-python/gluster/cli/parsers.py", line 95, in _parse_volume_status
raise GlusterCmdOutputParseError(e)
gluster.cli.parsers.GlusterCmdOutputParseError: 'NoneType' object has no attribute 'find'
[root@gluster1 vagrant]# gluster vol status gv0 detail --xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<cliOutput>
<opRet>0</opRet>
<opErrno>0</opErrno>
<opErrstr/>
<volStatus>
<volumes>
<volume>
<volName>gv0</volName>
<nodeCount>2</nodeCount>
<node>
<hostname>gluster1</hostname>
<path>/bricks/brick1/gv0</path>
<peerid>75c1ee2c-b0cb-455f-bcc1-957929a984ce</peerid>
<status>1</status>
<port>49152</port>
<ports>
<tcp>49152</tcp>
<rdma>N/A</rdma>
</ports>
<pid>12681</pid>
<sizeTotal>40446885888</sizeTotal>
<sizeFree>39277514752</sizeFree>
<device>/dev/mapper/VolGroup00-LogVol00</device>
<blockSize>4096</blockSize>
<mntOptions>rw,seclabel,relatime,attr2,inode64,noquota</mntOptions>
<fsName>xfs</fsName>
<inodeSize>xfs</inodeSize>
<inodesTotal>39518208</inodesTotal>
<inodesFree>39484411</inodesFree>
</node>
<node>
<hostname>gluster2</hostname>
<path>/bricks/brick1/gv0</path>
<peerid>47111a73-8c59-4d2f-a2d2-295e558b91fc</peerid>
<status>1</status>
<port>49152</port>
<ports>
<tcp>49152</tcp>
<rdma>N/A</rdma>
</ports>
<pid>12661</pid>
<sizeTotal>40446885888</sizeTotal>
<sizeFree>39429644288</sizeFree>
<device>/dev/mapper/VolGroup00-LogVol00</device>
<blockSize>4096</blockSize>
<mntOptions>rw,seclabel,relatime,attr2,inode64,noquota</mntOptions>
<fsName>xfs</fsName>
<inodeSize>xfs</inodeSize>
<inodesTotal>39518208</inodesTotal>
<inodesFree>39489389</inodesFree>
</node>
</volume>
</volumes>
</volStatus>
</cliOutput>
[root@gluster1 vagrant]# rpm -qa | grep gluster
centos-release-gluster41-1.0-3.el7.centos.noarch
glusterfs-libs-4.1.2-1.el7.x86_64
glusterfs-client-xlators-4.1.2-1.el7.x86_64
glusterfs-cli-4.1.2-1.el7.x86_64
glusterfs-fuse-4.1.2-1.el7.x86_64
glusterfs-server-4.1.2-1.el7.x86_64
glusterfs-4.1.2-1.el7.x86_64
glusterfs-api-4.1.2-1.el7.x86_64