HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/sos/report/plugins/__pycache__/pulpcore.cpython-310.pyc
o

([Qh5�@sBddlmZddlmZddlmZmZmZGdd�dee�ZdS)�)�match)�quote)�Plugin�IndependentPlugin�	PluginOptc@sreZdZdZdZdZdZedddd�gZd	Z	d
Z
dZdZdZ
d
ZdZde
iZdd�Zdd�Zddd�Zdd�ZdS)�PulpCorezPulp-3 aka pulpcore�pulpcore)zpulpcore-manager)�/etc/pulp/settings.py�	task-days�zdays of task history)�default�desc�	localhosti8�pulp�z/var/lib/pulp/assetsz/var/lib/pulp/media/upload�
PGPASSWORDcCs�d}ddd�}z�tdddd���}|���d	d
��dd��d
d���D]{}|r,|ddkr-q"|�d�r5d}q"d}|rEt|d|�rE||�|_|rSt|d|�rS||�|_|rat|d|�ra||�|_|rot|d|�ro||�|_	|r}t|d|�r}||�|_
|r�d
|vr�d}|�d�r�||dd�|_|�d�r�||dd�|_q"Wd�n1s�wYWn	t
y�Ynwd|j
i|_dS) z Parse pulp settings F�:cSsP|�|�d���d�}|�d�r|�d�s |�d�r&|�d�r&|dd�}|S)N��,�"�'���)�split�lstrip�rstrip�
startswith�endswith)�line�sep�val�r �=/usr/lib/python3/dist-packages/sos/report/plugins/pulpcore.py�separate_value(s��z6PulpCore.parse_settings_config.<locals>.separate_valuer	�rzUTF-8)�encodingrz,
�{z{
�}z
}r�#�	DATABASESTz\s*['|\"]%s['|\"]\s*:\s*\S+�HOST�PORT�NAME�USER�PASSWORDzSTATIC_ROOT = �=)rzCHUNKED_UPLOAD_DIR = Nr)r)�open�read�replace�
splitlinesrr�dbhost�dbport�dbname�dbuser�dbpasswd�
staticroot�	uploaddir�IOError�env)�self�databases_scoper"�filer�patternr r r!�parse_settings_config$sL
	�







�����zPulpCore.parse_settings_configc	Cs|��|�ddg�|�d�|jddd�dddd	�}|jd
|d�|j|jfD]}|�|�q*|�d�}d
D]9}d|�d�}|j|�	|�|j
d�}|ddkrV|dnd}d|�d|�d|�d�}|�	|�}|j||j
|d�q9|�	d�}|j|d|j
d�dS)Nr	z/etc/pki/pulp/*z/etc/pki/pulp/**/*.keyz.curl -ks https://localhost/pulp/api/v3/status/�pulp_status)�suggest_filenamezen_US.UTF-8zpulpcore.app.settings)�LC_ALL�
PULP_SETTINGS�DJANGO_SETTINGS_MODULE�
dynaconf list)r;r
)�	core_task�core_taskgroup�core_groupprogressreport�core_progressreportz]COPY (SELECT STRING_AGG(column_name, ', ') FROM information_schema.columns WHERE table_name='zl'AND table_schema = 'public' AND column_name NOT IN ('args', 'kwargs', 'enc_args', 'enc_kwargs')) TO STDOUT;�statusr�output�*zselect z from z, where pulp_last_updated> NOW() - interval 'z! days' order by pulp_last_updated)r;rBa[SELECT table_name, pg_size_pretty(total_bytes) AS total, pg_size_pretty(index_bytes) AS INDEX , pg_size_pretty(toast_bytes) AS toast, pg_size_pretty(table_bytes) AS TABLE FROM ( SELECT *, total_bytes-index_bytes-COALESCE(toast_bytes,0) AS table_bytes FROM (SELECT c.oid,nspname AS table_schema, relname AS TABLE_NAME, c.reltuples AS row_estimate, pg_total_relation_size(c.oid) AS total_bytes, pg_indexes_size(c.oid) AS index_bytes, pg_total_relation_size(reltoastrelid) AS toast_bytes FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE relkind = 'r') a) a order by total_bytes DESC�pulpcore_db_tables_sizes)rBr;)r@�
add_copy_spec�add_forbidden_path�add_cmd_outputr8r9�add_dir_listing�
get_option�exec_cmd�build_query_cmdr;)	r<�dynaconf_env�_dir�	task_days�table�_query�col_out�columns�_cmdr r r!�setupYsD�
��
��
�
�zPulpCore.setupFcCs2|rd|�d�}d}||j|j|j|jt|�fS)aI
        Builds the command needed to invoke the pgsql query as the postgres
        user.
        The query requires significant quoting work to satisfy both the
        shell and postgres parsing requirements. Note that this will generate
        a large amount of quoting in sos logs referencing the command being run
        zCOPY (z6) TO STDOUT WITH (FORMAT 'csv', DELIMITER ',', HEADER)z0psql --no-password -h %s -p %s -U %s -d %s -c %s)r3r4r6r5r)r<�query�csv�_dbcmdr r r!rU�s
�zPulpCore.build_query_cmdcCs(d}d}|�d||�|�d||�dS)Nz_((?:SECRET_KEY|AUTH_LDAP_BIND_PASSWORD)(?:\<.+\>)?(\s*=)?|(password|PASSWORD)(\"|'|:)+)\s*(\S*)z\1 ********r	rF)�do_path_regex_sub�do_cmd_output_sub)r<�key_pass_re�replr r r!�postproc�szPulpCore.postprocN)F)�__name__�
__module__�__qualname__�
short_desc�plugin_name�commands�filesr�option_listr3r4r5r6r7r8r9r;r@r^rUrfr r r r!rs&�5
6rN)	�rer�shlexr�sos.report.pluginsrrrrr r r r!�<module>s