o id@sDddlmZmZmZmZddlZddlmZGdddeeeZdS))Plugin RedHatPlugin DebianPlugin PluginOptN) gethostnamec@sdeZdZdZdZdZdZdZedddd ed d d d gZ d Z d Z d Z dZ ddZddZddZd S)PcpzPerformance Co-Pilot datapcp)system performance)rz /etc/pcp.conf pmmgrlogsdzsize limit in MB of pmmgr logs)defaultdesc pmloggerfiles z#number of pmlogger files to collectNcCsDd}t|D]\}}}|D]}|||}|tj|7}qq|S)Nr)oswalk path_joinpathgetsize)selfr total_sizedirpathdirnames filenamesffpr8/usr/lib/python3/dist-packages/sos/report/plugins/pcp.pyget_size(s z Pcp.get_sizec Cszt|jd}|}|Wn tyYdSwi}|D]"}|dr'qz|d\}}|||<Wqtt fyAYqwz|d|_ |d|_ |d|_ WdSt y^YdSw) NrF#=PCP_SYSCONF_DIR PCP_VAR_DIR PCP_LOG_DIRT)open pcp_conffile readlinescloseIOError startswithstripsplit ValueErrorKeyErrorpcp_sysconf_dir pcp_var_dir pcp_log_dir Exception)rpcpconflinesenv_varslinekeyvaluerrrpcp_parse_conffile0s2         zPcp.pcp_parse_conffilec Cs|drdn|d|_|drdn|d|_|s(|d|jdS||jd}||j |j|g| ||d||d||d||d gt |_ |j d kr||j d |j d }|j||jd dd}||j d|j d }|d|}|ddkr|dD]}|j|dd|d}|jr||jkrnq|||j d||j d||jd||j d||j d||j dg|d}|ddkr|dD]}|dr|d}|jd|d d!dSqdSdS)"Nall_logsr rzcould not parse %sconfigpmchart pmlogconfpmieconf pmlogrewriterpmmgr*F) sizelimittailitrpmloggerz ls -t1 %sstatusoutput)rDpmcdzNOTICES*pmnsz*/*.log*z */*/*.log*z */*/config*rz pmlogger:z'pmstat -S 00:00 -T 23:59 -t 5m -x -a %spmstat) root_symlink) get_optionrD countlimitr; _log_warnr(rr2 add_copy_specr1add_forbidden_pathr pcp_hostnamer3exec_cmd splitlinescollect_cmd_outputr,r.add_cmd_output)r var_conf_dirrfiles_collected pmlogger_lsr8resarcrrrsetupKsx                  z Pcp.setup)__name__ __module__ __qualname__ short_desc plugin_nameprofilespackagesr(r option_listr1r2r3rTr r;r^rrrrrs( r) sos.report.pluginsrrrrrsocketrrrrrrs