U
    -Ø_g	  ã                   @   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 MasterZ
saltmaster)Zsysmgmt)zsalt-masterzsalt-apic              	   C   s^   |   d¡r|  d¡ n
|  d¡ |  d¡ |  d¡ |  ¡  | jdddd	d
dddgdd d S )NZall_logsz/var/log/saltz/var/log/salt/masterz	/etc/saltz/etc/salt/pki/*/*.pemz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é   )Ztimeout)Z
get_optionÚadd_copy_specZadd_forbidden_pathÚadd_pillar_rootsZ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H}zt |¡ di ¡ dg ¡}W n tk
rt   g }Y nX | |¡ W 5 Q R X q*|  	|¡ dS )	z+ Collect pilliar_roots of all salt configs z/etc/salt/master.d/*confz/etc/salt/masterÚrzUTF-8)ÚencodingZpillar_rootsÚbaseN)
ÚglobZpath_existsÚappendÚopenÚyamlZ	safe_loadÚgetÚAttributeErrorÚextendr   )r   ZcfgsZmain_cfgZall_pillar_rootsZcfgÚfileZ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/*)Zdo_path_regex_sub)r   ZregexpZsubstr	   r	   r
   ÚpostprocB   s    zSaltMaster.postprocN)
Ú__name__Ú
__module__Ú__qualname__Z
short_descZplugin_nameZprofilesZpackagesr   r   r   r	   r	   r	   r
   r      s   r   )r   r   Zsos.report.pluginsr   r   r   r	   r	   r	   r
   Ú<module>   s   