o
    *bd                     @   s*   d dl mZmZmZ G dd deeZdS )    )PluginRedHatPlugin	PluginOptc                   @   sL   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S )	DNFPluginzdnf package managerdnf)systemZpackagemanagerZsysmgmt)z/etc/dnf/dnf.conf)r   historyFzcollect transaction history)defaultZdeschistory-infoz$collect detailed transaction historyc                 C   sH   |sd S |  D ]}d|v r!| d }|dkr!| jd| dd qd S )Nz[i]r   zHint:zdnf --assumeno module info Zdnf_module_infoZtags)
splitlinessplitadd_cmd_output)selfmoduleslinemodule r   8/usr/lib/python3/dist-packages/sos/report/plugins/dnf.pyget_modules_info   s   
zDNFPlugin.get_modules_infoc              	   C   s(  |  ddi | d | dr| d n| d | d | d | jd	d
d | g d | drC| dsC| d | dr| d}d}|d rs|d  D ]}zt|dd  }W  n	 t	yr   Y qYw t
d|d D ]	}| d|  qzd}| |}| |d  d S )Nz/etc/dnf/modules.d/.*.modulesZdnf_modulesz	/etc/dnf/Zall_logsz/var/log/dnf.*z/var/log/dnf.log*z/var/log/dnf.librepo.log*z/var/log/dnf.rpm.log*zdnf --assumeno module listZdnf_module_listr   )zdnf --versionz#dnf --assumeno list installed *dnf*zdnf --assumeno list extraszpackage-cleanup --dupeszpackage-cleanup --problemsr   r
   zdnf historyoutput|r      zdnf history info %dz&dnf --assumeno module list --installed)Zadd_file_tagsZadd_copy_specZ
get_optionr   Zcollect_cmd_outputr   intr   strip
ValueErrorranger   )r   r   Ztransactionsr   Ztr_idZ
module_cmdr   r   r   r   setup*   s>   








zDNFPlugin.setupN)__name__
__module____qualname__Z
short_descZplugin_nameZprofilesfilesZpackagesr   Zoption_listr   r   r   r   r   r   r      s    r   N)Zsos.report.pluginsr   r   r   r   r   r   r   r   <module>   s   
