U
    -_g                     @   s>   d dl Z d dlmZ d dlmZmZmZ G dd deeZdS )    N)RedHatPolicy)PluginIndependentPlugin	PluginOptc                   @   sH   e Zd 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S )Kernela  The Kernel plugin is aimed at collecting general information about
    the locally running kernel. This information should be distribution-neutral
    using commands and filesystem collections that are ubiquitous across
    distributions.

    Debugging information from /sys/kernel/debug is collected by default,
    however care is taken so that these collections avoid areas like
    /sys/kernel/debug/tracing/trace_pipe which would otherwise cause the
    sos collection attempt to appear to 'hang'.

    The 'trace' option will enable the collection of the
    /sys/kernel/debug/tracing/trace file specfically, but will not change the
    behavior stated above otherwise.
    zLinux kernelkernel)systemZhardwarer   )kernel$z/sys/module
with-timerFzgather /proc/timer* statistics)defaultZdesctracez+gather /sys/kernel/debug/tracing/trace filec              .   C   s  t | jtrd| _| jdddd | jdddd | d z*| | j}| jdd| d	d
d W n& t	k
r   | 
d| j  Y nX dddg}g }|D ]}|t| q|r| dd| d | jdddgdd | jddd d}| dddddd d!d"d#d$d%g | d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4| j  d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdL|dM |dN dOdP| j  g* | dQr| dR | dSs| dT d S )UN)r	   zkernel-redhat$zuname -auname)Zroot_symlinktagsZlsmodz/sys/kernel/slabzmodinfo  Zmodinfo_ALL_MODULESZmodinfo_all)Zsuggest_filenamer   zcould not list z/lib/modules/*/extraz/lib/modules/*/updatesz/lib/modules/*/weak-updateszfind z -lsZdmesgzdmesg -Tzdkms statusT)Z
cmd_as_tagz	sysctl -aZsysctl)r   z-/sys/devices/system/clocksource/clocksource0/z$/sys/kernel/debug/tracing/trace_pipez /sys/kernel/debug/tracing/READMEz$/sys/kernel/debug/tracing/trace_statz!/sys/kernel/debug/tracing/per_cpuz /sys/kernel/debug/tracing/eventsz%/sys/kernel/debug/tracing/free_bufferz&/sys/kernel/debug/tracing/trace_markerz*/sys/kernel/debug/tracing/trace_marker_rawz</sys/kernel/debug/tracing/instances/*/per_cpu/*/snapshot_rawz;/sys/kernel/debug/tracing/instances/*/per_cpu/*/trace_pipe*z0/sys/kernel/debug/tracing/instances/*/trace_pipez/proc/modulesz/proc/sys/kernel/random/boot_idz/sys/module/*/parametersz/sys/module/*/initstatez/sys/module/*/refcntz/sys/module/*/taintz/sys/module/*/versionz/sys/firmware/acpi/*z/sys/kernel/debug/tracing/*z/sys/kernel/livepatch/*z/proc/kallsymsz/proc/buddyinfoz/proc/slabinfoz/proc/zoneinfoz/lib/modules/z/modules.depz/etc/conf.modulesz/etc/modules.confz/etc/modprobe.confz/etc/modprobe.dz/lib/modprobe.dz/run/modprobe.dz/usr/local/lib/modprobe.dz/etc/sysctl.confz/etc/sysctl.dz/lib/sysctl.dz/proc/cmdlinez/proc/driverz/proc/sys/kernel/taintedz/proc/softirqsz/proc/lock*z
/proc/miscz/var/log/dmesgz/sys/fs/pstorez/var/lib/systemd/pstorez'/sys/kernel/debug/dynamic_debug/controlz(/sys/kernel/debug/extfrag/unusable_indexz'/sys/kernel/debug/extfrag/extfrag_indexz/sys/kernel/debug/hv-balloonZavailable_clocksourceZcurrent_clocksourcez/proc/pressure/z/boot/config-r
   z/proc/timer*r   z/sys/kernel/debug/tracing/trace)
isinstanceZpolicyr   verify_packagesZadd_cmd_outputZadd_dir_listinglistdir
sys_modulejoinOSErrorZ	_log_warnextendglobZadd_forbidden_pathZadd_copy_specZkernel_versionZ
get_option)selfmodulesZextra_mod_patternsZextra_mod_pathspatternZclocksource_path r   ;/usr/lib/python3/dist-packages/sos/report/plugins/kernel.pysetup-   s    

-
zKernel.setupN)__name__
__module____qualname____doc__Z
short_descZplugin_nameZprofilesr   r   r   Zoption_listr   r   r   r   r   r      s   r   )r   Zsos.policies.distros.redhatr   Zsos.report.pluginsr   r   r   r   r   r   r   r   <module>	   s   