File: //usr/lib/python3/dist-packages/sos/report/plugins/__pycache__/pacemaker.cpython-310.pyc
o
-�_g? � @ sz d dl Z d dlmZmZ d dlmZmZmZmZmZ d dl m
Z
G dd� de�ZG dd� deee�ZG d d
� d
ee�Z
dS )� N)�datetime� timedelta)�Plugin�RedHatPlugin�DebianPlugin�UbuntuPlugin� PluginOpt)�sos_parse_versionc @ sn e Zd ZdZdZdZdZeddedd�ed d
dd�gZ dZ
d
d� Zdd� Zdd� Z
dd� Zdd� Zdd� ZdS )� Pacemakerz4Pacemaker high-availability cluster resource manager� pacemaker)�cluster)r zpacemaker-remote�crm-from� z%specfiy the start time for crm_report)�default�val_type�desc� crm-scrubTz$enable crm_report password scrubbing)r r c C s | � d� dS )z Get cluster summary zcrm_mon -1 -A -n -r -tN��add_cmd_output��self� r �>/usr/lib/python3/dist-packages/sos/report/plugins/pacemaker.py�
setup_crm_mon$ s zPacemaker.setup_crm_monc C s | � ddg� dS )z& Get cluster status and configuration z
crm status�crm configure showNr r r r r �setup_crm_shell( s
�zPacemaker.setup_crm_shellc C s� | j j�d�}|du r
dS | �d� | �g d�� d�|d �}t|�td�kr.| �d� n| �d � | jd
dd� | jd
dd� | jddd� dS )z& Get pacemaker/corosync configuration �pcsNz/var/log/pcsd/pcsd.log)zpcs stonith sbd status --fullzpcs stonith sbd watchdog listzpcs stonith history show�.�versionz0.10.8zpcs property config --allzpcs property list --all�
pcs config�
pcs_config)�tagszpcs quorum status�pcs_quorum_statuszpcs status --full�
pcs_status)�policy�package_manager�pkg_by_name�
add_copy_specr �joinr )r �pcs_pkg�pcs_versionr r r � setup_pcs/ s
zPacemaker.setup_pcsc C � | � ddd� dS )� Clear password r �passw([^\s=]*)=\S+�passw\1=********N��do_cmd_output_subr r r r �postproc_crm_shellF �
�zPacemaker.postproc_crm_shellc C r, )r- r r. r/ Nr0 r r r r �postproc_pcsN r3 zPacemaker.postproc_pcsc C sn | � g d�� | �� t�� tdd� �d�}| �d�r9t�dt | �d���r-| �d�}n| �
d| �d�� d�� | jd d
d�}| �d�rHd
}nd}| �d� | �d� | j
d|� d|� d|� d�| �� d� d}| �| j�r�| � | j� t| jddd��.}|D ]"}t�||�r�t�||��d�}dD ] }t�|d|�}q�| � |� q�W d � d S 1 s�w Y d S d S )N)z!/var/log/pacemaker/pacemaker.log*�/var/log/pacemaker/bundles/*/z/var/log/pacemaker/pengine*z/var/log/pacemaker.logr5 z/var/log/cluster/pacemaker.log*z/var/log/cluster/bundles/*/�H )�hoursz%Y-%m-%d %H:%m:%Sr
z#\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}zcrm_from parameter 'z$' is not a valid date: using default�
crm_reportF)�name�maker z-p "passw.*"r z-scrubbing of crm passwords has been disabled:z:data collected by crm_report may contain sensitive values.zcrm_report --sos-mode z -S -d --dest z --from "�")�chrootz0^\s*PCMK_logfile=[\'\"]?(\S+)[\'\"]?\s*(\s#.*)?$�rzUTF-8)�encoding� )z^"z"$z^\'z\'$)r'