Ë
    i©¹d[  ã                   ó|   — d dl Z d dlmZmZmZmZmZ d dlmZ  G d„ de«      Z	 G d„ de	e«      Z
 G d„ d	e	ee«      Zy)
é    N)ÚPluginÚUbuntuPluginÚDebianPluginÚ	SCLPluginÚ	PluginOpt)Úfindc                   óº   — e Zd ZdZdZdZdZdZ eddd¬	«       ed
de	d¬«       edde	dez   ¬«       edde	d¬«       edde	d¬«       edde
d¬«      gZdd„Zd„ Zy)Ú
PostgreSQLzPostgreSQL RDBMSÚ
postgresql)Úservices)r   zpostgresql-commonz' (password visible in process listings)Úpghomez/var/lib/pgsqlzpsql server home directory)ÚdefaultÚdescÚusernameÚpostgreszusername for pg_dump)r   Úval_typer   ÚpasswordÚ zpassword for pg_dumpÚdbnamez"database name to dump with pg_dumpÚdbhostz.database hostname/IP address (no unix sockets)Údbporti8  zdatabase server listening portNc           
      óˆ  — | j                  d«      �r0| j                  d«      sdt        j                  v rà| j                  d«      r"| j                  d«      t        j                  d<   | j                  d«      rKd| j                  d«      ›d| j                  d«      ›d| j                  d	«      ›d
| j                  d«      ›�}n'd| j                  d«      ›d
| j                  d«      ›d�}|�| j                  ||«      }| j	                  ||dd¬«       y | j
                  j                  d«       | j                  d«       y y )Nr   r   Ú
PGPASSWORDr   zpg_dump -U r   z -h z -p r   z	 -w -F t zpg_dump -C -U ú Tr   )Úsuggest_filenameÚbinaryÚ	sizelimitz-password must be supplied to dump a database.z3WARN: password must be supplied to dump a database.)Ú
get_optionÚosÚenvironÚconvert_cmd_sclÚadd_cmd_outputÚsoslogÚwarningÚ	add_alert)ÚselfÚsclÚfilenameÚcmds       ú?/usr/lib/python3/dist-packages/sos/report/plugins/postgresql.pyÚ
do_pg_dumpzPostgreSQL.do_pg_dump0   s  € Ø�?‰?˜8Õ$Ø�‰˜zÔ*¨l¼b¿j¹jÑ.Hð —?‘? :Ô.Ø/3¯©¸zÓ/J”B—J‘J˜|Ñ,à—?‘? 8Õ,àŸ™¨
Õ3ØŸ™¨Õ1ØŸ™¨Õ1ØŸ™¨Ô1ð	‘Cð -ð Ÿ™¨
Õ3ØŸ™¨Õ1ð�Cð
 �?Ø×.Ñ.¨s°CÓ8�CØ×#Ñ# C¸(Ø+/¸1ð $õ >ð —‘×#Ñ#ØCôð —‘ØIõð= %ó    c                 ój   — | j                  «        | j                  d| j                  d«      z  «       y )Nú	du -sh %sr   )r+   r"   r   )r&   s    r*   ÚsetupzPostgreSQL.setupS   s(   € Ø�‰ÔØ×Ñ˜K¨$¯/©/¸(Ó*CÑCÕDr,   )Nz
pgdump.tar)Ú__name__Ú
__module__Ú__qualname__Ú
short_descÚplugin_nameÚprofilesÚpackagesÚpassword_warn_textr   ÚstrÚintÚoption_listr+   r/   © r,   r*   r
   r
      sž   „ à#€Jà€KØ€Hà2€HàBÐñ 	�(Ð$4Ø3ô	5á�* j¸3Ø-ô	/á�* b°3Ø-Ð0BÑBô	Dá�( B°Ø;ô	=á�( B°ØGô	Iá�( D°3Ø7ô	9ð€Kó!óFEr,   r
   c                   ó"   ‡ — e Zd ZdZˆ fd„Zˆ xZS )ÚRedHatPostgreSQL)r   z!rh-postgresql95-postgresql-serverz!rh-postgresql10-postgresql-serverz!rh-postgresql12-postgresql-serverc           	      ó¨  •— t         t        | �  «        | j                  d«      }|g}| j                  dd  D ]¥  }|j                  d«      d   }| j                  ||«      }|j                  |«       | j                  |«      r| j                  d|z  «       | j                  |j                  dd«      «      sŒ�|| j                  v sŒ�| j                  |d|z  ¬	«       Œ§ |D ]o  }t        d
|«      D ]  }| j                  |«       Œ t        d|«      D ]  }| j                  |«       Œ dD ]$  }| j                  | j!                  |d|«      «       Œ& Œq y )Nr   é   z-postgresql-r   r.   z-serverr   zpgdump-scl-%s.tar)r'   r(   z*.logz*.conf)Ú
PG_VERSIONzpostmaster.optsÚdata)Úsuperr=   r/   r   r6   ÚsplitÚconvert_copyspec_sclÚappendÚ
path_isdirr"   Úis_service_runningÚreplaceÚscls_matchedr+   r   Úadd_copy_specÚ	path_join)	r&   r   ÚdirsÚpkgr'   Ú_dirr(   ÚfÚ	__class__s	           €r*   r/   zRedHatPostgreSQL.setupa   s\  ø€ ÜÔ Ñ+Ô-à—‘ Ó*ˆØˆxˆà—=‘=  Ð$ò 	MˆCð —)‘)˜NÓ+¨AÑ.ˆCØ×,Ñ,¨S°&Ó9ˆDØ�K‰K˜ÔØ�‰˜tÔ$Ø×#Ñ# K°$Ñ$6Ô7Ø×'Ñ'¨¯©°I¸rÓ(BÕCØ˜4×,Ñ,Ò,Ø—‘ CÐ2EÈÑ2K�ÕLð	Mð ò 	DˆDä  ¨$Ó/ò -�Ø×"Ñ" 8Õ,ð-ô ! ¨4Ó0ò -�Ø×"Ñ" 8Õ,ð-ð 7ò D�Ø×"Ñ" 4§>¡>°$¸ÀÓ#BÕCñDñ	Dr,   )r0   r1   r2   r6   r/   Ú__classcell__©rP   s   @r*   r=   r=   X   s   ø„ ð€H÷Dð Dr,   r=   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚDebianPostgreSQLc                 óP   •— t         t        | �  «        | j                  g d¢«       y )N)z/var/log/postgresql/*.logz/etc/postgresql/*/main/*.confz%/var/lib/postgresql/*/main/PG_VERSIONz*/var/lib/postgresql/*/main/postmaster.opts)rB   rT   r/   rJ   )r&   rP   s    €r*   r/   zDebianPostgreSQL.setup„   s$   ø€ ÜÔ Ñ+Ô-à×Ñò 
õ 	r,   )r0   r1   r2   r/   rQ   rR   s   @r*   rT   rT   ‚   s   ø„ ÷ð r,   rT   )r   Úsos.report.pluginsr   r   r   r   r   Úsos.utilitiesr   r
   r=   rT   r;   r,   r*   ú<module>rX      sG   ðó 
÷+õ +å ô?E�ô ?EôD'D�z 9ô 'DôT
�z <°õ 
r,   