o id[@sjddlZddlmZmZmZmZmZddlmZGdddeZ Gddde eZ Gdd d e eeZ dS) N)Plugin UbuntuPlugin DebianPlugin SCLPlugin PluginOpt)findc @seZdZdZdZdZdZdZedddd ed d e d d edde ded edde dd edde dd edde dd gZ dddZ ddZ dS) PostgreSQLzPostgreSQL RDBMS postgresql)services)r zpostgresql-commonz' (password visible in process listings)pghomez/var/lib/pgsqlzpsql server home directory)defaultdescusernamepostgreszusername for pg_dump)r val_typer passwordzpassword for pg_dumpdbnamez"database name to dump with pg_dumpdbhostz.database hostname/IP address (no unix sockets)dbporti8zdatabase server listening portN pgdump.tarcCs|drd|dsdtjvrW|dr|dtjd<|dr6d|d|d|d|df}n d|d|df}|durL|||}|j||d d d dS|jd |d dSdS)Nrr PGPASSWORDrz$pg_dump -U %s -h %s -p %s -w -F t %srrzpg_dump -C -U %s -w -F t %s Tr)suggest_filenamebinary sizelimitz-password must be supplied to dump a database.z3WARN: password must be supplied to dump a database.) get_optionosenvironconvert_cmd_scladd_cmd_outputsoslogwarning add_alert)selfsclfilenamecmdr'?/usr/lib/python3/dist-packages/sos/report/plugins/postgresql.py do_pg_dump0s6     zPostgreSQL.do_pg_dumpcCs ||d|ddS)N du -sh %sr )r)rrr#r'r'r(setupSszPostgreSQL.setup)Nr)__name__ __module__ __qualname__ short_desc plugin_nameprofilespackagespassword_warn_textrstrint option_listr)r,r'r'r'r(rs6  #rcs eZdZdZfddZZS)RedHatPostgreSQL)r z!rh-postgresql95-postgresql-serverz!rh-postgresql10-postgresql-serverz!rh-postgresql12-postgresql-serverc stt||d}|g}|jddD]7}|dd}|||}||||r6| d|| | ddrM||j vrM|j |d|d q|D]+}td |D]}||qWtd |D]}||qdd D] }|||d |qnqPdS)Nr z -postgresql-rr*z-serverrzpgdump-scl-%s.tar)r$r%z*.logz*.conf) PG_VERSIONzpostmaster.optsdata)superr8r,rr3splitconvert_copyspec_sclappend path_isdirris_service_runningreplace scls_matchedr)r add_copy_spec path_join)r#r dirspkgr$_dirr%f __class__r'r(r,as,       zRedHatPostgreSQL.setup)r-r.r/r3r, __classcell__r'r'rJr(r8Xsr8cseZdZfddZZS)DebianPostgreSQLcs tt||gddS)N)z/var/log/postgresql/*.logz/etc/postgresql/*/main/*.confz%/var/lib/postgresql/*/main/PG_VERSIONz*/var/lib/postgresql/*/main/postmaster.opts)r<rMr,rDr+rJr'r(r,szDebianPostgreSQL.setup)r-r.r/r,rLr'r'rJr(rMsrM) rsos.report.pluginsrrrrr sos.utilitiesrrr8rMr'r'r'r(s  B*