a >h7 @sddlZddlZddlmZmZdZdZededededed ed ed ed d ZeddZdZ dZ dZ GdddeeZ dS)N)Plugin UbuntuPluginz#/var/snap/charmed-postgresql/commonz$/var/snap/charmed-postgresql/currentz/var/lib/postgresqlz/var/log/postgresqlz /etc/patroniz/var/log/patroniz/etc/pgbackrestz/var/log/pgbackrestz/etc/pgbouncerz/var/log/pgbouncer)POSTGRESQL_CONFPOSTGRESQL_LOGS PATRONI_CONF PATRONI_LOGSPGBACKREST_CONFPGBACKREST_LOGSPGBOUNCER_CONFPGBOUNCER_LOGSrz /patroni.yamlZ snap_daemonzcharmed-postgresql.psqlzcharmed-postgresql.patronictlc@sLeZdZdZdZdZeedddZeedddZ d d Z d d Z d S)CharmedPostgreSQLzCharmed PostgreSQLZcharmed_postgresql)zcharmed-postgresql)returncCs dtS)Nz--config-file )PATRONI_CONFIG_FILEselfrI/usr/lib/python3.9/site-packages/sos/report/plugins/charmed_postgresql.pypatronictl_args)sz!CharmedPostgreSQL.patronictl_argscCsd|jd|jd|jdS)Nz-U z -h z -p z -d postgres -P pager=off)postgresql_usernamepostgresql_hostpostgresql_portrrrr psql_args-s  zCharmedPostgreSQL.psql_argsc Cs:|tddtddg|tddtdtddtdtd td tdtd g|d |jd ddzttdd}t|}Wdn1s0Y|d|_ |d}|d d}|\|_ |_ |d}|d}|d|_ |d|_WnLttjttttfyb}z$|dtd|WYd}~dSd}~00|jtd|jd|j dtd|jtd|jd |j d!td|jtd|jd"|j d#td|jtjd$<|jtd|jd%d&td|jtd|jd'd(td|jtd|jd)d*tddS)+Nrz/*.pemr rz/*.conf*rz/*.y*mlrrr r zsnap.charmed-postgresql.*zsnap info charmed-postgresqlz snap-info)suggest_filenamezutf-8)encodingZscope postgresqlZconnect_address:authentication superuserusernamepasswordzVCan not run additional commands due to an error on opening or parsing the config file z:  z topology zpatroni-topology)rZrunasz history zpatroni-historyz show-config zpatroni-dcs-config PGPASSWORDz -c '\l+'zpostgresql-databasesz -c '\duS+'zpostgresql-usersz -c '\dtS+'zpostgresql-tables)Zadd_forbidden_pathPATHSZ add_copy_specZ add_journalZadd_cmd_outputopenryamlZ safe_loadZpatroni_cluster_namesplitrrrZpostgresql_passwordOSErrorZ YAMLError TypeError ValueErrorKeyErrorAttributeErrorZ _log_warn PATRONICTLrRUNASosenvironPSQLr)rfZpatroni_configr host_portrrerrorrrrsetup4s     (         zCharmedPostgreSQL.setupcCs^dtjvrtjd=|tdddd|tdddd |td d d ddS) Nr!rz/*z(password: )"?.*"?z \1"*********"rz/pgbackrest.confz(.*s3-key.*=).*z \1*********r z/pgbouncer/userlist.txtz (".*" )".*")r-r.Zdo_path_regex_subr"rrrrpostprocs"    zCharmedPostgreSQL.postprocN) __name__ __module__ __qualname__Z short_descZ plugin_nameZpackagespropertystrrrr3r4rrrrr #snr ) r-r$Zsos.report.pluginsrrZSNAP_COMMON_PATHZSNAP_CURRENT_PATHr"rr,r/r+r rrrr s$