o
    *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   |  g d d S )N)z/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   sn   t | dd%}|D ]}||r$| d d  W  d    S qW d    dS 1 s0w   Y  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   s   d}d}t | dd,}|D ]}|dr| d }q|dr-| d }| |}qW d    || S 1 s;w   Y  || 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 }| |r| d|  | g d z|  }W n t	y3   d}Y nw | d
| | d
| d S )Nz/boot/initramfs-z	kdump.imgzlsinitrd %s)r   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  }| |r| 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