3
ܓi @ sB d dl Z d dlZd dlZd dlmZmZmZ G dd deeZdS ) N)PluginUbuntuPlugin PluginOptc @ sX e Zd ZdZdZdZdZdZedde dd ed
de
dd gZd
d Zdd Z
dd ZdS )SunbeamzSunbeam Openstack ControllerZsunbeamcloud openstackz/var/snap/openstack/commonzsunbeam-userZubuntuz&The user used for sunbeam installation)defaultZval_typeZdesczjuju-allow-loginFzAllow sos to login to jujuc C sj | j d | j| j d| j d| j d| j d| j ddg | jd}ytj|}W n& tk
r | jd | d
d S X |rf| jddd
dgd|d | j d|d}|d dkrt
j|d }x&|D ]}| jd|d d|d qW | j d|d}|d dkr^t
j|d }x<|d D ]0}| jd|d d|d dgd|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*}|
d dks|d dkrVyF|
d j d }
|d j d }d+|
ks.d+|kr<| j| d}W n tk
rT Y nX |sf| jd, d S )-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.yamlzsunbeam-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_cmdrunasz#sunbeam manifest list --format yaml)r
statusr outputzsunbeam manifest show Z
manifestidz%sunbeam deployment list --format yamldeploymentszsunbeam 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
Controllerzjuju 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_optionpwdgetpwnamKeyErrorZ _log_warnadd_cmd_outputcollect_cmd_outputyamlZ safe_loadpw_dirZexec_cmd
splitlines_get_juju_cmd_details
IndexError)selfZsunbeam_userZuser_pwdZmanifest_rawZ manifestsZmanifestZdeployment_rawr
Z
deploymentZsb_snap_homedirZjuju_whoamiZjuju_statusZ logged_inZj_whoamiZj_status r /usr/lib/python3.6/sunbeam.pysetup" s
z
Sunbeam.setupc C s | j d|dd | jd|d}|d dkr
tj|d }x|d j D ]}| j d
| d| d| d| d
g|dd | jd
| d
|d}|d dkrHtj|d }xV|d D ]J}| d|d }| j d| d| d
d| d| d
g|dd qW qHW d S )Nzjuju controllersT)r
r zjuju controllers --format json)r
r r r Zcontrollerszjuju models -c zjuju model-defaults -c zjuju controller-config -c z --format jsonZmodels:r zjuju status -m zjuju model-config -m )r r jsonloadskeys) r userZjuju_controllersZjuju_ctrl_jsonZ
controllerZjuju_modelsZjuju_status_jsonZmodelZ
model_namer r r r s2
zSunbeam._get_juju_cmd_detailsc C s* | j | j d | jd | jd d S )Nz#/state/truststore/sunbeam.maas.yamlzjuju controllerszjuju controller-config)Zdo_file_private_subr Zdo_cmd_private_sub)r r r r postproc s
zSunbeam.postprocN)r )r )__name__
__module____qualname__Z
short_descZplugin_nameZprofilesZpackagesr r strboolZoption_listr r r$ r r r r r s
d"r )r r r Zsos.report.pluginsr r r r r r r r