HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/sos/report/plugins/__pycache__/sunbeam.cpython-310.pyc
o

([Qh��@sBddlZddlZddlZddlmZmZmZGdd�dee�ZdS)�N)�Plugin�UbuntuPlugin�	PluginOptc@sXeZdZdZdZdZdZdZedde	dd	�ed
de
dd	�gZd
d�Zdd�Z
dd�ZdS)�SunbeamzSunbeam Openstack Controller�sunbeam)�cloud)�	openstackz/var/snap/openstack/common�sunbeam-user�ubuntuz&The user used for sunbeam installation)�default�val_type�desc�juju-allow-loginFzAllow sos to login to jujucCs\|�d�|�|j�d�|j�d�|j�d�|j�d�|j�d�dg�|�d�}zt�|�}WntyC|�d	|�d
��YdSw|�r*|jgd�d|d
�|j	d|d�}|ddkrwt
�|d�}|D]}|jd|d��d|d
�qg|j	d|d�}|ddkr�t
�|d�}|dD]}|jd|d��d|d�d�gd|d
�q�|j�d�}	|�|	�d�|	�d�|	�d�|	�d�|	�d�g�|�d �r�|�
d!|�d"��|j
d#|d�}
|j
d$|d%d&�}d'}|
ddks�|ddk�r z#|
d��d}
|d��d}d(|
v�s
d(|v�r|�|�d}Wn
t�yYnw|�s,|�d)�dSdSdS)*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.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 sunbeam)zsunbeam cluster listz"sunbeam cluster list --format yamlzsunbeam manifest listzsunbeam deployment listT)�snap_cmd�runasz#sunbeam manifest list --format yaml�r�statusr�outputzsunbeam manifest show �
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/*.yamlrzsu - z -c "sunbeam utils juju-login"zjuju whoamizjuju status�)r�timeoutF�
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)�add_service_status�
add_copy_spec�
common_dir�
get_option�pwd�getpwnam�KeyError�	_log_warn�add_cmd_output�collect_cmd_output�yaml�	safe_load�pw_dir�exec_cmd�
splitlines�_get_juju_cmd_details�
IndexError)�self�sunbeam_user�user_pwd�manifest_raw�	manifests�manifest�deployment_rawr�
deployment�sb_snap_homedir�juju_whoami�juju_status�	logged_in�j_whoami�j_status�r:�</usr/lib/python3/dist-packages/sos/report/plugins/sunbeam.py�setup"s�





�
	
��
�������

��
����Ez
Sunbeam.setupc		Cs|jd|dd�|jd|d�}|ddkr�t�|d�}|d	��D]_}|jd
|��d|��d|��d|�d
�g|dd�|jd
|�d
�|d�}|ddkrt�|d�}|dD]%}|�d|d��}|jd|��d|�d
�d|��d|�d
�g|dd�qYq"dSdS)N�juju controllersT)rrzjuju controllers --format jsonrrrr�controllerszjuju models -c zjuju model-defaults -c zjuju controller-config -c z --format json�models�:rzjuju status -m zjuju model-config -m )r#r$�json�loads�keys)	r,�user�juju_controllers�juju_ctrl_json�
controller�juju_models�juju_status_json�model�
model_namer:r:r;r*�sD�
��
�

����zSunbeam._get_juju_cmd_detailscCs*|�|j�d��|�d�|�d�dS)Nrr=zjuju controller-config)�do_file_private_subr�do_cmd_private_sub)r,r:r:r;�postproc�s

�
zSunbeam.postprocN)�__name__�
__module__�__qualname__�
short_desc�plugin_name�profiles�packagesrr�str�bool�option_listr<r*rNr:r:r:r;rs ���d"r)rArr%�sos.report.pluginsrrrrr:r:r:r;�<module>s