U
    -_gC                     @   s.   d dl Z d dlmZmZ G dd deeZdS )    N)PluginUbuntuPluginc                   @   sL   e Zd ZdZdZdZdZdZdZdd Z	d	d
 Z
dd Zdd Zdd ZdS )MAASzMAAS | Metal as a Servicemaasi  )Zsysmgmt)r   zmaas-region-apizmaas-region-controllerzmaas-rack-controller
maas-agent)r   zmaas-apiserverz
maas-dhcpdzmaas-dhcpd6z	maas-httpz
maas-proxyz
maas-rackdzmaas-regiondzmaas-syslogzmaas-temporalzmaas-temporal-workerzsnap.maas.supervisorzsnap.maas.pebblec                    s    |sg S g }|D ]}||  s8q fdd D }|sXqt|dd dd}d}d|ss||d	  qr nd	|fd
d|D  q|S )Nc                    s"   g | ]}  r |qS  )
path_isdir	path_join.0d)	host_pathselfr   9/usr/lib/python3/dist-packages/sos/report/plugins/maas.py
<listcomp>=   s   
z-MAAS._get_machines_syslog.<locals>.<listcomp>c                 S   s   t | jS )Nosstatst_mtime)r   r   r   r   <lambda>G       z+MAAS._get_machines_syslog.<locals>.<lambda>T)keyreverseall_logssincer   c                    s    g | ]}t |j kr|qS r   r   r
   r   r   r   r   R   s      )	Zpath_existslistdirr	   r   sorted
get_optionappendZ	timestampextend)r   Z	directoryZrecentZhost_dirZsubdirsZsorted_subdirsr   r   )r   r   r   r   _get_machines_syslog/   s4    

  

zMAAS._get_machines_syslogc              	   C   sf   | j ddgdd | dddg | dd	d
ddddg | drR| ddg | | d d S )Nzsnap info maaszmaas statusT)Zsnap_cmdz/var/snap/maas/**/*.keyz/var/snap/maas/**/*.pemz/var/snap/maas/**/secretz/var/snap/maas/common/snap_modez"/var/snap/maas/common/log/**/*.logz /var/snap/maas/current/**/*.confz /var/snap/maas/current/**/*.yamlz/var/snap/maas/current/bindz/var/snap/maas/current/preseedsz(/var/snap/maas/current/supervisord/*.logr   z$/var/snap/maas/common/log/**/*.log.*z*/var/snap/maas/current/supervisord/*.log.*z!/var/snap/maas/common/log/rsyslogZadd_cmd_outputZadd_forbidden_pathZadd_copy_specr   r!   r   r   r   r   _snap_collectW   s<    

zMAAS._snap_collectc              	   C   sd   |  dg | ddddddg | dd	d
ddddg | drP| dg | | d d S )Nzapt-cache policy maas maas-*z/var/lib/maas/**/*.keyz/var/lib/maas/**/*.pemz/var/lib/maas/**/secretz/etc/maas/**/*.keyz/etc/maas/**/*.pemz/etc/maas/**/secretz/etc/maas/**/*.confz/etc/maas/**/*.yamlz/etc/maas/preseedsz/var/lib/maas/**/*.confz/var/lib/maas/dhcp/*.leasesz/var/lib/maas/temporalz/var/log/maas/**/*.logr   z/var/log/maas/**/*.log.*z/var/log/maas/rsyslogr"   r#   r   r   r   _deb_collecty   s:    	

zMAAS._deb_collectc                 C   sn   | j D ]J}| |r| | | dsF| dp4d}| j||d q| | q| jrb|   n|   d S )Nr   r   z-1daysr   )	_servicesZ
is_serviceZadd_service_statusr   Zadd_journalZis_snapr$   r%   )r   servicer   r   r   r   setup   s    




z
MAAS.setupc                 C   s   |  ddd d S )Nz(.*)\.(conf|yaml|yml|toml)$z1((?:.*secret|.*password|.*pass)(?::\s*|=\s*))(.*)z\1*****)Zdo_path_regex_subr#   r   r   r   postproc   s
    zMAAS.postprocN)__name__
__module____qualname__Z
short_descZplugin_nameZplugin_timeoutZprofilesZpackagesr&   r!   r$   r%   r(   r)   r   r   r   r   r      s   ("#r   )r   Zsos.report.pluginsr   r   r   r   r   r   r   <module>   s   