o
    O6ufï  ã                   @   s*   d dl mZmZmZ G dd„ deeƒZdS )é    )ÚPluginÚUbuntuPluginÚ	PluginOptc                   @   sz   e Zd ZdZdZdZdZdZedde	dd	�ed
de	dd	�edde	dd	�gZ
dZdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚMaaszUbuntu Metal-As-A-ServiceÚmaas)Úsysmgmt)r   zmaas-common)z
maas-dhcpdzmaas-dhcpd6z	maas-httpz
maas-proxyz
maas-rackdzmaas-regiondzmaas-syslogzmaas-temporalzmaas-apiserverz
maas-agentzsnap.maas.supervisorúprofile-nameÚ zName of the remote API)ÚdefaultÚval_typeÚdescÚurlzURL of the remote APIÚcredentialszCredentials, or the API keyFc                 C   s   |   d¡o|   d¡o|   d¡S )Nr   r   r   )Ú
get_option)Úself© r   ú9/usr/lib/python3/dist-packages/sos/report/plugins/maas.pyÚ_has_login_options4   s   ÿzMaas._has_login_optionsc              
   C   s:   |   d|  d¡› d|  d¡› d|  d¡› �¡}|d dkS )Nzmaas login r   ú r   r   Ústatusr   )Úexec_cmdr   )r   Úretr   r   r   Ú_remote_api_login8   s   ÿÿÿzMaas._remote_api_loginc                 C   s"   | j j d¡}|r|d dkS dS )Nr   Úpkg_managerÚsnapF)ÚpolicyÚpackage_managerÚpkg_by_name)r   Úmaas_pkgr   r   r   Ú_is_snap_installed@   s   zMaas._is_snap_installedc                 C   sÜ   |   ¡ | _| jr6|  ddg¡ |  d¡r'|  d¡ |  d¡pd}| jd|d� |  ddg¡ |  g d	¢¡ n|  g d
¢¡ |  ddg¡ |  	d¡rO|  dg¡ |  
¡ rl|  ¡ re|  d|  d¡› d�¡ d S |  d¡ d S d S )Nzsnap info maaszmaas statuszsnap.maas.pebbleÚsincez-1days)Úunitsr    z'/var/snap/maas/current/bind/session.keyz7/var/snap/maas/current/http/certs/regiond-proxy-key.pem)	z/var/snap/maas/common/logz/var/snap/maas/common/snap_modez/var/snap/maas/current/*.confz/var/snap/maas/current/bindz/var/snap/maas/current/httpz"/var/snap/maas/current/supervisordz/var/snap/maas/current/preseedsz/var/snap/maas/current/proxyz/var/snap/maas/current/syslog)z/etc/squid-deb-proxyz	/etc/maasz/var/lib/maas/dhcp*z/var/lib/maas/http/*.confz/var/lib/maas/*.confz/var/lib/maas/rsyslogz/var/log/maas*z/var/log/upstart/maas-*zapt-cache policy maas-*z apt-cache policy python-django-*zmaas-region-controllerzmaas-region dumpdatazmaas r   z commissioning-results listz6Cannot login into MAAS remote API with provided creds.)r   Úis_snapÚadd_cmd_outputÚ
is_serviceÚadd_service_statusr   Úadd_journalÚadd_forbidden_pathÚadd_copy_specÚis_installedr   r   Ú
_log_error)r   r    r   r   r   ÚsetupF   s>   
þ

þ
þ
ÿÿûz
Maas.setupc                 C   s"   | j rd}nd}|  |dd¡ d S )Nz(/var/snap/maas/current/maas/regiond.confz/etc/maas/regiond.confz(database_pass\s*:\s*)(.*)z
\1********)r"   Údo_file_sub)r   Úregiond_pathr   r   r   Úpostprocƒ   s   þzMaas.postprocN)Ú__name__Ú
__module__Ú__qualname__Ú
short_descÚplugin_nameÚprofilesÚpackagesÚservicesr   ÚstrÚoption_listr"   r   r   r   r+   r.   r   r   r   r   r      s,    ÿÿÿû	=r   N)Úsos.report.pluginsr   r   r   r   r   r   r   r   Ú<module>   s   
