
    -_g                     H    d dl Z d dlZd dlZd dlmZmZmZ  G d dee      Zy)    N)PluginUbuntuPlugin	PluginOptc                   b    e Zd ZdZdZdZdZdZ edde	d	       ed
de
d	      gZd Zd Zd Zy)SunbeamzSunbeam Openstack Controllersunbeam)cloud)	openstackz/var/snap/openstack/commonsunbeam-userubuntuz&The user used for sunbeam installation)defaultval_typedescjuju-allow-loginFzAllow sos to login to jujuc                 &   | j                  d       | j                  | j                   d| j                   d| j                   d| j                   d| j                   ddg       | j                  g dd	
       | j	                  d      }|d   dk(  r6t        j                  |d         }|D ]  }| j                  d|d            | j                  d      }	 t        j                  |      }|r|j                   d}| j                  | d| d| dg       | j                  d      r| j                  d| d       | j                  d|      }| j                  d|d      }d }	|d   dk(  s|d   dk(  rH	 |d   j                         d   }
|d   j                         d   }d!|
v sd!|v r| j                  |       d	}	|	s| j                  d"       y y y # t        $ r | j                  d| d       Y y w xY w# t         $ r Y Ew xY w)#Nzsnap.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)zsunbeam cluster listz"sunbeam cluster list --format yamlzsunbeam manifest listT)snap_cmdz#sunbeam manifest list --format yamlstatusr   outputzsunbeam manifest show --id 
manifestidr   zUser "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   zsu - z -c "sunbeam utils juju-login"zjuju whoamirunaszjuju status   )r   timeoutF
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)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(<2H1IJLL ~6	||L1H !) 11GHO"#6*"#<0"#;/   12L>)GHJ --\-JK--\02 ( 4KI8$)[-Ba-G
*84??A!DH*84??A!DH#x/<83K22<@$(	  C   	NN '> >? 	H "  s%    G  AH  H H	HHc           
         | j                  d|d       | j                  d|      }|d   dk(  rt        j                  |d         }|d	   j	                         D ]  }| j                  d
| d| d| d| dg|d       | j                  d
| d|      }|d   dk(  sHt        j                  |d         }|d   D ]2  }| d|d    }| j                  d| d| dd| d| dg|d       4  y y )Njuju controllersT)r   r   zjuju controllers --format jsonr   r   r   r   controllerszjuju models -c zjuju model-defaults -c zjuju controller-config -c z --format jsonmodels:namezjuju status -m zjuju model-config -m )r   r    jsonloadskeys)	r-   userjuju_controllersjuju_ctrl_json
controllerjuju_modelsjuju_status_jsonmodel
model_names	            r9   r+   zSunbeam._get_juju_cmd_detailsq   s}   .dTJ22,D 3 : H%*!ZZ(8(BCN,];@@B 6
##%j\2-j\:0=0NK	%
  $ . #55%j\@ 6   x(A-'+zz+h2G'H$!1(!; 	6(2|1U6]O%D
++-j\:-j\H3J<@3J<~N	-
 "& , 6		6!6 +    c                     | j                  | j                   d       | j                  d       | j                  d       y )Nr   r<   zjuju controller-config)do_file_private_subr   do_cmd_private_sub)r-   s    r9   postproczSunbeam.postproc   s@      BC	
 	 23 89rL   N)__name__
__module____qualname__
short_descplugin_nameprofilespackagesr   r   strbooloption_listr:   r+   rP    rL   r9   r   r      sZ    /JKHH-J 	.(S?	A$ed3	5KM^ 6D:rL   r   )rA   r$   r!   sos.report.pluginsr   r   r   r   r[   rL   r9   <module>r]      s&     
  > >I:fl I:rL   