← Back
Editing: sunbeam.cpython-38.pyc
U O6uf� � @ s: d dl Z d dlZd dlmZmZmZ G dd� dee�ZdS )� N)�Plugin�UbuntuPlugin� PluginOptc @ sX e Zd ZdZdZdZdZdZedde dd �ed de dd �gZd d� Zdd� Z dd� ZdS )�SunbeamzSunbeam Openstack ControllerZsunbeam)Zcloud)Z openstackz/var/snap/openstack/common�sunbeam-userZubuntuz&The user used for sunbeam installation)�defaultZval_typeZdesc�juju-allow-loginFzAllow sos to login to jujuc C s� | � d� | �| j� d�| j� d�| j� d�| j� d�| j� d�dg� | �dd g� | �d �}zt�|�}W n( tk r� | �d|� d�� Y d S X |�r�|j � d �}| �|� d�|� d�|� d�g� | �d�r�| � d|� d�� | j d|d�}| j d|dd�}d}|d dk�s&|d dk�r�zF|d �� d }|d �� d }d|k�s\d|k�rj| �|� d}W n t k �r� Y nX |�s�| �d� d S ) Nzsnap.openstack.*z /hooks.logz/state/daemon.yaml�#/state/truststore/sunbeam.maas.yamlz/state/database/info.yamlz/state/database/cluster.yamlz'/var/snap/openstack/current/config.yamlzsunbeam cluster listz"sunbeam cluster list --format yamlr zUser "z�" does not exist, will not collect juju information. Use `-k sunbeam.sunbeam-user` option to define the user to use to collect data for sunbeamz/snap/openstack/commonz/*.logz/etc/*/*.logz/logs/*.logr zsu - z -c "sunbeam utils juju-login"zjuju whoami��runaszjuju status� )r ZtimeoutF�statusr �outputZ ControllerTz�juju is not logged in, will not collect juju information. Use `-k sunbeam.juju-allow-login=True` to login or use `juju login` as the sunbeam user to login)Zadd_service_statusZ add_copy_spec� common_dir�add_cmd_outputZ get_option�pwd�getpwnam�KeyErrorZ _log_warn�pw_dirZexec_cmd� splitlines�_get_juju_cmd_details� IndexError) �selfZsunbeam_userZuser_pwdZsb_snap_homedirZjuju_whoamiZjuju_statusZ logged_inZj_whoamiZj_status� r �</usr/lib/python3/dist-packages/sos/report/plugins/sunbeam.py�setup! sd � � �� �� �z Sunbeam.setupc C s� | j d|d� | jd|d�}|d dkr�t�|d �}|d �� D ]�}| j d|� �d |� �d |� �d |� d�g|d� | jd|� d�|d�}|d dkrBt�|d �}|d D ]H}|� d |d � �}| j d|� �d|� d�d|� �d|� d�g|d� q�qBd S )N�juju controllersr zjuju controllers --format jsonr r r Zcontrollerszjuju models -c zjuju model-defaults -c zjuju controller-config -c z --format jsonZmodels�:�namezjuju status -m zjuju model-config -m )r Zcollect_cmd_output�json�loads�keys) r �userZjuju_controllersZjuju_ctrl_jsonZ controllerZjuju_modelsZjuju_status_jsonZmodelZ model_namer r r r f s@ � �� � ��zSunbeam._get_juju_cmd_detailsc C s* | � | j� d�� | �d� | �d� d S )Nr r zjuju controller-config)Zdo_file_private_subr Zdo_cmd_private_sub)r r r r �postproc� s � zSunbeam.postprocN)�__name__� __module__�__qualname__Z short_descZplugin_nameZprofilesZpackagesr r �str�boolZoption_listr r r# r r r r r s ���E"r )r r Zsos.report.pluginsr r r r r r r r �<module> s
Save File
Cancel