Current File : //usr/lib/python3/dist-packages/sos/report/plugins/__pycache__/pacemaker.cpython-312.pyc
�

-�_g?���ddlZddlmZmZddlmZmZmZmZmZddl	m
Z
Gd�de�ZGd�deee�ZGd	�d
ee�Z
y)�N)�datetime�	timedelta)�Plugin�RedHatPlugin�DebianPlugin�UbuntuPlugin�	PluginOpt)�sos_parse_versionc�r�eZdZdZdZdZdZedded��ed	d
d��gZ	dZ
d
�Zd�Zd�Z
d�Zd�Zd�Zy)�	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)rrc�&�|jd�y)z Get cluster summary zcrm_mon -1 -A -n -r -tN��add_cmd_output��selfs �>/usr/lib/python3/dist-packages/sos/report/plugins/pacemaker.py�
setup_crm_monzPacemaker.setup_crm_mon$s�����4�5�c�*�|jddg�y)z& Get cluster status and configuration z
crm status�crm configure showNrrs r�setup_crm_shellzPacemaker.setup_crm_shell(s������ �
�	rc��|jjjd�}|�y|jd�|j	gd��dj|d�}t
|�t
d�kDr|j	d�n|j	d	�|j	d
d��|j	d
d��|j	dd��y)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_versions   r�	setup_pcszPacemaker.setup_pcs/s����+�+�-�-�9�9�%�@���?�����3�4����
�	��h�h�w�y�1�2���[�)�,=�h�,G�G���� ;�<���� 9�:����L�|��<����/�6I��J����/�l��Crc�*�|jddd�y)� Clear password r�passw([^\s=]*)=\S+�passw\1=********N��do_cmd_output_subrs r�postproc_crm_shellzPacemaker.postproc_crm_shellFs����� �!��	
rc�*�|jddd�y)r2r$r3r4Nr5rs r�postproc_pcszPacemaker.postproc_pcsNs������!��	
rc	�2�|jgd��|j�tj�t	d��z
jd�}|j
d�rdtjdt|j
d���r|j
d�}n$|jd|j
d��d��|jd	d
��}|j
d�rd
}n$d}|jd�|jd�|jd|�d|�d|�d�|j���d}|j|j �r�|j|j �t#|j dd��5}|D]m}tj||�s�tj$||�j'd�}dD]}tj(|d|�}�|j|��o	ddd�yy#1swYyxYw)N)z!/var/log/pacemaker/pacemaker.log*�/var/log/pacemaker/bundles/*/z/var/log/pacemaker/pengine*z/var/log/pacemaker.logr;z/var/log/cluster/pacemaker.log*z/var/log/cluster/bundles/*/�H)�hoursz%Y-%m-%d %H:%m:%Srz#\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�makerz-p "passw.*"rz-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,rr�todayr�strftime�
get_option�re�match�str�
_log_error�get_cmd_output_path�	_log_warnr�tmp_in_sysroot�path_isfile�envfile�open�search�group�sub)	r�crm_from�crm_dest�	crm_scrub�pattern�file�line�logfile�regexps	         r�setupzPacemaker.setupVs�����

�
	�	
�����N�N�$��B�'�(�)1��2E�)F�	��?�?�:�&��x�x�>��D�O�O�J�7�8�:��?�?�:�6�����*�4�?�?�:�+F�*G�H6�6�7��+�+��E�+�J���?�?�;�'�&�I��I��N�N�J�K��N�N�0�
1����4�Y�K�@'�'/�j�	�(��1�F�#'�#6�#6�#8�	�	:�F�����D�L�L�)����t�|�|�,��d�l�l�C�'�:�
4�d� �4�D��x�x���.�#%�)�)�G�T�":�"@�"@��"C��&D�B�F�&(�f�f�V�R��&A�G�B��*�*�7�3�4�
4�
4�*�
4�
4�s�H
�,AH
�
HN)�__name__�
__module__�__qualname__�
short_desc�plugin_name�profiles�packagesr	rK�option_listrQrrr0r7r9r^�rrrrsh��G�J��K��H��H�	�*�b�3�>�	@��+�t�=�	?��K��G�6��D�.
�
�94rrc�$��eZdZ�fd�Zd�Z�xZS)�DebianPacemakerc���|jd�|_|j�|j�t�|��y)Nz/etc/default/pacemaker)�	path_joinrQrr0�superr^�r�	__class__s �rr^zDebianPacemaker.setup�s3����~�~�&>�?�����������
��
�rc�D�|j�|j�y�N)r7r9rs r�postproczDebianPacemaker.postproc�s�����!����r�r_r`rar^rq�
__classcell__�rns@rriri�s
����rric�$��eZdZ�fd�Zd�Z�xZS)�RedHatPacemakerc���|jd�|_|j�|jd�t�|��y)Nz/etc/sysconfig/pacemakerz/etc/sysconfig/sbd)rkrQr0r,rlr^rms �rr^zRedHatPacemaker.setup�s6����~�~�&@�A����������/�0�
��
�rc�$�|j�yrp)r9rs rrqzRedHatPacemaker.postproc�s�����rrrrts@rrvrv�s
����rrv)rIrr�sos.report.pluginsrrrrr	�
sos.utilitiesr
rrirvrgrr�<module>r{sG��
�(�9�9�+�4��4�D	�i��|�	��i��r