+
    i  c                   s    ^ RI t ^ RIHtHt ^ RIHtHtHtHtHt ^ RI	H
t
  ! R R]4      t ! R R]]]4      t ! R	 R
]]4      tR# )i    N)datetime	timedelta)PluginRedHatPluginDebianPluginUbuntuPlugin	PluginOpt)sos_parse_versionc                   s   a  ] tR t^t o RtRtRtRt]! RR]	RR7      ]! RRR	R
7      .t
RtR tR tR tR tR tR tRtV tR# )	Pacemakerz4Pacemaker high-availability cluster resource manager	pacemakercrm-from z%specfiy the start time for crm_report)defaultZval_typedesc	crm-scrubTz$enable crm_report password scrubbing)r   r   c                s(    V P                  R4       R# )zGet cluster summary zcrm_mon -1 -A -n -r -tNadd_cmd_outputself   &A/usr/lib/python3.14/site-packages/sos/report/plugins/pacemaker.pysetup_crm_monZPacemaker.setup_crm_mon$   s    45    c                s,    V P                  RR.4       R# )z%Get cluster status and configuration z
crm statuscrm configure showNr   r   r   r   setup_crm_shellZPacemaker.setup_crm_shell(   s     
 	r   c                s   V P                   P                  P                  R4      pVf   R# V P                  R4       V P	                  . RO4       RP                  VR,          4      p\        V4      \        R4      8  d   V P	                  R4       MV P	                  R4       V P	                  R	R
R7       V P	                  RRR7       V P	                  RRR7       R# )z%Get pacemaker/corosync configuration ZpcsNz/var/log/pcsd/pcsd.logZ.Zversionz0.10.8zpcs property config --allzpcs property list --all
pcs configZ
pcs_config)Ztagszpcs quorum statusZpcs_quorum_statuszpcs status --fullZ
pcs_status)zpcs stonith sbd status --fullzpcs stonith sbd watchdog listzpcs stonith history show)ZpolicyZpackage_managerZpkg_by_nameadd_copy_specr   Zjoinr   )r   Zpcs_pkgZpcs_versions   &  r   	setup_pcsZPacemaker.setup_pcs/   s    ++--99%@?34 
 	 hhwy12[),=h,GG ;< 9:L|</6IJ/lCr   c                sR    V P                  RRR4       V P                  RRR4       R# )zClear password and api keys r   passw([^\s=]*)=\S+passw\1=********z(api[_]?key[^\s=]*)=\S+z\1=********NZdo_cmd_output_subr   r   r   postproc_crm_shellZPacemaker.postproc_crm_shellF   s2     !	

 	 &	
r   c                s,    V P                  RRR4       R# )zClear password r   r   r   Nr   r   r   r   postproc_pcsZPacemaker.postproc_pcsS   s    !	
r   c           	     s   V P                  . RO4       V P                  4        \        P                  ! 4       \	        ^HR7      ,
          P                  R4      pV P                  R4      '       dl   \        P                  ! R\        V P                  R4      4      4      '       d   V P                  R4      pM$V P                  RV P                  R4       R24       V P                  RRR	7      pV P                  R
4      '       d   RpM$RpV P                  R4       V P                  R4       V P                  RV RV RV R2V P                  4       R7       RpV P                  V P                   4      '       d   V P                  V P                   4       \#        V P                   RRR7      ;_uu_ 4       pV Fx  p\        P                  ! WF4      '       g   K!  \        P$                  ! WF4      P'                  ^4      pR F  p\        P(                  ! VRV4      pK  	  V P                  V4       Kz  	  RRR4       R# R#   + '       g   i     R# ; i)!/var/log/pacemaker/pacemaker.log*)Z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 defaultZ
crm_reportF)ZnameZ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 "Z")Zchrootz0^\s*PCMK_logfile=[\'\"]?(\S+)[\'\"]?\s*(\s#.*)?$ZrzUTF-8)ZencodingN)r!   /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/*/)z^"z"$z^\'z\'$)r   r   r    Ztodayr   ZstrftimeZ
get_optionreZmatchstrZ
_log_errorZget_cmd_output_pathZ	_log_warnr   Ztmp_in_sysrootZpath_isfileenvfileZopenZsearchZgroupZsub)	r   Zcrm_fromZcrm_destZ	crm_scrubZpatternZfileZlineZlogfileZregexps	   &        r   setupZPacemaker.setup[   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   5I AI  I	 N)Zcluster)r	   zpacemaker-remote)__name__
__module____qualname____firstlineno__Z
short_descZplugin_nameZprofilesZpackagesr   r$   Zoption_listr%   r   r   r   r   r    r&   __static_attributes____classdictcell__)__classdict__s   @r   r   r      sp     GJKHH 	*b3>	@+t=	?K G6D.

94 94r   r   c                   s8   a a ] tR t^t oV 3R ltR tRtVtV ;t# )DebianPacemakerc                s   < V P                  R 4      V n        V P                  4        V P                  4        \        SV `  4        R# )z/etc/default/pacemakerN)	path_joinr%   r   r   superr&   r   	__class__   &r   r&   ZDebianPacemaker.setup   s3    ~~&>?r   c                sF    V P                  4        V P                  4        R # N)r   r    r   r   r   postprocZDebianPacemaker.postproc   s    !r   r%   	r(   r)   r*   r+   r&   r6   r,   r-   Z__classcell__r3   r.      @@r   r/   r/      s      r   r/   c                   s8   a a ] tR t^t oV 3R ltR tRtVtV ;t# )RedHatPacemakerc                s   < V P                  R 4      V n        V P                  4        V P                  R4       \        SV `  4        R# )z/etc/sysconfig/pacemakerz/etc/sysconfig/sbdN)r0   r%   r   r   r1   r&   r2   r4   r   r&   ZRedHatPacemaker.setup   s6    ~~&@A/0r   c                s&    V P                  4        R # r5   )r    r   r   r   r6   ZRedHatPacemaker.postproc   s    r   r7   r8   r9   r:   r   r;   r;      s      r   r;   )r#   r    r   Zsos.report.pluginsr   r   r   r   r   Zsos.utilitiesr   r   r/   r;   r'   r   r   <module>r<      sG    
 (9 9 +D4 D4N	i| 	i r   