3 ܓi3@s<ddlmZddlmZmZmZmZGdddeeeZdS)) gethostname)Plugin RedHatPlugin DebianPlugin PluginOptc@s\eZdZdZdZdZdZdZedddd ed d d d gZ d Z d Z d Z dZ ddZddZd S)PcpzPerformance Co-Pilot datapcpsystem performancez /etc/pcp.conf pmmgrlogsdzsize limit in MB of pmmgr logs)defaultZdesc pmloggerfiles z#number of pmlogger files to collectNcCsy(t|jddd}|j}WdQRXWntk r<dSXi}xP|D]H}|jdrXqHy|jjd\}}|||<WqHttfk rYqHXqHWy"|d|_ |d |_ |d |_ Wnt k rdSXd S) z Parse PCP configuration rzUTF-8)encodingNF#=ZPCP_SYSCONF_DIRZ PCP_VAR_DIRZ PCP_LOG_DIRT) open pcp_conffile readlinesIOError startswithstripsplit ValueErrorKeyErrorpcp_sysconf_dir pcp_var_dir pcp_log_dir Exception)selfZpcpconflinesZenv_varslinekeyvaluer'/usr/lib/python3.6/pcp.pypcp_parse_conffile's*      zPcp.pcp_parse_conffilec Cs|jdrdn|jd}|jdr&dn|jd}|jsN|jd|jdS|j|jd}|j|j|j|g|j|j|d|j|d|j|d|j|d gt |_ |j d krP|j|j d |j d }|j||d dd}|j|j d|j d }|j d|}|ddkrPx>|dj D].}|j|dd|d}|r||krPqW|j|j|j d|j|j d|j|jd|j|j d|j|j d|j|j dg|jd}|ddkrxD|dj D]4}|jdr|jd!} |jd| dd PqWdS)"NZall_logsr rzcould not parse configZpmchartZ pmlogconfZpmieconfZ pmlogrewriterZpmmgr*F) sizelimitZtailitrZpmloggerzls -t1 Zstatusoutput)r,ZpmcdzNOTICES*Zpmnsz*/*.log*z */*/*.log*z */*/config*rz pmlogger:z%pmstat -S 00:00 -T 23:59 -t 5m -x -a Zpmstat)Z root_symlink)Z get_optionr)Z _log_warnrZ path_joinrZ add_copy_specrZadd_forbidden_pathr pcp_hostnamer Zexec_cmd splitlinesZcollect_cmd_outputrrZadd_cmd_output) r"r,Z countlimitZ var_conf_dirpathZfiles_collectedZ pmlogger_lsr$resZarcr'r'r(setupCs`                  z Pcp.setup)r r )r)__name__ __module__ __qualname__Z short_descZ plugin_nameZprofilesZpackagesrrZ option_listrrr r0r)r4r'r'r'r(rs rN)ZsocketrZsos.report.pluginsrrrrrr'r'r'r( s