+
    Û1j-  ã                   óR   € ^ RI t ^ RIHt ^ RIHt ^ RIHtHtHt  ! R R]]4      t	R# )é    N)Úmatch)Úquote)ÚPluginÚIndependentPluginÚ	PluginOptc                   ó–   a € ] tR t^t o RtRtRtRtRt]	! R^RR7      .t
RtRtRtR	tR
tRtRtR]/tRtR tR tR tRR ltR tRtV tR# )ÚPulpCorezPulp-3 aka pulpcoreÚpulpcoreú/etc/pulp/settings.pyú	task-dayszdays of task history)ÚdefaultÚdescÚ	localhosti8  ÚpulpÚ z/var/lib/pulp/assetsz/var/lib/pulp/tmpÚ
PGPASSWORDc                óX  € RpRR lp \        V P                  RRR7      ;_uu_ 4       pVP                  4       P                  RR4      P                  RR	4      P                  R
R4      P	                  4        EF  pV'       d   V^ ,          R8X  d   K  VP                  R4      '       d   RpK7  RpV'       d'   \        VR,          V4      '       d   V! V4      V n        V'       d'   \        VR,          V4      '       d   V! V4      V n        V'       d'   \        VR,          V4      '       d   V! V4      V n	        V'       d'   \        VR,          V4      '       d   V! V4      V n
        V'       d'   \        VR,          V4      '       d   V! V4      V n        V'       d
   R
V9   d   RpVP                  R4      '       d   V! VRR7      V n        VP                  R4      '       g   EKp  V! VRR7      V n        EK‚  	  RRR4       R#   + '       g   i     R# ; i  \         d     R# i ; i)zParse pulp settings Fc                 ó2  € V P                  V4      ^,          P                  4       P                  R4      pVP                  R4      '       d   VP	                  R4      '       g/   VP                  R4      '       d   VP	                  R4      '       d   V^R pV# )é   Ú,Ú"Ú'éÿÿÿÿ)ÚsplitÚlstripÚrstripÚ
startswithÚendswith)ÚlineÚsepÚvals   && Ú=/usr/lib/python3/dist-packages/sos/report/plugins/pulpcore.pyÚseparate_valueÚ6PulpCore.parse_settings_config.<locals>.separate_value+   st   € ð —*‘*˜S“/ !Õ$×+Ñ+Ó-×4Ñ4°SÓ9ˆCØ—‘˜s×#Ò#¨¯©°S×(9Ò(9Ø—‘˜t×$Ò$¨¯©°d×);Ò);Ø˜!˜B�i�ØˆJó    ÚrzUTF-8)Úencodingr   z,
Ú{z{
Ú}z
}Ú#Ú	DATABASESTz\s*['|\"]%s['|\"]\s*:\s*\S+ÚHOSTÚPORTÚNAMEÚUSERÚPASSWORDzSTATIC_ROOT = Ú=)r    zCHUNKED_UPLOAD_DIR = N)Ú:)ÚopenÚsettings_fileÚreadÚreplaceÚ
splitlinesr   r   ÚdbhostÚdbportÚdbnameÚdbuserÚdbpasswdÚ
staticrootÚ	uploaddirÚIOError)ÚselfÚdatabases_scoper#   Úfiler   Úpatterns   &     r"   Úparse_settings_configÚPulpCore.parse_settings_config'   s£  € àˆô	ð"	Ü�d×(Ñ(¨#¸×@Õ@ÀDà ŸI™I›Kß ™  eÓ,¯W©W°S¸%Ó-@ß ™  eÓ,¯Z©Z«\ó:�D÷   4¨¥7¨c¤>Ù Ø—‘ {×3Ò3Ø*.˜Ù ð =�Gß&¬5°¸6Õ1AÀ4×+HÒ+HÙ&4°TÓ&:˜œß&¬5°¸6Õ1AÀ4×+HÒ+HÙ&4°TÓ&:˜œß&¬5°¸6Õ1AÀ4×+HÒ+HÙ&4°TÓ&:˜œß&¬5°¸6Õ1AÀ4×+HÒ+HÙ&4°TÓ&:˜œß&¬5°¸:Õ1EÀt×+LÒ+LÙ(6°tÓ(<˜œç&¨3°$¬;Ø*/˜Ø—‘Ð'7×8Ò8Ù*8¸À3Ô*G˜œØ—‘Ð'>×?Õ?Ù)7¸À#Ô)F˜Ÿñ9:÷ A×@×@Ò@ûô> ô 	âð	úse   ‰ H ©BHÂ+HÂ9-HÃ'-HÄ-HÅ-HÅ1-HÆHÆ?#HÇ(HÇ<H ÈH	ÈH ÈH ÈH)È(H)c                óÂ  € R  pV P                  RV P                   R24      pVR,          ^ 8X  d‚   \        P                  ! VR,          4      pV! V4      pVP	                  RR4      V n        VP	                  RR4      V n        VP	                  RR4      V n        VP	                  R	R4      V n        V P                  R
4      pVR,          P                  4       V n
        R# )c                 ó&   € \        R  V  4       4      # )c              3   óº   "  € T FQ  p\        V\        4      '       g   K  VP                  R 4      '       g   K4  RV9   g   K=  VP                  R^4      x € KS  	  R# 5i)ÚPULP_DATABASES__default__r1   N)Ú
isinstanceÚstrr   r   )Ú.0Úitems   & r"   Ú	<genexpr>ÚBPulpCore.parse_pod_config.<locals>._env_to_dict.<locals>.<genexpr>[   sS   é € ð á$�DÜ˜d¤C×(ô #ð —O‘OÐ$?×@ô #ð ˜4‘Kô	 #�—
‘
˜3 ×"Ð"Û$ùs   ‚AŸA¸AÁA)Údict)Úenv_lists   &r"   Ú_env_to_dictÚ/PulpCore.parse_pod_config.<locals>._env_to_dictZ   s   € Üñ á$óó ð r%   zpodman inspect z  --format='{{json .Config.Env}}'ÚstatusÚoutputÚPULP_DATABASES__default__NAMEr   ÚPULP_DATABASES__default__HOSTÚPULP_DATABASES__default__USERÚPULP_DATABASES__default__PORTzNpodman secret inspect --showsecret --format '{{.SecretData}}' pulp-db-passwordN)Úexec_cmdÚpulp_containerÚjsonÚloadsÚgetr:   r8   r;   r9   Ústripr<   )r@   rR   Úpod_inspectrQ   ÚenvÚ
pod_secrets   &     r"   Úparse_pod_configÚPulpCore.parse_pod_configX   sÑ   € ò	ð —m‘mØ˜d×1Ñ1Ð2ð 3.ð .ó
ˆð �xÕ  AÔ%Ü—z’z +¨hÕ"7Ó8ˆHÙ˜xÓ(ˆCØŸ'™'Ð"AÀ2ÓFˆDŒKØŸ'™'Ð"AÀ2ÓFˆDŒKØŸ'™'Ð"AÀ2ÓFˆDŒKØŸ'™'Ð"AÀ2ÓFˆDŒKØ—]‘]ð:ó;ˆ
ð # 8Õ,×2Ñ2Ó4ˆŽr%   c           	     óV  € R V n         R ;V n        ;V n        V n        V P	                  RRR7      pVR,          ^ 8X  d>   VR,          P                  4       p\        V4      ^8”  d   RV n         RV n        RV n        M’RP                  R	 V P                   4       4      pV P                  VR
R7      pV'       dV   V^ ,          ^,          V n        RV n        V P                   F)  pV P                  VP                  RR4       R2.R7       K+  	  V P                  '       d   V P                  4        MV P                  4        RV P                  /V n        V P#                  RR.V P                   V P                  R7       V P%                  R4       V P'                  RRV P                   V P                  R7       RRRRRR/pT P'                  RTV P                   V P                  ;'       g    V P                  RR 7       V P(                  V P*                  3 F>  pT P-                  YpP                   V P                  ;'       g    V P                  R7       K@  	  V P/                  R!4      pR0 Fà  p	R"V	 R#2p
T P	                  V P1                  V
R$R%7      V P                   V P                   V P                  ;'       g    V P                  R&7      pVR,          ^ 8X  d
   VR,          MR'pR(V R)V	 R*V R+2p
V P1                  V
R
R%7      pT P'                  YÐP                   T	V P                   V P                  ;'       g    V P                  R,7       Kâ  	  V P1                  R-R$R%7      pT P'                  TR.V P                   V P                   V P                  ;'       g    V P                  R/7       R # )1Nz"podman ps --filter name=rhui5-rhuaÚrhui)ÚrunasrT   rU   z
rhui5-rhuaz%/var/lib/rhui/config/pulp/settings.pyÚ|c              3   ó.   "  € T F  pR V R2x € K  	  R# 5i)z(?:Ú)N© )rL   Úps   & r"   rN   Ú!PulpCore.setup.<locals>.<genexpr>€   s   é € ÐC±?¨a  Q C q�z³?ùs   ‚T)Úget_allÚ
postgresqlz-.*z@*z.service)Úunitsr   r   z/etc/pki/pulp/*)rg   Ú	containerz/etc/pki/pulp/**/*.keyz.curl -ks https://localhost/pulp/api/v3/status/Úpulp_status)Úsuggest_filenamerg   rq   ÚLC_ALLzen_US.UTF-8ÚPULP_SETTINGSÚDJANGO_SETTINGS_MODULEzpulpcore.app.settingsúdynaconf listÚdynaconf_list)ra   rg   rq   rs   r   z]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;F)Úcsv)ra   rg   rq   Ú*zselect z from z, where pulp_last_updated> NOW() - interval 'z! days' order by pulp_last_updated)ra   rs   rg   rq   a[  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)rs   ra   rg   rq   )Ú	core_taskÚcore_taskgroupÚcore_groupprogressreportÚcore_progressreport)rg   Úrhui_containerr[   Úpsql_containerrZ   r7   Úlenr4   ÚjoinÚ
containersÚget_all_containers_by_regexÚadd_journalr6   rc   rD   r<   ra   Úadd_copy_specÚadd_forbidden_pathÚadd_cmd_outputr=   r>   Úadd_dir_listingÚ
get_optionÚbuild_query_cmd)r@   Úrhui_podman_psÚlinesrC   Úpulp_containersÚcontÚdynaconf_envÚ_dirÚ	task_daysÚtableÚ_queryÚcol_outÚcolumnsÚ_cmds   &             r"   ÚsetupÚPulpCore.setups   sÎ  € ØˆŒ
ØJNÐNˆÔÐN˜dÔ1°DÔ4GØŸ™Ð'KØ-3ð 'ó 5ˆð ˜(Õ# qÔ(Ø" 8Õ,×7Ñ7Ó9ˆEÜ�5‹z˜AŒ~Ø#�”
Ø&2�Ô#Ø%L�Ô"øà—h‘hÑC°4·?²?ÓCÓCˆGØ"×>Ñ>¸wØGKð ?ó MˆOçØ&5°aÕ&8¸Õ&;�Ô#Ø&2�Ô#Ø ŸOœO�Dà×$Ñ$ØŸ<™<¨¨tÓ4Ð5°XÐ>ð,@Ð$ö Añ ,ð ××ÐØ×!Ñ!Õ#à×&Ñ&Ô(ð ! $§-¡-Ð0ˆŒà×ÑØ#Øð
ð —‘ t×':Ñ':ð 	ô 	<ð 	×ÑÐ 8Ô9à×ÑÐLØ-:À$Ç*Á*Ø&*×&9Ñ&9ð 	ô 	;ð ! -Ø'Ð)@Ø0Ð2IðKˆð 	×Ñ˜O°Ø"&§*¡*¸×8KÑ8K÷ 93ð 93Ø#×2Ñ2Ø-<ð 	ô 	>ð
 —_‘_ d§n¡nÓ5ˆDØ× Ñ  ¯Z©ZØ+/×+>Ñ+>÷ ,8ð ,8Ø$(×$7Ñ$7ð !ö 9ñ 6ð
 —O‘O KÓ0ˆ	óIˆEðFØFKÀWð M$ð$ˆFð
 —m‘m D×$8Ñ$8¸ÀUÐ$8Ó$KØ(,¯©Ø*.¯*©*Ø.2×.AÑ.A÷ /;ð /;Ø'+×':Ñ':ð	 $ó <ˆGð
 ,3°8Õ+<ÀÔ+A�g˜hÖ'ÀsˆGØ ˜y¨¨u¨gð 6-Ø-6¨Kð 8+ð+ˆFð ×'Ñ'¨°DÐ'Ó9ˆDØ×Ñ ¯(©(ÀUØ&*§j¡j¸D×<OÑ<O÷ =7ð =7Ø#'×#6Ñ#6ð  ö 8ñ#Ið, ×#Ñ#ðð ð $ó 
ˆð  	×Ñ˜DÐ3MØ $§¡°·
±
Ø&*×&9Ñ&9÷ '0ð '0Ø ×/Ñ/ð 	ö 	1r%   c                óž   € V'       d   RV R2pRpW0P                   V P                  V P                  V P                  \	        V4      3,          # )a  
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
zCOPY (z6) TO STDOUT WITH (FORMAT 'csv', DELIMITER ';', HEADER)z0psql --no-password -h %s -p %s -U %s -d %s -c %s)r8   r9   r;   r:   r   )r@   Úqueryry   Ú_dbcmds   &&& r"   rŒ   ÚPulpCore.build_query_cmdÙ   sS   € ÷ Ø˜U˜Gð $Að AˆEàCˆØŸ™ d§k¡kØŸ™ d§k¡k´5¸³<ðAõ Að 	Ar%   c                óV   € R pRpV P                  RW4       V P                  RW4       R# )zQ((SECRET_KEY|AUTH_LDAP_BIND_PASSWORD|password|PASSWORD)(\"|'|:|=|\s)+)([^\s'\"]+)z
\1********r   rw   N)Údo_path_regex_subÚdo_cmd_output_sub)r@   ÚregÚrepls   &  r"   ÚpostprocÚPulpCore.postprocè   s/   € ð,ˆàˆØ×ÑÐ6¸ÔBØ×Ñ˜°Ö:r%   )r8   r:   r<   r9   r;   ra   r�   r[   r€   rg   r4   r=   r>   N)zpulpcore-manager)r   )zpulp-apizpulp-contentzpulp-worker-.*)F)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú
short_descÚplugin_nameÚcommandsÚfilesr„   r   Úoption_listr8   r9   r:   r;   r<   r=   r>   ra   r4   rD   rc   r™   rŒ   r¤   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r"   r	   r	      sˆ   ø‡ € à&€Jà€KØ$€HØ&€EØ?€Já�+ qÐ/EÔFð€Kð €FØ€FØ€FØ€FØ€HØ'€JØ#€IØ˜Ð
"€CØ+€Mò/òb5ò6d1ôLA÷;ð ;r%   r	   )
r\   Úrer   Úshlexr   Úsos.report.pluginsr   r   r   r	   rk   r%   r"   Ú<module>rµ      s'   ðó Ý Ý ß CÑ Côb;ˆvÐ(ö b;r%   