Current File : //usr/lib/python3.6/site-packages/sos/report/plugins/__pycache__/sunbeam.cpython-36.pyc
3

\��h��@sBddlZddlZddlZddlmZmZmZGdd�dee�ZdS)�N)�Plugin�UbuntuPlugin�	PluginOptc@sXeZdZdZdZdZdZdZedde	dd	�ed
de
dd	�gZd
d�Zdd�Z
dd�ZdS)�SunbeamzSunbeam Openstack ControllerZsunbeam�cloud�	openstackz/var/snap/openstack/commonzsunbeam-userZubuntuz&The user used for sunbeam installation)�defaultZval_typeZdesczjuju-allow-loginFzAllow sos to login to jujucCsj|jd�|j|j�d�|j�d�|j�d�|j�d�|j�d�dg�|jd�}ytj|�}Wn&tk
r�|jd	|�d
��dSX|�rf|jddd
dgd|d�|j	d|d�}|ddkr�t
j|d�}x&|D]}|jd|d��d|d�q�W|j	d|d�}|ddk�r^t
j|d�}x<|dD]0}|jd|d��d|d�d�gd|d��q*W|j�d�}	|j|	�d�|	�d�|	�d �|	�d!�|	�d"�g�|jd#��r�|j
d$|�d%��|j
d&|d�}
|j
d'|d(d)�}d*}|
ddk�s�|ddk�rVyF|
dj�d}
|dj�d}d+|
k�s.d+|k�r<|j|�d}Wntk
�rTYnX|�sf|jd,�dS)-Nzsnap.openstack.*z
/hooks.logz/state/daemon.yamlz#/state/truststore/sunbeam.maas.yamlz/state/database/info.yamlz/state/database/cluster.yamlz'/var/snap/openstack/current/config.yamlzsunbeam-userzUser "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 sunbeamzsunbeam cluster listz"sunbeam cluster list --format yamlzsunbeam manifest listzsunbeam deployment listT)�snap_cmd�runasz#sunbeam manifest list --format yaml)r
�statusr�outputzsunbeam manifest show Z
manifestidz%sunbeam deployment list --format yaml�deploymentszsunbeam deployment show �namez --format yamlz/snap/openstack/commonz/*.logz
/etc/**/*.logz/etc/**/terraform.tfvars.jsonz/logs/*.logz/reports/*.yamlzjuju-allow-loginzsu - z -c "sunbeam utils juju-login"zjuju whoamizjuju status�)r
ZtimeoutFZ
Controllerz�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_dirZ
get_option�pwd�getpwnam�KeyErrorZ	_log_warn�add_cmd_output�collect_cmd_output�yamlZ	safe_load�pw_dirZexec_cmd�
splitlines�_get_juju_cmd_details�
IndexError)�selfZsunbeam_userZuser_pwdZmanifest_rawZ	manifestsZmanifestZdeployment_rawr
Z
deploymentZsb_snap_homedirZjuju_whoamiZjuju_statusZ	logged_inZj_whoamiZj_status�r�/usr/lib/python3.6/sunbeam.py�setup"s�









z
Sunbeam.setupc		Cs|jd|dd�|jd|d�}|ddk�r
tj|d�}x�|d	j�D]�}|jd
|��d|��d|��d|�d
�g|dd�|jd
|�d
�|d�}|ddkrHtj|d�}xV|dD]J}|�d|d��}|jd|��d|�d
�d|��d|�d
�g|dd�q�WqHWdS)Nzjuju controllersT)r
r	zjuju controllers --format json)r
rrrZcontrollerszjuju models -c zjuju model-defaults -c zjuju controller-config -c z --format jsonZmodels�:rzjuju status -m zjuju model-config -m )rr�json�loads�keys)	r�userZjuju_controllersZjuju_ctrl_jsonZ
controllerZjuju_modelsZjuju_status_jsonZmodelZ
model_namerrrr�s2



zSunbeam._get_juju_cmd_detailscCs*|j|j�d��|jd�|jd�dS)Nz#/state/truststore/sunbeam.maas.yamlzjuju controllerszjuju controller-config)Zdo_file_private_subrZdo_cmd_private_sub)rrrr�postproc�s
zSunbeam.postprocN)r)r)�__name__�
__module__�__qualname__Z
short_descZplugin_nameZprofilesZpackagesrr�str�boolZoption_listrrr$rrrrrs
d"r)r rrZsos.report.pluginsrrrrrrrr�<module>s