+
    Û1jÛ  ã                   óŽ   € ^ 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# )é    N)ÚdatetimeÚ	timedelta)ÚPluginÚRedHatPluginÚDebianPluginÚUbuntuPluginÚ	PluginOpt)Úsos_parse_versionc                   ó†   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)ÚdefaultÚval_typeÚdescú	crm-scrubTz$enable crm_report password scrubbing)r   r   c                ó(   € V P                  R4       R# )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                ó,   € V P                  RR.4       R# )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                ó¾  € 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 ÚpcsNz/var/log/pcsd/pcsd.logÚ.Ú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)zpcs stonith sbd status --fullzpcs stonith sbd watchdog listzpcs stonith history show)Ú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Ø×Ñò 
ô 	ð —h‘h˜w yÕ1Ó2ˆÜ˜[Ó)Ô,=¸hÓ,GÔGØ×ÑÐ ;Õ<à×ÑÐ 9Ô:à×Ñ˜L¨|ÐÔ<Ø×ÑÐ/Ð6IÐÔJØ×ÑÐ/°lÐÖCr   c                óR   € 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©Údo_cmd_output_subr   s   &r   Úpostproc_crm_shellÚPacemaker.postproc_crm_shellF   s2   € à×ÑØ Ø!Øô	
ð
 	×ÑØ Ø&Øö	
r   c                ó,   € V P                  RRR4       R# )zClear password r%   r4   r5   Nr6   r   s   &r   Úpostproc_pcsÚPacemaker.postproc_pcsS   s   € à×ÑØØ!Øö	
r   c           	     ó¨  € 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*)Ú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)ÚencodingN)r>   ú/var/log/pacemaker/bundles/*/z/var/log/pacemaker/pengine*z/var/log/pacemaker.logrG   z/var/log/cluster/pacemaker.log*z/var/log/cluster/bundles/*/)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.setup[   sý  € Ø×Ñò 
ô 	ð 	×ÑÔô —N’NÓ$Ü BÔ'õ(ß)1©Ð2EÓ)Fð 	à�?‰?˜:×&Ò&Ü�xŠxÐ>Ü˜DŸO™O¨JÓ7Ó8÷:ò :àŸ?™?¨:Ó6‘à—‘Ø*¨4¯?©?¸:Ó+FÐ*Gð H6ð 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°'×:Õ:¸dÛ �DÜ—x’x ×.Ô.ô #%§)¢)¨GÓ":×"@Ñ"@ÀÓ"C˜Û&D˜FÜ&(§f¢f¨V°R¸Ó&AšGñ 'Eà×*Ñ*¨7Ö3ñ !÷ ;Ñ:ñ *ç:×:Ð:ús   Æ5I ÇAI É I	© N)Úcluster)r   zpacemaker-remote)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú
short_descÚplugin_nameÚprofilesÚpackagesr	   rM   Úoption_listrS   r   r   r1   r8   r;   r`   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      sp   ø‡ € àG€Jà€KØ€Hð€Hñ 	�* b°3Ø>ô	@á�+ tØ=ô	?ð€Kð €Gò6òòDò.
ò
÷94ð 94r   r   c                   ó8   a a€ ] tR t^—t oV 3R ltR tRtVtV ;t# )ÚDebianPacemakerc                ó�   <€ V P                  R 4      V n        V P                  4        V P                  4        \        SV `  4        R# )z/etc/default/pacemakerN)Ú	path_joinrS   r   r1   Úsuperr`   ©r   Ú	__class__s   &€r   r`   ÚDebianPacemaker.setup˜   s3   ø€ Ø—~‘~Ð&>Ó?ˆŒØ×ÑÔØ�‰ÔÜ‰‰Žr   c                óF   € V P                  4        V P                  4        R # ©N)r8   r;   r   s   &r   ÚpostprocÚDebianPacemaker.postprocž   s   € Ø×ÑÔ!Ø×ÑÖr   ©rS   ©	rd   re   rf   rg   r`   rz   rm   rn   Ú__classcell__©rv   ro   s   @@r   rq   rq   —   s   ù‡ € õ÷ò r   rq   c                   ó8   a a€ ] tR t^£t oV 3R ltR tRtVtV ;t# )ÚRedHatPacemakerc                ó’   <€ V P                  R 4      V n        V P                  4        V P                  R4       \        SV `  4        R# )z/etc/sysconfig/pacemakerz/etc/sysconfig/sbdN)rs   rS   r1   r-   rt   r`   ru   s   &€r   r`   ÚRedHatPacemaker.setup¤   s6   ø€ Ø—~‘~Ð&@ÓAˆŒØ�‰ÔØ×ÑÐ/Ô0Ü‰‰Žr   c                ó&   € V P                  4        R # ry   )r;   r   s   &r   rz   ÚRedHatPacemaker.postprocª   s   € Ø×ÑÖr   r|   r}   r   s   @@r   r�   r�   £   s   ù‡ € õ÷ò r   r�   )rK   r   r   Úsos.report.pluginsr   r   r   r   r	   Úsos.utilitiesr
   r   rq   r�   rb   r   r   Ú<module>rˆ      sG   ðó 
ß (÷9õ 9å +ôD4�ô D4ôN	�i ¨|ô 	ô�i ö r   