| Current Path : /usr/lib/python3/dist-packages/sos/report/plugins/__pycache__/ |
| Current File : //usr/lib/python3/dist-packages/sos/report/plugins/__pycache__/gluster.cpython-38.pyc |
U
���b� � @ sJ d dl Z d dlZd dlZd dlZd dlmZmZmZ G dd� dee�ZdS )� N)�Plugin�RedHatPlugin� PluginOptc @ sL e Zd ZdZdZdZdZdZdZe ddd d
�gZ
dd� Zd
d� Zdd� Z
dS )�GlusterzGlusterFS storageZgluster)ZstorageZvirtz/run/gluster)Z glusterfszglusterfs-core)z
/etc/glusterdz/var/lib/glusterd�dumpFzenable glusterdump support)�defaultZdescc
sz d}� fdd�� � |�D �}|D ]T}|d }� �||�}d}|dkr t|d��}|�� d }t�|d�}W 5 Q R X q<q d S )Nr c s g | ]}� � |�r|�qS � )Zpath_isfile)�.0�f��selfr �</usr/lib/python3/dist-packages/sos/report/plugins/gluster.py�
<listcomp>! s
z.Gluster.wait_for_statedump.<locals>.<listcomp>� ����rZ
DUMP_END_TIME)�listdirZ path_join�open� readlines�string�count) r Zname_dirZstatedumps_presentZstatedump_entriesZstatedump_fileZ_spathZretZsfile� last_liner r r
�wait_for_statedump s
�zGluster.wait_for_statedumpc C sr | � d�rn| �| j�sd S z>t�| jd �}|�t�| jd �� |D ]}t�|� qFW n tk
rl Y nX d S )Nr z/*.dump.[0-9]*z/glusterd_state_[0-9]*_[0-9]*)�
get_option�path_exists�
statedump_dir�glob�extend�os�remove�OSError)r Zremove_files�namer r r
�postproc- s
�zGluster.postprocc C s� | � d� | � d� | �dddg� | �dddd d
ddgt�d
� � | �d�sb| �dddg� n
| �d� | �d��r| �| j�r�d}| �|�d dkr�t� d� | �
| j� | �| j� q�| j�d� n| j�
d| j � | �d�}|d dk�r|d �� d }| �|� | �d�}|d dk�r�|d �� D ]h}|�d��sH�q4|dd � }| �d | d!| d"| d#| d$| d%| d&| d'| d(| d)| g
� �q4d S )*Nz,/var/lib/glusterd/geo-replication/secret.pemz6/var/lib/glusterd/glusterfind/glusterfind_*_secret.pemzgluster peer statuszgluster pool listzgluster volume statusz/etc/redhat-storage-releasez/etc/swift/z/etc/glusterd.rpmsavez/etc/glusterfsz/var/lib/glusterd/z(/run/gluster/shared_storage/nfs-ganesha/z$/var/lib/glusterd/glusterfind/.keys/z/run/gluster/*tier-dht/*Zall_logsz/var/log/glusterfs/*logz/var/log/glusterfs/*/*logz)/var/log/glusterfs/geo-replication/*/*logz/var/log/glusterfsr z+killall -USR1 glusterfs glusterfsd glusterdZstatusr r z6could not send SIGUSR1 to glusterfs/glusterd processesz4Unable to generate statedumps, no such directory: %szgluster get-state�outputr zgluster volume infozVolume Name:� zgluster volume get %s allz(gluster volume geo-replication %s statuszgluster volume heal %s infoz'gluster volume heal %s info split-brainz gluster volume status %s clientszgluster snapshot list %szgluster volume quota %s listz"gluster volume rebalance %s statuszgluster snapshot info %szgluster snapshot status %s)Zadd_forbidden_pathZadd_cmd_outputZ
add_copy_specr r r r Zexec_cmd�time�sleepr Zsoslog�info�warn�splitZcollect_cmd_output�
splitlines�
startswith)r Z
statedump_cmd�stateZ
state_fileZ
volume_cmd�lineZvolnamer r r
�setup: sx
���
�
�
�
�z
Gluster.setupN)�__name__�
__module__�__qualname__Z
short_descZplugin_nameZprofilesr Zpackages�filesr Zoption_listr r"