o
    O6uf÷  ã                   @   s.   d dl Z d dlmZmZ G dd„ deeƒZdS )é    N)ÚPluginÚIndependentPluginc                   @   s0   e Zd ZdZdZdZdZdZdd„ Zdd„ Z	d	S )
ÚSnapzSnap packagesÚsnap)ÚsystemÚsysmgmtÚpackagemanager)Úsnapdc                 C   s^  |   d¡ | jddd� |  g d¢¡ | jjj}|D ]}| jj |¡}|d dkr3|  d|d	 › �¡ q| jd
dd� |  d¡}|d dkrr|d }| ¡ dd … D ]}|dkrYqR| ¡ }t	 
d|d ¡rq|   d|d › d�g¡ qR|  d¡}|d dkr«|d }| ¡ dd … D ]#}|dkr�q‰| ¡ }	|	d |	d }
}|dv rª|  d|
› d�¡ q‰d S d S )Nú/var/lib/snapd/state.jsonzsnap list --allzinstalled-snaps)Úroot_symlink)zsnap --versionzsnap versionzsnap whoamizsnap model --verbosezsnap model --serial --verbosezsnap serviceszsnap connectionszsnap changes --abs-timezsnap validatez?snap debug state --abs-time --changes /var/lib/snapd/state.jsonzsnap debug stacktraceszsnap get system -dÚpkg_managerr   zsnap connections Únamezsnap debug connectivityé
   )Útimeoutz	snap listÚstatusr   Úoutputé   Ú z.*gadget.*$é   z/snap/z/current/meta/gadget.yamlzsnap changes)ÚDoingÚErrorzsnap tasks z --abs-time)Úadd_copy_specÚadd_cmd_outputÚpolicyÚpackage_managerÚpackagesÚpkg_by_nameÚexec_cmdÚ
splitlinesÚsplitÚreÚmatchÚcollect_cmd_output)ÚselfÚall_pkgsÚpkg_nameÚpkgÚ	snap_listr   ÚlineÚsnap_pkgÚsnap_changesÚchangeÚ	change_idÚchange_status© r.   ú9/usr/lib/python3/dist-packages/sos/report/plugins/snap.pyÚsetup   sF   

€
ÿ€
€÷z
Snap.setupc                 C   s   |   ddd¡ d S )Nr
   zv\"(macaroon|store-macaroon|key-id|session-macaroon|macaroon-key|store-discharges)\":\"?\[?([\"?A-Za-z0-9_=\-,]*)\"?\]?z
"\1":"***")Údo_file_sub)r#   r.   r.   r/   ÚpostprocO   s
   üzSnap.postprocN)
Ú__name__Ú
__module__Ú__qualname__Ú
short_descÚplugin_nameÚprofilesr   Úservicesr0   r2   r.   r.   r.   r/   r      s    8r   )r    Úsos.report.pluginsr   r   r   r.   r.   r.   r/   Ú<module>   s   	