o
    *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   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rk| jd| ddd qQ|D ]}	| jd|	 dd qn|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-*)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   priorityzcrictl inspecti %sr   zcrictl inspectp %sr   )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   s@   







z
CRIO.setupc                 C   sT   g }|  |}|d dkr(|d  D ]}|| q|r(d|d v r(|d |S )Nstatusr   outputZ
deprecated)exec_cmd
splitlinesappendpop)r   cmdretresultZentr   r   r   r   `   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 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   
