o
    id                     @   s:   d dl mZmZmZmZmZmZ G dd deeeeZdS )    )PluginRedHatPluginUbuntuPluginSoSPredicate	PluginOpt	CosPluginc                   @   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)defaultdesclogsz)collect stdout/stderr logs for containersc                 C   s  |  g d | g d | ddg | t| dgd g d}| dd	 |D  d
}| dr8d| }d}d}| |}| |}| |}|   |D ]}| jd| dd | drl| jd| dddd qQ|D ]}	| jd|	 dd qo|D ]}
| jd|
 dd q}d S )N)z/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-*)
HTTP_PROXYHTTPS_PROXYNO_PROXY	ALL_PROXYzls -alhR /etc/cnizcrio configr   )packages)infoimagespodspszps -azps -v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   crictl_logs)r!   prioritytagszcrictl inspecti %sr   zcrictl inspectp %sr   )add_copy_specadd_env_varadd_cmd_outputset_cmd_predicater   
get_option_get_crio_list_get_crio_goroutine_stacks)selfsubcmdsps_cmdimg_cmdpod_cmdr    r   r   r
   imagepodr   r   r   setup   sB   







z
CRIO.setupc                 C   sT   g }|  |}|d dkr(|d  D ]}|| q|r(d|d v r(|d |S )Nstatusr   output
deprecated)exec_cmd
splitlinesappendpop)r-   cmdretresultentr   r   r   r+   a   s   

zCRIO._get_crio_listc                 C   sR   |  d}|d dkrd S |d  }|  d| }|d dkr'| d d S d S )Nz
pidof crior5   r   r6   zkill -USR1 z/tmp/crio-goroutine-stacks*.log)r8   stripr&   )r-   r>   pidr   r   r   r,   l   s   
zCRIO._get_crio_goroutine_stacksN)__name__
__module____qualname__
short_descplugin_nameprofilesr   servicesr   option_listr4   r+   r,   r   r   r   r   r      s     Cr   N)sos.report.pluginsr   r   r   r   r   r   r   r   r   r   r   <module>   s    
