HEX
Server: nginx/1.24.0
System: Linux webserver 6.8.0-87-generic #88-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 09:28:41 UTC 2025 x86_64
User: wpuser (1002)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/sos/report/plugins/__pycache__/sunbeam.cpython-312.pyc
�

([Qh���H�ddlZddlZddlZddlmZmZmZGd�dee�Zy)�N)�Plugin�UbuntuPlugin�	PluginOptc�b�eZdZdZdZdZdZdZedde	d�	�ed
de
d�	�gZd
�Zd�Z
d�Zy)�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 jujuc��|jd�|j|j�d�|j�d�|j�d�|j�d�|j�d�dg�|jd�}	t	j
|�}|�r�|jgd�d|�
�|jd|��}|ddk(r9tj|d�}|D]}|jd|d��d|�
��|jd|��}|ddk(rEtj|d�}|dD]%}|jd|d��d|d�d�gd|�
��'|j�d�}	|j|	�d�|	�d�|	�d�|	�d�|	�d�g�|jd �r|jd!|�d"��|jd#|��}
|jd$|d%�&�}d'}|
ddk(s|ddk(rH	|
dj�d}
|dj�d}d(|
vsd(|vr|j|�d}|s|jd)�yyy#t$r|jd	|�d
��YywxYw#t $rY�EwxYw)*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.yamlrzUser "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_statuss               �</usr/lib/python3/dist-packages/sos/report/plugins/sunbeam.py�setupz
Sunbeam.setup"sb����� 2�3��������z�*�����1�2�����B�C�����8�9�����;�<�5�

�	����~�6��	��|�|�L�1�H�����!�
�L�
 �
2� �2�2�5�"�3��L�
�H�%��*� �N�N�<��+A�B�	� )��H��'�'�0��,�1G�0H�I�!%�\�(���"�4�4�7�"�5��N�
�h�'�1�,�"�n�n�^�H�-E�F��"-�m�"<�:�J��'�'�2�:�f�3E�2F�G�2�:�f�3E�2F�G(�(�)�!%�L�	(�:�:�"*��� 1�1G�H�O����"�#�6�*�"�#�=�1�"�#�#@�A�"�#�;�/�"�#�?�3� �
����1�2��
�
��L�>�)G�H�J��-�-�
�\�-�J�K��-�-�
�\�02�(�4�K��I��8�$��)�[��-B�a�-G�
�*�8�4�?�?�A�!�D�H�*�8�4�?�?�A�!�D�H�#�x�/�<�8�3K��2�2�<�@�$(�	��������K���	��N�N����'>�>�
?�
�
	��P"����s%�<I�2AI3�I0�/I0�3	I?�>I?c
���|jd|d��|jd|��}|ddk(r�tj|d�}|d	j	�D]�}|jd
|��d|��d|��d|�d
�g|d��|jd
|�d
�|��}|ddk(s�Htj|d�}|dD]2}|�d|d��}|jd|��d|�d
�d|��d|�d
�g|d���4��yy)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_names	         r=r-zSunbeam._get_juju_cmd_details�s}�����.�d�T��J��2�2�,�D�3�:���H�%��*�!�Z�Z�(8��(B�C�N�,�]�;�@�@�B�
6�
��#�#�%�j�\�2�-�j�\�:�0���=�0���N�K�	%�
��$�.�#�5�5�%�j�\��@��6� ���x�(�A�-�'+�z�z�+�h�2G�'H�$�!1�(�!;�	6��(2�|�1�U�6�]�O�%D�
��+�+�-�j�\�:�-�j�\��H�3�J�<�@�3�J�<�~�N�	-�
"&��,�6�		6�!
6�+�c��|j|j�d��|jd�|jd�y)Nrr@zjuju controller-config)�do_file_private_subr �do_cmd_private_sub)r/s r=�postproczSunbeam.postproc�s@��� � �����B�C�	
�	
��� 2�3���� 8�9rON)�__name__�
__module__�__qualname__�
short_desc�plugin_name�profiles�packagesr r�str�bool�option_listr>r-rS�rOr=rrsZ��/�J��K��H��H�-�J�	�.�(�S�?�	A��$�e�d�3�	5��K�b�H 6�D:rOr)rDr"r(�sos.report.pluginsrrrrr^rOr=�<module>r`s&���
��>�>�^:�f�l�^:rO