관리-도구
편집 파일: gluster.cpython-39.pyc
a -�_g� � @ sB d dl Z d 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 s� d}� fdd�� � |�D �}|D ]j}|d }� �||�}d}|dkr t|ddd��&}|�� d }|�d �}W d � q<1 s~0 Y q<q d S )z Wait until state dump is done r c s g | ]}� � |�r|�qS � )Zpath_isfile)�.0�f��selfr �>/usr/lib/python3.9/site-packages/sos/report/plugins/gluster.py� <listcomp>! s z.Gluster.wait_for_statedump.<locals>.<listcomp>� ����rzUTF-8)�encodingZ DUMP_END_TIMEN)�listdirZ path_join�open� readlines�count) r Zname_dirZstatedumps_presentZstatedump_entriesZstatedump_fileZ_spath�retZsfile� last_liner r r �wait_for_statedump s �zGluster.wait_for_statedumpc C s� | � d�r�| �| j�sd S z>t�| jd �}|�t�| jd �� |D ]}t�|� qFW n4 ty� } z| �d|� �� W Y d }~n d }~0 0 d S )Nr z/*.dump.[0-9]*z/glusterd_state_[0-9]*_[0-9]*z"Could not remove statedump files: ) � get_option�path_exists� statedump_dir�glob�extend�os�remove�OSErrorZ _log_error)r Zremove_files�name�errr r r �postproc- s �zGluster.postprocc C s� | � d� | � d� | jddd� | �d� | jddd� | �g d �t�d � � | �d�sl| �g d�� 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 }| �|� | jddd�}|d dk�r�|d �� D ]�}|�d��sT�q@|dd � }| �d|� d�d|� d�d |� d!�d |� d"�d#|� d$�d%|� �d&|� d'�d(|� d�d)|� �d*|� �g � �q@d S )+Nz,/var/lib/glusterd/geo-replication/secret.pemz6/var/lib/glusterd/glusterfind/glusterfind_*_secret.pemzgluster peer statusZgluster_peer_status)�tagszgluster pool listzgluster volume statusZgluster_v_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/*Zall_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 infoZgluster_v_infozVolume Name:� zgluster volume get z allzgluster volume geo-replication z statuszgluster volume heal z infoz info split-brainzgluster volume status z clientszgluster snapshot list zgluster volume quota z listzgluster volume rebalance zgluster snapshot info zgluster snapshot status )Zadd_forbidden_pathZadd_cmd_outputZ add_copy_specr r r r Zexec_cmd�time�sleepr Zsoslog�infoZwarning�splitZcollect_cmd_output� splitlines� startswith)r Z statedump_cmd�stateZ state_fileZ volume_cmd�lineZvolnamer r r �setup: sd � � � � � �z Gluster.setupN)�__name__� __module__�__qualname__Z short_descZplugin_nameZprofilesr Zpackages�filesr Zoption_listr r$ r1 r r r r r s � r )r r r) Zsos.report.pluginsr r r r r r r r �<module> s