
    ~ g                     H    S SK r S SKrS SKrS SKJrJrJr   " S S\\5      rg)    N)PluginUbuntuPlugin	PluginOptc                   ^    \ rS rSrSrSrSrSrSr\	" SS\
S	S
9\	" SS\SS
9/rS rS rS rSrg)Sunbeam   z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                 L   U R                  S5        U R                  U R                   S3U R                   S3U R                   S3U R                   S3U R                   S3S/5        U R                  / SQS	S
9  U R	                  S5      nUS   S:X  a9  [
        R                  " US   5      nU H  nU R                  SUS    35        M     U R                  S5      n [        R                  " U5      nU(       a  UR                   S3nU R                  U S3U S3U S3/5        U R                  S5      (       a  U R                  SU S35        U R                  SUS9nU R                  SUSS9nS n	US   S:X  d	  US   S:X  aL   US   R                  5       S   n
US   R                  5       S   nS!U
;   d  S!U;   a  U R                  U5        S	n	U	(       d  U R                  S"5        g g g ! [         a    U R                  SU S35         g f = f! [          a     NLf = f)#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setupSunbeam.setup"   s    23z*12BC89;<5
 	 	 
 	 	 	 ..13 !Q&|H'=>I%##1(<2H1IJL & ~6	||L1H !) 11GHO"#6*"#<0"#;/   12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%   !G1 AH 1HH
H#"H#c           
         U R                  SUSS9  U R                  SUS9nUS   S:X  a  [        R                  " US   5      nUS	   R	                  5        H  nU R                  S
U 3SU 3SU 3SU S3/USS9  U R                  S
U S3US9nUS   S:X  d  MD  [        R                  " US   5      nUS    H0  nU SUS    3nU R                  SU 3SU S3SU 3SU S3/USS9  M2     M     g g )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	            r:   r,   Sunbeam._get_juju_cmd_detailsq   st   .dTJ22,D 3 : H%*!ZZ(8(BCN,];@@B
##%j\2-j\:0=0NK	%
  $ . #55%j\@ 6   x(A-'+zz+h2G'H$!1(!;(2|1U6]O%D
++-j\:-j\H3J<@3J<~N	-
 "& , 6	 "<! C +    c                     U R                  U R                   S35        U R                  S5        U R                  S5        g )Nr   r>   zjuju controller-config)do_file_private_subr   do_cmd_private_sub)r.   s    r:   postprocSunbeam.postproc   s@      BC	
 	 23 89rO    N)__name__
__module____qualname____firstlineno__
short_descplugin_nameprofilespackagesr   r   strbooloption_listr;   r,   rS   __static_attributes__rU   rO   r:   r   r      sZ    /JKHH-J 	.(S?	A$ed3	5KM^ 6D:rO   r   )rC   r%   r"   sos.report.pluginsr   r   r   r   rU   rO   r:   <module>rc      s&     
  > >I:fl I:rO   