o
    O6uf˜  ã                   @   s6   d dl Z d dlZd dlmZmZ G dd„ deeƒZdS )é    N)ÚPluginÚIndependentPluginc                   @   s4   e Zd ZdZdZdZdZdd„ Zdd„ Zd	d
„ Z	dS )Ú
SaltMasterzSalt MasterÚ
saltmaster)Úsysmgmt)zsalt-masterzsalt-apic                 C   sR   |   d¡r|  d¡ n|  d¡ |  d¡ |  d¡ |  ¡  | jg d¢dd� d S )	NÚall_logsz/var/log/saltz/var/log/salt/masterz	/etc/saltz/etc/salt/pki/*/*.pem)zsalt-master --versionz#systemctl --full status salt-masterz systemctl --full status salt-apizsalt-key --list allz"salt-run jobs.list_jobs --out=yamlz%salt-run manage.list_state --out=yamlz)salt-run manage.list_not_state --out=yamlz!salt-run manage.joined --out=yamlé   )Útimeout)Ú
get_optionÚadd_copy_specÚadd_forbidden_pathÚadd_pillar_rootsÚadd_cmd_output)Úself© r   ú?/usr/lib/python3/dist-packages/sos/report/plugins/saltmaster.pyÚsetup   s   




	
÷zSaltMaster.setupc              	   C   s�   t   d¡}d}|  |¡r| |¡ g }|D ]+}t|ddd��}t |¡ di ¡ dg ¡}| |¡ W d  ƒ n1 s;w   Y  q|  |¡ dS )	z+ Collect pilliar_roots of all salt configs z/etc/salt/master.d/*confz/etc/salt/masterÚrzUTF-8)ÚencodingÚpillar_rootsÚbaseN)	ÚglobÚpath_existsÚappendÚopenÚyamlÚ	safe_loadÚgetÚextendr   )r   ÚcfgsÚmain_cfgÚall_pillar_rootsÚcfgÚfileÚcfg_pillar_rootsr   r   r   r   ,   s   


þû€zSaltMaster.add_pillar_rootsc                 C   s   d}d}|   d||¡ d S )Nz4(^\s+.*(pass|secret|(?<![A-z])key(?![A-z])).*:\ ).+$z\1******z/etc/salt/*)Údo_path_regex_sub)r   ÚregexpÚsubstr   r   r   Úpostproc?   s   zSaltMaster.postprocN)
Ú__name__Ú
__module__Ú__qualname__Ú
short_descÚplugin_nameÚprofilesÚpackagesr   r   r(   r   r   r   r   r      s    r   )r   r   Úsos.report.pluginsr   r   r   r   r   r   r   Ú<module>   s   