🔐 Sid Gifari File Manager Pro
v8.0.5 | 2026-08-07 13:38:19 | PHP 8.2.32
📂
/ (Root)
/
usr
/
lib
/
python3.6
/
site-packages
/
sos
/
report
/
plugins
/
__pycache__
📍 /usr/lib/python3.6/site-packages/sos/report/plugins/__pycache__
🔄 Refresh
✏️
Editing: juju.cpython-36.opt-1.pyc
Read Only
3 ܓ�i� � @ sB d dl Z d dlZd dlZd dlmZmZmZ G dd� dee�ZdS )� N)�Plugin�UbuntuPlugin� PluginOptc @ sx e Zd ZdZdZdZdZdZedde d d �edde d d �edde dd �edde dd �gZdZdd� Z dd� Zdd� ZdS )�Jujua3 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" zJuju orchestration toolZjuju�virt�sysmgmt� /var/log/jujuz juju-stateFz Include Juju state in the report)�defaultZval_typeZdescz juju-userZubuntuzJuju client user.�controllers� z[Collect Juju state for specified controllers. Uses a whitespace delimited list.�modelszVCollect Juju state for specified models. Uses a whitespace delimited list.c C sn x&| j d�D ]}| j|� | j|� qW dddddddd d d� }| jd�rtx(|j� D ]\}}| j| j|�|d � qTW | jd� | jddgdd� | j d�r�| jdddg� | j d� | j d� n | jd� | j d�s�d S | j d�}ytj|� W n( t k �r | jd|� d�� d S X | j d��r@| j d��r@| jd � d S | jd!|d"�}|d# d$k�r�t| j d�jd%��}|�r�|d&hk�r�|}nttj|d' �d j� �}ni }| j d��r�x�| j d�jd%�D ] } d(| � d)�} | j| |d"� �q�W n~x||D ]t}| jd*|� d)�|d"�}|d# d$k�r�tj|d' �d } x6| D ].} | d+ }d(|� d,|� d)�} | j| |d"� �q2W �q�W d S )-Nzjuju*Z depenginezdebug/pprof/goroutine?debug=1zdebug/pprof/heap?debug=1ZmetricsZpubsubZpresenceZ statepoolz&debug/pprof/juju/state/tracker?debug=1zunits?action=status) Zjuju_engine_reportZjuju_goroutinesZjuju_heap_profileZjuju_metricsZjuju_pubsub_reportZjuju_presence_reportZjuju_statepool_reportZjuju_statetracker_reportZjuju_unit_statusz/var/lib/juju/agents)Zsuggest_filenamez!/var/lib/juju/agents/*/agent.confz/var/log/juju*z/var/lib/juju*T)� recursiveZall_logsz /var/log/jujuz /var/lib/jujuz/var/lib/juju/**/.*z/var/lib/juju/kvmz/var/lib/juju/toolsz/var/log/juju/*.logz juju-statez juju-userzUser "z4" does not exist, will not collect Juju information.r r zWOptions: controllers, models are mutually exclusive. Will not collect Juju information.zjuju controllers --format=json)ZrunasZstatusr � r �outputzjuju status -m z --format=jsonzjuju models --all -c z short-name�:)Zget_service_namesZadd_journalZadd_service_statusZpath_exists�itemsZadd_cmd_output�_juju_agentZ add_copy_specZadd_dir_listingZ get_optionZadd_forbidden_path�pwd�getpwnam�KeyErrorZ _log_warnZcollect_cmd_output�set�split�json�loads�keysZexec_cmd)�selfZserviceZjuju_agent_cmds�cmdZ agent_cmdZ juju_userZcontrollers_jsonZdesired_controllersr Zmodel�commandZ controllerZmodels_jsonr Z short_name� r �/usr/lib/python3.6/juju.py�setupR s� z Juju.setupc C sD | j dkr2x&| jd�D ]}tjd|�r|| _ P qW d| j � d|� �S )Nr z/var/lib/juju/agentsz$machine-*|controller-*|application-*zjuju-introspect --agent=r )� agent_name�listdir�re�search)r r Zdir_namer r r r � s zJuju._juju_agentc C sZ d}ddddg}ddj |�� d�}d }| j|||� | jd dd� | j|� | jd � d S )Nz/var/lib/juju/agents/*ZsharedsecretZapipasswordZoldpasswordZ statepasswordz(^\s*(�|z )\s*:\s*)(.*)z\1*********z,/var/log/juju/unit-nova-compute-(.*).log(.*)zauth\(key=(.*)\)zauth(key=******)zjuju controllers)�joinZdo_path_regex_subZdo_file_private_subZdo_cmd_private_sub)r Zagents_pathZprotect_keysZ keys_regexZ sub_regexr r r �postproc� s z Juju.postprocN)r r )r )�__name__� __module__�__qualname__�__doc__Z short_descZplugin_nameZprofiles�filesr �bool�strZoption_listr! r r r'