U
    *bÕ  ã                   @   sZ   d dl Z d dlmZmZmZmZ G dd„ deƒZG dd„ deeƒZG dd„ deeeƒZdS )	é    N)ÚPluginÚRedHatPluginÚDebianPluginÚUbuntuPluginc                   @   s    e Zd ZdZdZdZdd„ ZdS )ÚKDumpzKdump crash dumpsZkdump)ÚsystemÚdebugc                 C   s&   |   ddddddddd	d
ddg¡ d S )Nz/proc/cmdlinez/etc/sysconfig/kdumpz/proc/sys/kernel/panicz/proc/sys/kernel/panic_on_oopsz/sys/kernel/kexec_loadedz/sys/kernel/fadump_enabledz/sys/kernel/fadump/enabledz/sys/kernel/fadump_registeredz/sys/kernel/fadump/registeredz/sys/kernel/fadump/mem_reservedz/sys/kernel/kexec_crash_loadedz/sys/kernel/kexec_crash_size)Úadd_copy_spec)Úself© r   ú:/usr/lib/python3/dist-packages/sos/report/plugins/kdump.pyÚsetup   s    ôzKDump.setupN)Ú__name__Ú
__module__Ú__qualname__Z
short_descZplugin_nameZprofilesr   r   r   r   r   r      s   r   c                       s4   e Zd ZdZdZdd„ Zdd„ Z‡ fdd„Z‡  ZS )	ÚRedHatKDump)ú/etc/kdump.conf)zkexec-toolsc              
   C   sV   t |  d¡dƒ<}|D ]0}| |¡r| ¡ d  d¡  W  5 Q R £ S qW 5 Q R X dS )Nz
/etc/fstabÚré   ú/Ú )ÚopenÚ	path_joinÚ
startswithÚsplitÚrstrip)r
   ÚdeviceÚfpÚliner   r   r   Úfstab_parse_fs*   s
    
.zRedHatKDump.fstab_parse_fsc              	   C   sn   d}d}t |  d¡dƒH}|D ]<}| d¡r:| ¡ d }q| d¡r| ¡ d }|  |¡}qW 5 Q R X || S )Nr   ú
/var/crashr   r   Úpathr   )Zext2Zext3Zext4Zxfs)r   r   r   r   r   )r
   Zfsr!   r   r   r   r   r   r   Úread_kdump_conffile1   s    

zRedHatKDump.read_kdump_conffilec                    s”   t t| ƒ ¡  dt ¡  d }|  |¡r6|  d| ¡ |  dddddg¡ z|  ¡ }W n t	k
rn   d	}Y nX |  d
 
|¡¡ |  d 
|¡¡ d S )Nz/boot/initramfs-z	kdump.imgzlsinitrd %sr   z/etc/udev/rules.d/*kexec.rulesz/var/crash/*/vmcore-dmesg.txtz/var/crash/*/kexec-dmesg.logz/var/log/kdump.logr    z{}/*/vmcore-dmesg.txtz{}/*/kexec-dmesg.log)Úsuperr   r   ÚplatformÚreleaseÚpath_existsÚadd_cmd_outputr	   r"   Ú	ExceptionÚformat)r
   Úinitramfs_imgr!   ©Ú	__class__r   r   r   >   s&    
ÿ
û
zRedHatKDump.setup)	r   r   r   ÚfilesÚpackagesr   r"   r   Ú__classcell__r   r   r+   r   r   %   s
   r   c                       s$   e Zd ZdZdZ‡ fdd„Z‡  ZS )ÚDebianKDump)ú/etc/default/kdump-tools)zkdump-toolsc                    sL   t t| ƒ ¡  dt ¡  }|  |¡r2|  d| ¡ |  d¡ |  dg¡ d S )Nz/var/lib/kdump/initrd.img-zlsinitramfs -l %szkdump-config showr1   )r#   r0   r   r$   r%   r&   r'   r	   )r
   r*   r+   r   r   r   \   s    

ÿzDebianKDump.setup)r   r   r   r-   r.   r   r/   r   r   r+   r   r0   W   s   r0   )	r$   Zsos.report.pluginsr   r   r   r   r   r   r0   r   r   r   r   Ú<module>	   s   2