o
    id                     @   s`   d dl mZmZmZmZmZmZmZ G dd deeZG dd deeZ	G dd deeeZ
dS )	    )PluginRedHatPluginUbuntuPluginSoSPredicate	CosPlugin	PluginOptDebianPluginc                   @   sP   e Zd ZdZdZdZeddddeddd	ded
dddgZdd Zdd Z	dS )DockerzDocker containersdocker)	containerallFz0collect for all containers, even terminated ones)defaultdesclogsz)collect stdout/stderr logs for containerssizez!collect image sizes for docker psc                 C   s  |  ddg | g d | jdd | d | t| dgd g d}|D ]	}| d	|  q)| jd
dd | jddd | jddd | dr[| jddd | jddd | d}|d dkrdd |d  dd  D }|D ]	}| d|  qwdd | j	d| dd D }| j
dd!}| jdd!}|D ]}	| jd"|	 d#d$ | d%r| jd&|	 d#d$ q|D ]}
|
\}}d'|vr|n|}| jd"| d(d)d* q|D ]}| jd+| d,d$ qd S )-Nz/etc/docker/daemon.jsonz/var/lib/docker/repositories-*)
HTTP_PROXYHTTPS_PROXYNO_PROXY	ALL_PROXYDOCKER_BUILD_PROXYDOCKER_RUN_PROXYr
   )unitszls -alhR /etc/docker)services)zevents --since 24h --until 1spszstats --no-streamversionz	volume lsz	docker %szdocker infodocker_info)tagszdocker imagesdocker_imageszdocker ps -adocker_list_containersr   zdocker ps -asd   )priorityzdocker system dfzdocker network lsstatusr   c                 S   s   g | ]}|  d  qS )   )split).0n r&   ;/usr/lib/python3/dist-packages/sos/report/plugins/docker.py
<listcomp>M   s    z Docker.setup.<locals>.<listcomp>outputr"   zdocker network inspect %sc                 S   s   g | ]}|d  qS )r   r&   )r$   cr&   r&   r'   r(   Q   s    r   )runtimeget_all)r+   zdocker inspect %s
containers)subdirr   zdocker logs -t %snoneimagesdocker_image_inspect)r.   r   zdocker volume inspect %svolumes)add_copy_specadd_env_varadd_journaladd_cmd_outputset_cmd_predicater   
get_optioncollect_cmd_output
splitlinesget_containersget_container_imagesget_container_volumes)selfsubcmdssubcmdnetsr%   netr-   r0   r2   r   imgnameimg_idinspvolr&   r&   r'   setup   sn   	






zDocker.setupc                 C   s   d}|  d|d d S )Nz=(?P<var>(pass|key|secret|PASS|KEY|SECRET).*?)=(?P<value>.*?)"z	*inspect*z\g<var>=********")do_cmd_output_sub)r>   
env_regexpr&   r&   r'   postproci   s   zDocker.postprocN)
__name__
__module____qualname__
short_descplugin_nameprofilesr   option_listrH   rK   r&   r&   r&   r'   r	      s     	Jr	   c                           e Zd ZdZ fddZ  ZS )RedHatDocker)r
   zdocker-latestz	docker-iodocker-engine	docker-ce	docker-eec                        t t|   | ddg d S )Nz!/etc/udev/rules.d/80-docker.rulesz/etc/containers/)superrT   rH   r3   r>   	__class__r&   r'   rH      s
   
zRedHatDocker.setuprL   rM   rN   packagesrH   __classcell__r&   r&   r[   r'   rT   {   s    rT   c                       rS   )UbuntuDocker)z	docker.iorU   rV   rW   c                    rX   )Nz/etc/default/dockerz//run/docker/libcontainerd/containerd/events.log)rY   r`   rH   r3   rZ   r[   r&   r'   rH      s
   
zUbuntuDocker.setupr]   r&   r&   r[   r'   r`      s    r`   N)sos.report.pluginsr   r   r   r   r   r   r   r	   rT   r`   r&   r&   r&   r'   <module>   s   $
k