o id*@snddlmZmZmZmZmZddlmZmZddlZGdddeZ Gddde eeZ Gdd d e eZ dS) )Plugin RedHatPlugin DebianPlugin UbuntuPlugin PluginOpt)datetime timedeltaNc@sneZdZdZdZdZdZeddedded d d d gZ dZ d dZ ddZ ddZ ddZddZddZdS) Pacemakerz4Pacemaker high-availability cluster resource manager pacemaker)cluster)r zpacemaker-remotecrm_fromz%specfiy the start time for crm_report)defaultval_typedesc crm_scrubTz$enable crm_report password scrubbing)rrcCs|ddS)Nzcrm_mon -1 -A -n -r -tadd_cmd_outputselfr>/usr/lib/python3/dist-packages/sos/report/plugins/pacemaker.py setup_crm_mon#szPacemaker.setup_crm_moncCs|ddgdS)Nz crm statuscrm configure showrrrrrsetup_crm_shell&s zPacemaker.setup_crm_shellcCsF|d|gd|jddd|jddd|jdd ddS) Nz/var/log/pcsd/pcsd.log)zpcs stonith sbd status --fullzpcs stonith sbd watchdog listzpcs stonith history showzpcs property list --all pcs config pcs_config)tagszpcs quorum statuspcs_quorum_statuszpcs status --full pcs_status) add_copy_specrrrrr setup_pcs,s zPacemaker.setup_pcscC|ddddS)Nrpassw([^\s=]*)=\S+passw\1=********do_cmd_output_subrrrrpostproc_crm_shell8 zPacemaker.postproc_crm_shellcCr")Nrr#r$r%rrrr postproc_pcs?r(zPacemaker.postproc_pcsc CsZ|gd|ttddd}|dr7tdt |dr-|d}n | d|d|j dd d }|d rFd }n d }| d| d|j d|||f|dd}||jr||jt|j.}|D]"}t||rt||d}dD] }t|d |}q||qvWddS1swYdSdS)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:%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 default crm_reportF)namemakerz -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#.*)?$)z^"z"$z^\'z\'$)r rrtodayrstrftime get_optionrematchstr _log_errorget_cmd_output_path _log_warnrtmp_in_sysroot path_isfileenvfileopensearchgroupsub) rr crm_destrpatternflinelogfileregexprrrsetupFsT           "zPacemaker.setupN)__name__ __module__ __qualname__ short_desc plugin_nameprofilespackagesrr7 option_listr=rrr!r'r)rHrrrrr s&  r c$eZdZfddZddZZS)DebianPacemakercs.|d|_||tt|dS)Nz/etc/default/pacemaker) path_joinr=rr!superrRrHr __class__rrrHs zDebianPacemaker.setupcCs||dSN)r'r)rrrrpostprocs zDebianPacemaker.postprocrIrJrKrHrX __classcell__rrrUrrR rRcrQ)RedHatPacemakercs0|d|_||dtt|dS)Nz/etc/sysconfig/pacemakerz/etc/sysconfig/sbd)rSr=r!r rTr\rHrrUrrrHs  zRedHatPacemaker.setupcCs |dSrW)r)rrrrrXs zRedHatPacemaker.postprocrYrrrUrr\r[r\) sos.report.pluginsrrrrrrrr5r rRr\rrrrs t