+
    Û1jû   ã                   óJ   € ^ RI t ^ RIt^ RIt^ RIHtHtHt  ! R R]]4      tR# )é    N)ÚPluginÚUbuntuPluginÚ	PluginOptc            
       ó¦   a € ] tR t^t o RtRtRtRtRt]	! RR]
RR7      ]	! RR	]R
R7      ]	! RR]RR7      ]	! RR]RR7      .tRtR tR tR tRtV tR# )ÚJujuaó  The Juju plugin is aimed at collecting Juju-related logs,
configurations, and controller/model state(s).

Logs and agent configuration information (/var/log/juju and /var/lib/juju)
is collected by default since these are useful for troubleshooting.

The Juju state collection is disabled by default and can be enabled with
the 'juju-state' option. Collecting Juju state is safe in theory, but it
does act on the live controller(s)/model(s) and is therefore optional.

The default Juju state collection collects all controllers and models that
the 'juju-user' (default=ubuntu) has access to.

Specific controllers or models can be collected using the 'controllers'
and 'models' options.

Important: the string list is whitespace delimited, not colon delimited
(sos plugin standard). This is due to the underlying Juju CLI accepting
specific models in the format 'controller:model' and whitespaces are not
allowed in either controller and model names.

Example: models="controller_a:model_x controller_b:model_y"
zJuju orchestration toolÚjujuú
juju-stateFz Include Juju state in the report)ÚdefaultÚval_typeÚdescú	juju-userÚubuntuzJuju client user.ÚcontrollersÚ zOCollect Juju state for specified controllers. Uses a whitespace delimited list.ÚmodelszJCollect Juju state for specified models. Uses a whitespace delimited list.c                óˆ  € V P                  R 4       F%  pV P                  V4       V P                  V4       K'  	  RRRRRRRRR	R
RRRRRRRR/	pV P                  R4      '       d<   VP	                  4        F'  w  r4V P                  V P                  V4      VR7       K)  	  V P                  R4       V P                  RR.RR7       V P                  R4      '       d7   V P                  . R1O4       V P                  R4       V P                  R4       MV P                  R4       V P                  R4      '       g   R# V P                  R 4      p \        P                  ! V4       T P                  R#4      '       d+   T P                  R$4      '       d   T P                  R%4       R# T P                  R&TR'7      pTR(,          ^ 8X  dy   \!        T P                  R#4      P#                  R)4      4      pT'       d   TR*08w  d   TpM>\!        \$        P&                  ! TR+,          4      R#,          P)                  4       4      pM/ pT P                  R$4      '       dB   T P                  R$4      P#                  R)4       F  p	R,T	 R-2p
T P                  Y¥R'7       K  	  R# T F{  pT P+                  R.T R-2TR'7      pTR(,          ^ 8X  g   K*  \$        P&                  ! TR+,          4      R$,          pT F'  p	T	R/,          pR,T R0T R-2p
T P                  Y¥R'7       K)  	  K}  	  R#   \         d    T P                  R!T R"24        R# i ; i)2zjuju*Újuju_engine_reportÚ	depengineÚjuju_goroutineszdebug/pprof/goroutine?debug=1Újuju_heap_profilezdebug/pprof/heap?debug=1Újuju_metricsÚmetricsÚjuju_pubsub_reportÚpubsubÚjuju_presence_reportÚpresenceÚjuju_statepool_reportÚ	statepoolÚjuju_statetracker_reportz&debug/pprof/juju/state/tracker?debug=1Újuju_unit_statuszunits?action=statusú/var/lib/juju/agents)Úsuggest_filenamez!/var/lib/juju/agents/*/agent.confz/var/log/juju*z/var/lib/juju*T)Ú	recursiveÚall_logsz/var/lib/juju/kvmz/var/lib/juju/toolsz/var/log/juju/*.logr	   Nr   zUser "z4" does not exist, will not collect Juju information.r   r   zWOptions: controllers, models are mutually exclusive. Will not collect Juju information.zjuju controllers --format=json)ÚrunasÚstatusÚ r   Úoutputzjuju status -m z --format=jsonzjuju models --all -c z
short-nameÚ:)ú/var/log/jujuz/var/lib/jujuz/var/lib/juju/**/.*)Úget_service_namesÚadd_journalÚadd_service_statusÚpath_existsÚitemsÚadd_cmd_outputÚ_juju_agentÚadd_copy_specÚadd_dir_listingÚ
get_optionÚadd_forbidden_pathÚpwdÚgetpwnamÚKeyErrorÚ	_log_warnÚcollect_cmd_outputÚsetÚsplitÚjsonÚloadsÚkeysÚexec_cmd)ÚselfÚserviceÚjuju_agent_cmdsÚcmdÚ	agent_cmdÚ	juju_userÚcontrollers_jsonÚdesired_controllersr   ÚmodelÚcommandÚ
controllerÚmodels_jsonr   Ú
short_names   &              Ú9/usr/lib/python3/dist-packages/sos/report/plugins/juju.pyÚsetupÚ
Juju.setupR   s`  € ð ×-Ñ-¨gÖ6ˆGØ×Ñ˜WÔ%Ø×#Ñ# GÖ,ñ 7ð
 ! +ØÐ>ØÐ!;Ø˜IØ  (Ø" JØ# [Ø&ð *3àÐ 5ð
ˆð ×ÑÐ2×3Ò3Ø"1×"7Ñ"7Ö"9‘�Ø×#Ñ#Ø×$Ñ$ YÓ/Ø%(ð $ö ñ #:ð 	×ÑÐ>Ô?ð 	×ÑØØð
ð ð 	ô 	ð
 �?‰?˜:×&Ò&ð ×Ñò  ô ð
 ×#Ñ#Ð$7Ô8Ø×#Ñ#Ð$9Õ:ð ×ÑÐ4Ô5ð �‰˜|×,Ò,Ùà—O‘O KÓ0ˆ	ð	Ü�LŠL˜Ô#ð �?‰?˜=×)Ò)¨d¯o©o¸h×.GÒ.GØ�N‰Nð5ôñ à×2Ñ2Ø,°Ið 3ó 
Ðð ˜HÕ%¨Ô*Ü"%Ø—‘ Ó.×4Ñ4°SÓ9ó#Ð÷
 #Ð':¸r¸dÔ'BØ1‘ä!Ü—J’JÐ/°Õ9Ó:Ø%õç‘d“fó‘ð ˆKð �?‰?˜8×$Ò$ØŸ™¨Ó2×8Ñ8¸Ö=�Ø+¨E¨7°.ÐA�Ø×#Ñ# GÐ#Ö=ó >ó *�
Ø"Ÿm™mØ+¨J¨<°~ÐFØ#ð ,ó �ð ˜xÕ(¨AÖ-Ü!ŸZšZ¨°HÕ(=Ó>¸xÕH�FÛ!'˜Ø%*¨<Õ%8˜
à-¨j¨\¸¸:¸,ð G,ð -ð  ð ×+Ñ+¨GÐ+ÖEó "(ó *øôW ô 	Ø�N‰NØ˜˜ð $5ð 5ôò ð	ús   ÅL Ì MÍ Mc                óÂ   € V P                   R 8X  d>   V P                  R4       F(  p\        P                  ! RV4      '       g   K"  W n          M	  RV P                    RV 2# )r   r!   z$machine-*|controller-*|application-*zjuju-introspect --agent=r'   )Ú
agent_nameÚlistdirÚreÚsearch)rA   rJ   Údir_names   && rN   r1   ÚJuju._juju_agentÇ   sW   € Ø�?‰?˜bÔ Ø ŸL™LÐ)?Ö@�Ü—9’9ÐCÀX×NÔNØ&.”OÙñ Að
 *¨$¯/©/Ð):¸!¸G¸9ÐEÐEó    c                óÎ   € R p. R
OpRRP                  V4       R2pRpV P                  WV4       V P                  RRR4       V P                  V4       V P                  R4       R	# )z/var/lib/juju/agents/*z(^\s*(Ú|z)\s*:\s*)(.*)z\1*********z,/var/log/juju/unit-nova-compute-(.*).log(.*)zauth\(key=(.*)\)zauth(key=******)zjuju controllersN)ÚsharedsecretÚapipasswordÚoldpasswordÚstatepassword)ÚjoinÚdo_path_regex_subÚdo_file_private_subÚdo_cmd_private_sub)rA   Úagents_pathÚprotect_keysÚ
keys_regexÚ	sub_regexs   &    rN   ÚpostprocÚJuju.postprocÐ   sv   € Ø.ˆò
ˆð ˜sŸx™x¨Ó5Ð6°mÐDˆ
Ø"ˆ	Ø×Ñ˜{¸	ÔBð 	×ÑÐMØ2Ð4Gô	Ið 	× Ñ  Ô-Ø×ÑÐ 2Ö3rX   )rR   N)ÚvirtÚsysmgmt)r*   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú
short_descÚplugin_nameÚprofilesÚfilesr   ÚboolÚstrÚoption_listrR   rO   r1   rg   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @rN   r   r      s¤   ø‡ € ñð0 +€Jà€KØ#€Hð €Eñ 	ØØØØ3ô		
ñ 	ØØØØ$ô		
ñ 	ØØØð/ô		
ñ 	ØØØð$ô		
ð)€Kð: €JòsFòjF÷4ð 4rX   r   )r6   r=   rT   Úsos.report.pluginsr   r   r   r   © rX   rN   Ú<module>r|      s&   ðó Û Û 	ß >Ñ >ôS4ˆ6�<ö S4rX   