Sindbad~EG File Manager
3
�fd � @ 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�pacemaker-remote�crm_from� z%specfiy the start time for crm_report)�defaultZval_type�desc� crm_scrubTz$enable crm_report password scrubbing)r r c C s | j d� dS )z Get cluster summary zcrm_mon -1 -A -n -r -tN)�add_cmd_output)�self� r �/usr/lib/python3.6/pacemaker.py�
setup_crm_mon$ s zPacemaker.setup_crm_monc C s | j ddg� dS )z& Get cluster status and configuration z
crm statuszcrm configure showN)r )r r r r �setup_crm_shell( s zPacemaker.setup_crm_shellc C s� | j jjd�}|dkrdS | jd� | jdddg� dj|d �}t|�td �kr^| jd
� n
| jd� | jdd
d� | jddd� | jddd� dS )z& Get pacemaker/corosync configuration ZpcsNz/var/log/pcsd/pcsd.logzpcs stonith sbd status --fullzpcs stonith sbd watchdog listzpcs stonith history show�.�versionz0.10.8zpcs property config --allzpcs property list --allz
pcs configZ
pcs_config)Ztagszpcs quorum statusZpcs_quorum_statuszpcs status --fullZ
pcs_status)ZpolicyZpackage_managerZpkg_by_name�
add_copy_specr �joinr )r Zpcs_pkgZpcs_versionr r r � setup_pcs/ s
zPacemaker.setup_pcsc C s | j ddd� dS )z Clear password zcrm configure showzpassw([^\s=]*)=\S+zpassw\1=********N)�do_cmd_output_sub)r r r r �postproc_crm_shellF s zPacemaker.postproc_crm_shellc C s | j ddd� dS )z Clear password z
pcs configzpassw([^\s=]*)=\S+zpassw\1=********N)r )r r r r �postproc_pcsN s zPacemaker.postproc_pcsc
C s` | j dddddddg� | j� tj� tdd� jd �}| jd
�rxtjdt | jd
���rd| jd
�}n| j
d| jd
� � | jd
dd�}| jd�r�d}nd}| jd� | jd� | j
d|||f | j� d� d}| j| j��r\| j | j� t| jddd��^}xV|D ]N}tj||��r tj||�jd�}xd D ]}tj|d|�}�q*W | j |� �q W W d Q R X d S )!Nz!/var/log/pacemaker/pacemaker.log*z/var/log/pacemaker/bundles/*/z/var/log/pacemaker/pengine*z/var/log/pacemaker.logz/var/log/cluster/pacemaker.log*z/var/log/cluster/bundles/*/�H )Zhoursz%Y-%m-%d %H:%m:%Sr z#\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}z:crm_from parameter '%s' is not a valid date: using defaultZ
crm_reportF)�nameZmaker z-p "passw.*"r z-scrubbing of crm passwords has been disabled:z:data collected by crm_report may contain sensitive values.z5crm_report --sos-mode %s -S -d --dest %s --from "%s")�chrootz0^\s*PCMK_logfile=[\'\"]?(\S+)[\'\"]?\s*(\s#.*)?$�rzUTF-8)�encoding� �^"�"$�^\'�\'$)r'