
    ~ g?                         S SK r S SKJrJr  S SKJrJrJrJrJr  S SK	J
r
   " S S\5      r " S S\\\5      r " S	 S
\\5      rg)    N)datetime	timedelta)PluginRedHatPluginDebianPluginUbuntuPlugin	PluginOpt)sos_parse_versionc                   n    \ rS rSrSrSrSrSr\" SS\	SS	9\" S
SSS9/r
SrS rS rS rS rS rS rSrg)	Pacemaker   z4Pacemaker high-availability cluster resource manager	pacemaker)cluster)r   zpacemaker-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                 &    U R                  S5        g)zGet cluster summary zcrm_mon -1 -A -n -r -tNadd_cmd_outputselfs    >/usr/lib/python3/dist-packages/sos/report/plugins/pacemaker.pysetup_crm_monPacemaker.setup_crm_mon$   s    45    c                 *    U R                  SS/5        g)z%Get cluster status and configuration z
crm statuscrm configure showNr   r   s    r   setup_crm_shellPacemaker.setup_crm_shell(   s     
 	r   c                    U R                   R                  R                  S5      nUc  gU R                  S5        U R	                  / SQ5        SR                  US   5      n[        U5      [        S5      :  a  U R	                  S5        OU R	                  S	5        U R	                  S
SS9  U R	                  SSS9  U R	                  SSS9  g)z%Get pacemaker/corosync configuration pcsNz/var/log/pcsd/pcsd.log)zpcs stonith sbd status --fullzpcs stonith sbd watchdog listzpcs stonith history show.versionz0.10.8zpcs property config --allzpcs property list --all
pcs config
pcs_config)tagszpcs quorum statuspcs_quorum_statuszpcs status --full
pcs_status)policypackage_managerpkg_by_nameadd_copy_specr   joinr
   )r   pcs_pkgpcs_versions      r   	setup_pcsPacemaker.setup_pcs/   s    ++--99%@?34 
 	 hhwy12[),=h,GG ;< 9:L|</6IJ/lCr   c                 *    U R                  SSS5        g)Clear password r    passw([^\s=]*)=\S+passw\1=********Ndo_cmd_output_subr   s    r   postproc_crm_shellPacemaker.postproc_crm_shellF   s     !	
r   c                 *    U R                  SSS5        g)r6   r'   r7   r8   Nr9   r   s    r   postproc_pcsPacemaker.postproc_pcsN   s    !	
r   c           	      d   U R                  / SQ5        U R                  5         [        R                  " 5       [	        SS9-
  R                  S5      nU R                  S5      (       aj  [        R                  " S[        U R                  S5      5      5      (       a  U R                  S5      nO$U R                  SU R                  S5       S35        U R                  S	S
S9nU R                  S5      (       a  SnO$SnU R                  S5        U R                  S5        U R                  SU SU SU S3U R                  5       S9  SnU R                  U R                   5      (       a  U R                  U R                   5        [#        U R                   SSS9 nU Hw  n[        R                  " XF5      (       d  M   [        R$                  " XF5      R'                  S5      nS H  n[        R(                  " USU5      nM     U R                  U5        My     S S S 5        g g ! , (       d  f       g = f)N)z!/var/log/pacemaker/pacemaker.log*/var/log/pacemaker/bundles/*/z/var/log/pacemaker/pengine*z/var/log/pacemaker.logrA   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}zcrm_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.zcrm_report --sos-mode z -S -d  --dest z	 --from "")chrootz0^\s*PCMK_logfile=[\'\"]?(\S+)[\'\"]?\s*(\s#.*)?$rzUTF-8)encoding   )z^"z"$z^\'z\'$)r/   r   r   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   setupPacemaker.setupV   s    
 	 	 NN$B'()12E)F 	??:&&xx>DOOJ78: :??:6*4??:+F*G H6 67 ++E+J??;''&IINNJKNN 0 14YK @''/j	(1F#'#6#6#8 	 	: FDLL))t||,dllC':d Dxx.. #%))G":"@"@"C&DF&(ffVR&AG 'E**73 ! ;: *::s   H!<AH!!
H/ N)__name__
__module____qualname____firstlineno__
short_descplugin_nameprofilespackagesr	   rQ   option_listrW   r   r!   r3   r;   r>   rd   __static_attributes__rf   r   r   r   r      sh    GJKHH 	*b3>	@+t=	?K G6D.

94r   r   c                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )DebianPacemaker   c                    > U R                  S5      U l        U R                  5         U R                  5         [        TU ]  5         g )Nz/etc/default/pacemaker)	path_joinrW   r!   r3   superrd   r   	__class__s    r   rd   DebianPacemaker.setup   s3    ~~&>?r   c                 D    U R                  5         U R                  5         g N)r;   r>   r   s    r   postprocDebianPacemaker.postproc   s    !r   rW   rg   rh   ri   rj   rd   r|   rp   __classcell__rx   s   @r   rr   rr      s     r   rr   c                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )RedHatPacemaker   c                    > U R                  S5      U l        U R                  5         U R                  S5        [        TU ]  5         g )Nz/etc/sysconfig/pacemakerz/etc/sysconfig/sbd)ru   rW   r3   r/   rv   rd   rw   s    r   rd   RedHatPacemaker.setup   s6    ~~&@A/0r   c                 $    U R                  5         g r{   )r>   r   s    r   r|   RedHatPacemaker.postproc   s    r   r~   r   r   s   @r   r   r      s     r   r   )rO   r   r   sos.report.pluginsr   r   r   r   r	   sos.utilitiesr
   r   rr   r   rf   r   r   <module>r      sG    
 (9 9 +4 4D	i| 	i r   