관리-도구
편집 파일: sunbeam.cpython-39.opt-1.pyc
a ����-�_g�����������������������@���sB���d�dl�Z�d�dlZd�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��|�jg�d�d d ��|��d�}|d�d kr�t�|d��}|D�]}|��d|d������q�|��d�}zt� |�}W�n&�t y����|��d|��d���Y�d�S�0�|�r�|j��d�}|��|��d�|��d�|��d�g��|��d��r.|�� d|��d���|�j d|d�}|�j d|dd�}d } |d�d k�sl|d�d k�r�zF|d����d �} |d����d �}d!| v��s�d!|v��r�|��|��d } W�n�t�y����Y�n0�| �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.yaml)zsunbeam cluster listz"sunbeam cluster list --format yamlzsunbeam manifest listT)�snap_cmdz#sunbeam manifest list --format yaml�statusr����outputzsunbeam manifest show --id Z manifestidr���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����timeoutFZ 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_dir�add_cmd_output�collect_cmd_output�yamlZ safe_loadZ get_option�pwd�getpwnam�KeyErrorZ _log_warn�pw_dirZexec_cmd� splitlines�_get_juju_cmd_details� IndexError)�selfZmanifest_rawZ manifestsZmanifestZsunbeam_userZuser_pwdZsb_snap_homedirZjuju_whoamiZjuju_statusZ logged_inZj_whoamiZj_status��r����>/usr/lib/python3.9/site-packages/sos/report/plugins/sunbeam.py�setup"���st���� � ��� �� �� �z Sunbeam.setupc����������� ��� ���C���s��|�j�d|dd��|�jd|d�}|d�dk�rt�|d��}|d ����D�]�}|�j�d |���d|���d|���d|��d �g|dd��|�jd |��d �|d�}|d�dkrFt�|d��}|d�D�]J}|��d|d����}|�j�d|���d|��d �d|���d|��d �g|dd��q�qFd�S�)N�juju controllersT)r���r ���zjuju controllers --format jsonr ���r���r���r���Zcontrollerszjuju models -c zjuju model-defaults -c zjuju controller-config -c z --format jsonZmodels�:�namezjuju status -m zjuju model-config -m )r���r����json�loads�keys) r����userZjuju_controllersZjuju_ctrl_jsonZ controllerZjuju_modelsZjuju_status_jsonZmodelZ model_namer���r���r���r���q���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������O"r���)r#���r���r���Zsos.report.pluginsr���r���r���r���r���r���r���r����<module>���s���