uec@soddlZddlZddlZddlZddlZddlmZmZdeefdYZdS(iN(tPlugint RedHatPlugintGlustercBsheZdZdZdZdZddgZddgZd d d efgZ d Z d Z dZ RS(sGlusterFS storagetglustertstoragetvirts /run/glustert glusterfssglusterfs-cores /etc/glusterds/var/lib/glusterdtdumpsenable glusterdump supporttslowcCsd}gtj|D]}tjj|r|^q}xd|D]\}|d}d}xC|dkrt|d|djd}tj|d}qZWqAWdS(Niiit/trt DUMP_END_TIME(tostlistdirtpathtisfiletfilet readlineststringtcount(tselftname_dirtstatedumps_presenttftstatedump_entrieststatedump_filetrett last_line((s7/usr/lib/python2.7/site-packages/sos/plugins/gluster.pytwait_for_statedumps4  cCs|jdrtjj|js(dSyUtj|jd}|jtj|jdx|D]}tj|qeWWqtk rqXndS(NRs/*.dump.[0-9]*s/glusterd_state_[0-9]*_[0-9]*( t get_optionR Rtexistst statedump_dirtglobtextendtremovetOSError(Rt remove_filestname((s7/usr/lib/python2.7/site-packages/sos/plugins/gluster.pytpostproc*s   c Cs|jd|jdddg|jddddd d gtjd |jd sw|jd ddgn |jd|jdrgtjj|jr d}|j |ddkrt j d|j |j|j|jq!|j jdn|j jd|j|j d}|ddkrg|djd}|j|qgn|jd}|ddkrx|djD]x}|jdsqn|d}|jd|d|d |d!|d"|d#|d$|d%|d&|d'|g qWndS((Ns,/var/lib/glusterd/geo-replication/secret.pemsgluster peer statussgluster pool listsgluster volume statuss/etc/redhat-storage-releases /etc/swift/s/etc/glusterd.rpmsaves/etc/glusterfss/var/lib/glusterd/s(/run/gluster/shared_storage/nfs-ganesha/s/run/gluster/*tier-dht/*tall_logss/var/log/glusterfs/*logs/var/log/glusterfs/*/*logs)/var/log/glusterfs/geo-replication/*/*logs/var/log/glusterfsRs+killall -USR1 glusterfs glusterfsd glusterdtstatusiis6could not send SIGUSR1 to glusterfs/glusterd processess4Unable to generate statedumps, no such directory: %ssgluster get-statetoutputisgluster volume infos Volume Name:i sgluster volume get %s alls(gluster volume geo-replication %s statussgluster volume heal %s infos'gluster volume heal %s info split-brains gluster volume status %s clientssgluster snapshot list %ssgluster volume quota %s lists"gluster volume rebalance %s statussgluster snapshot info %ssgluster snapshot status %s(tadd_forbidden_pathtadd_cmd_outputt add_copy_specR RR RRRtexec_cmdttimetsleepRtsoslogtinfotwarntsplittcollect_cmd_outputt splitlinest startswith(Rt statedump_cmdtstatet state_filet volume_cmdtlinetvolname((s7/usr/lib/python2.7/site-packages/sos/plugins/gluster.pytsetup7sd        (RR( t__name__t __module__t__doc__t plugin_nametprofilesRtpackagestfilestFalset option_listRR&R=(((s7/usr/lib/python2.7/site-packages/sos/plugins/gluster.pyRs   ( R.tos.pathR R Rt sos.pluginsRRR(((s7/usr/lib/python2.7/site-packages/sos/plugins/gluster.pyt s