
    -_gu                     |    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RedHatPlugin	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 portc           
      ^   | j                  d      r| 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       }| j                  ||dd       y| j                  j                  d       | j                  d       yy)z- Extract PostgreSQL database into a tar file r   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.N)
get_optionosenvironadd_cmd_outputsoslogwarning	add_alert)selffilenamecmds      ?/usr/lib/python3/dist-packages/sos/report/plugins/postgresql.py
do_pg_dumpzPostgreSQL.do_pg_dump0   s"   ??8$z*lbjj.H ??:./3z/JBJJ|,??8,()D(E F!!%!: ; <!!%!: ;9"ooh78:C
 ,DOOJ,G+H I##'??8#<"=?C ##C(+/1 $ > ##C I1 %    c                 j    | j                          | j                  d| j                  d              y )Nzdu -sh r   )r(   r    r   )r$   s    r'   setupzPostgreSQL.setupN   s+    gdooh&?%@ABr)   N)z
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2HB 	($43	5*j3-	/*b3-0BB	D(B;	=(BG	I(D37	9K<Cr)   r
   c                        e Zd Z fdZ xZS )RedHatPostgreSQLc           	      2   t         |           | j                  d      }|g}|D ]o  }t        d|      D ]  }| j	                  |        t        d|      D ]  }| j	                  |        dD ]$  }| j	                  | j                  |d|             & q y )Nr   z*.logz*.conf)
PG_VERSIONzpostmaster.optsdata)superr+   r   r   add_copy_spec	path_join)r$   r   dirs_dirr%   file	__class__s         r'   r+   zRedHatPostgreSQL.setupU   s    *x 	GD $/ -""8,- !40 -""8,- : G""4>>$#EFG	Gr)   r,   r-   r.   r+   __classcell__rC   s   @r'   r9   r9   S   s    G Gr)   r9   c                        e Zd Z fdZ xZS )DebianPostgreSQLc                 H    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)r=   r+   r>   )r$   rC   s    r'   r+   zDebianPostgreSQL.setupk   s     
 	r)   rD   rF   s   @r'   rH   rH   i   s     r)   rH   )r   sos.report.pluginsr   r   r   r   r   sos.utilitiesr   r
   r9   rH   r7   r)   r'   <module>rL      sF    
9 9 :C :CzGz< G,
z< 
r)   