Current File : //usr/lib/python3/dist-packages/sos/report/plugins/__pycache__/sunbeam.cpython-312.pyc
�

-�_g���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�|jgd�d	�
�|j	d�}|dd
k(r6tj|d�}|D]}|jd|d����|jd�}	tj|�}|r�|j�d�}|j|�d�|�d�|�d�g�|jd�r|jd|�d��|jd|��}|jd|d��}d }	|dd
k(s|dd
k(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.yaml)zsunbeam cluster listz"sunbeam cluster list --format yamlzsunbeam manifest listT)�snap_cmdz#sunbeam manifest list --format yaml�statusr�outputzsunbeam manifest show --id �
manifestidrzUser "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/*.logrzsu - z -c "sunbeam utils juju-login"zjuju whoami��runaszjuju 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�add_cmd_output�collect_cmd_output�yaml�	safe_load�
get_option�pwd�getpwnam�KeyError�	_log_warn�pw_dir�exec_cmd�
splitlines�_get_juju_cmd_details�
IndexError)�self�manifest_raw�	manifests�manifest�sunbeam_user�user_pwd�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"s������ 2�3��������z�*�����1�2�����B�C�����8�9�����;�<�5�

�	�	
���
��		�	��.�.�1�3����!�Q�&����|�H�'=�>�I�%�
L���#�#�1�(�<�2H�1I�J�L�
L����~�6��	��|�|�L�1�H��!)��� 1�1G�H�O����"�#�6�*�"�#�<�0�"�#�;�/� �
����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�<�@�$(�	��������C���	��N�N����'>�>�
?�
�
	��H"����s%� G �AH� H�H�	H�Hc
���|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�:�namezjuju status -m zjuju model-config -m )rr �json�loads�keys)	r-�user�juju_controllers�juju_ctrl_json�
controller�juju_models�juju_status_json�model�
model_names	         r9r+zSunbeam._get_juju_cmd_detailsqs}�����.�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 r9�postproczSunbeam.postproc�s@��� � �����B�C�	
�	
��� 2�3���� 8�9rLN)�__name__�
__module__�__qualname__�
short_desc�plugin_name�profiles�packagesrr�str�bool�option_listr:r+rP�rLr9rrsZ��/�J��K��H��H�-�J�	�.�(�S�?�	A��$�e�d�3�	5��K�M�^ 6�D:rLr)rAr$r!�sos.report.pluginsrrrrr[rLr9�<module>r]s&���
��>�>�I:�f�l�I:rL