U
    -_g                     @   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)defaultZdesclogsz)collect stdout/stderr logs for containersc              	   C   sJ  |  dddddddg | dd	d
dg | dg | jddd | t| dgd ddddddddg}| dd |D  d}| dr| d}d}d }| |}| |}| |}|   |D ]:}| jd!| d"d# | d$r| jd%| 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crio configz/etc/cniT)	recursiver   )packagesinfoimagespodsZpszps -azps -vZstatsversionc                 S   s   g | ]}d | qS )zcrictl  ).0sr   r   9/usr/lib/python3/dist-packages/sos/report/plugins/crio.py
<listcomp>E   s     zCRIO.setup.<locals>.<listcomp>zcrictl ps --quietr   z -azcrictl images --quietzcrictl pods --quietzcrictl inspect 
containers)subdirr   zcrictl logs -t zcontainers/logsd   Zcrictl_logs)r   ZpriorityZtagszcrictl inspecti zcrictl inspectp )	add_copy_specZadd_env_varZadd_cmd_outputZadd_dir_listingZ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   sj    






 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   b   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   m   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   Dr   N)Zsos.report.pluginsr   r   r   r   r   r   r   r   r   r   r   <module>   s    