File: //usr/lib/python3/dist-packages/sos/report/plugins/__pycache__/gluster.cpython-310.pyc
o
���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 storage�gluster)�storage�virtz/run/gluster)� glusterfszglusterfs-core)z
/etc/glusterdz/var/lib/glusterd�dumpFzenable glusterdump support)�default�descc s� d}� fdd�� � |�D �}|D ]7}|d }� �||�}d}|dkrGt|d��}|�� d }t�|d�}W d � n1 s>w Y |dks"qd S )Nr c s g | ] }� � |�r|�qS � )�path_isfile)�.0�f��selfr
�</usr/lib/python3/dist-packages/sos/report/plugins/gluster.py�
<listcomp>! s
��z.Gluster.wait_for_statedump.<locals>.<listcomp>� ����r�
DUMP_END_TIME)�listdir� path_join�open� readlines�string�count) r �name_dir�statedumps_present�statedump_entries�statedump_file�_spath�ret�sfile� last_liner
r r �wait_for_statedump s
�����zGluster.wait_for_statedumpc C st | � d�r8| �| j�s
d S z t�| jd �}|�t�| jd �� |D ]}t�|� q#W d S ty7 Y d S w 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 �remove_files�namer
r
r �postproc- s
����zGluster.postprocc C s� | � d� | � d� | �g d�� | �g d�t�d� � | �d�s*| �g d�� n| �d� | �d �r| �| j�r^d
}| �|�d dkrWt� d
� | �
| j� | �| j� n| j�d� n | j�
d| j � | �d�}|d dkr|d �� d }| �|� | �d�}|d dkr�|d �� D ]3}|�d�s�q�|dd � }| �d| d| d| d| d| d| d| d| d| d| g
� q�d S d S ) Nz,/var/lib/glusterd/geo-replication/secret.pemz6/var/lib/glusterd/glusterfind/glusterfind_*_secret.pem)zgluster peer statuszgluster pool listzgluster volume status)z/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/*�all_logs)z/var/log/glusterfs/*logz/var/log/glusterfs/*/*logz)/var/log/glusterfs/geo-replication/*/*logz/var/log/glusterfsr
z+killall -USR1 glusterfs glusterfsd glusterd�statusr 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)�add_forbidden_path�add_cmd_output�
add_copy_specr+ r( r) r* �exec_cmd�time�sleepr'