U
    *b^                     @   s4   d dl mZmZmZmZmZ G dd deeeZdS )    )PluginRedHatPluginUbuntuPluginSoSPredicate	PluginOptc                   @   sT   e Zd ZdZdZdZdZdZedddd	ed
ddd	gZ	dd Z
dd Zdd ZdS )CRIOzCRI-O containerscrio)	container)zcri-o	cri-tools)r   allFz0collect for all containers, even terminated ones)defaultZdesclogsz)collect stdout/stderr logs for containersc              	   C   s0  |  dddddddg | dd	d
dg | ddg | t| dgd ddddddddg}| dd |D  d}| drd| }d}d}| |}| |}| |}|   |D ]4}| jd| d d! | d"r| jd#| d$d%d& q|D ]}	| jd'|	 dd! q|D ]}
| jd(|
 dd! qd S ))Nz/etc/containersz/etc/crictl.yamlz/etc/crio/crio.confz/etc/crio/seccomp.jsonz/etc/crio/crio.conf.d/z!/etc/systemd/system/cri-o.servicez/etc/sysconfig/crio-*Z
HTTP_PROXYZHTTPS_PROXYZNO_PROXYZ	ALL_PROXYzls -alhR /etc/cnizcrio configr
   )packagesinfoimagespodsZpszps -azps -vZstatsversionc                 S   s   g | ]}d | qS )z	crictl %s ).0sr   r   9/usr/lib/python3/dist-packages/sos/report/plugins/crio.py
<listcomp>D   s     zCRIO.setup.<locals>.<listcomp>zcrictl ps --quietr   z%s -azcrictl images --quietzcrictl pods --quietzcrictl inspect %s
containers)subdirr   zcrictl logs -t %szcontainers/logsd   )r   Zpriorityzcrictl inspecti %szcrictl inspectp %s)add_copy_specZadd_env_varZadd_cmd_outputZset_cmd_predicater   Z
get_option_get_crio_list_get_crio_goroutine_stacks)selfZsubcmdsZps_cmdZimg_cmdZpod_cmdr   r   r   r	   ZimageZpodr   r   r   setup   sh    







 z
CRIO.setupc                 C   sT   g }|  |}|d dkrP|d  D ]}|| q&|rPd|d krP|d |S )Nstatusr   outputZ
deprecated)exec_cmd
splitlinesappendpop)r   cmdZretresultZentr   r   r   r   `   s    

zCRIO._get_crio_listc                 C   sN   |  d}|d dkrd S |d  }|  d| }|d dkrJ| d d S )Nz
pidof crior    r   r!   zkill -USR1 z/tmp/crio-goroutine-stacks*.log)r"   stripr   )r   r'   pidr   r   r   r   k   s    
zCRIO._get_crio_goroutine_stacksN)__name__
__module____qualname__Z
short_descZplugin_nameZprofilesr   servicesr   Zoption_listr   r   r   r   r   r   r   r      s   Br   N)Zsos.report.pluginsr   r   r   r   r   r   r   r   r   r   <module>   s   