
    ([Qh                     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                  d      }	 t	        j
                  |      }|r| j                  g dd|       | j                  d|      }|d   dk(  r9t        j                  |d         }|D ]  }| j                  d|d    d|        | j                  d|      }|d   dk(  rEt        j                  |d         }|d   D ]%  }| j                  d|d    d|d    dgd|       ' |j                   d}	| j                  |	 d|	 d|	 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.yamlr   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 sunbeam)zsunbeam cluster listz"sunbeam cluster list --format yamlzsunbeam manifest listzsunbeam deployment listT)snap_cmdrunasz#sunbeam manifest list --format yamlr   statusr   outputzsunbeam manifest show 
manifestidz%sunbeam deployment list --format yamldeploymentszsunbeam deployment show namez --format yamlz/snap/openstack/commonz/*.logz/etc/**/*.logz/etc/**/terraform.tfvars.jsonz/logs/*.logz/reports/*.yamlr   zsu - z -c "sunbeam utils juju-login"zjuju whoamiz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
get_optionpwdgetpwnamKeyError	_log_warnadd_cmd_outputcollect_cmd_outputyaml	safe_loadpw_direxec_cmd
splitlines_get_juju_cmd_details
IndexError)selfsunbeam_useruser_pwdmanifest_raw	manifestsmanifestdeployment_rawr   
deployment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"   sb    23z*12BC89;<5
 	 ~6	||L1H  !
 L   2  225" 3 L
 H%* NN<+AB	 ) H''0,1G0HI!%\ (  "447" 5 N
 h'1,"nn^H-EF"-m"< :J''2:f3E2FG2:f3E2F G( () !%L	 ( :: "* 11GHO"#6*"#=1"##@A"#;/"#?3   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<@$(	  K   	NN '> >? 	P "  s%   <I 2AI3 I0/I03	I?>I?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:r   z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-   zSunbeam._get_juju_cmd_details   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    r=   postproczSunbeam.postproc   s@      BC	
 	 23 89rO   N)__name__
__module____qualname__
short_descplugin_nameprofilespackagesr    r   strbooloption_listr>   r-   rS    rO   r=   r   r      sZ    /JKHH-J 	.(S?	A$ed3	5KbH 6D:rO   r   )rD   r"   r(   sos.report.pluginsr   r   r   r   r^   rO   r=   <module>r`      s&     
  > >^:fl ^:rO   