
    ~ g7              	           S SK r S SKrS SKJrJr  SrSr\S-   \S-   \S-   \S-   \S	-   \S
-   \S-   \S-   S.r\S    S3rSr	Sr
Sr " S S\\5      rg)    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_CONFPOSTGRESQL_LOGSPATRONI_CONFPATRONI_LOGSPGBACKREST_CONFPGBACKREST_LOGSPGBOUNCER_CONFPGBOUNCER_LOGSr   z/patroni.yamlsnap_daemonzcharmed-postgresql.psqlzcharmed-postgresql.patronictlc                   \    \ rS rSrSrSrSr\S\4S j5       r	\S\4S j5       r
S rS	 rS
rg)CharmedPostgreSQL#   zCharmed PostgreSQLcharmed_postgresql)zcharmed-postgresqlreturnc                     S[          3$ )Nz--config-file )PATRONI_CONFIG_FILEselfs    G/usr/lib/python3/dist-packages/sos/report/plugins/charmed_postgresql.pypatronictl_args!CharmedPostgreSQL.patronictl_args)   s     3455    c                 V    SU R                    SU R                   SU R                   S3$ )Nz-U z -h z -p z -d postgres -P pager=off)postgresql_usernamepostgresql_hostpostgresql_portr   s    r   	psql_argsCharmedPostgreSQL.psql_args-   sA    d../ 0**+ ,**+ ,,, 	-r   c                    U R                  [        S    S3[        S    S3/5        U R                  [        S    S3[        S    [        S    S3[        S    [        S	    [        S
    [        S    [        S    /5        U R                  S5        U R	                  SSS9   [        [        SS9 n[        R                  " U5      nS S S 5        WS   U l	        US   nUS   R                  S5      nUu  U l        U l        US   nUS   nUS   U l        US   U l        U R	                  [,         SU R.                   SU R                   3S[0        S9  U R	                  [,         SU R.                   S U R                   3S![0        S9  U R	                  [,         SU R.                   S"U R                   3S#[0        S9  U R                  [2        R4                  S$'   U R	                  [6         SU R8                   S%3S&[0        S9  U R	                  [6         SU R8                   S'3S([0        S9  U R	                  [6         SU R8                   S)3S*[0        S9  g ! , (       d  f       GN= f! [        [        R                   ["        [$        [&        [(        4 a%  nU R+                  S[         SU 35         S nAg S nAff = f)+Nr   z/*.pemr   r   z/*.conf*r   z/*.y*mlr   r	   r
   r   zsnap.charmed-postgresql.*zsnap info charmed-postgresqlz	snap-info)suggest_filenamezutf-8)encodingscope
postgresqlconnect_address:authentication	superuserusernamepasswordzVCan not run additional commands due to an error on opening or parsing the config file z:  z
 topology zpatroni-topology)r"   runasz	 history zpatroni-historyz show-config zpatroni-dcs-config
PGPASSWORDz	 -c '\l+'zpostgresql-databasesz -c '\duS+'zpostgresql-usersz -c '\dtS+'zpostgresql-tables)add_forbidden_pathPATHSadd_copy_specadd_journaladd_cmd_outputopenr   yaml	safe_loadpatroni_cluster_namesplitr   r   r   postgresql_passwordOSError	YAMLError	TypeError
ValueErrorKeyErrorAttributeError	_log_warn
PATRONICTLr   RUNASosenvironPSQLr   )r   fpatroni_configr%   	host_portr(   r)   errors           r   setupCharmedPostgreSQL.setup4   sH    	^$%V,%&'v.!
 	 	&'(1&'(^$%W-^$%&'(&'(%&'%&'	
 		 	45 	*( 	 	
	)G<!%!2 =(6w(?D%'5J"#45;;C@I9B6D $"6'(89N&{3I'0'<D$'0'<D$ 	|1T112 32235/	 	 	
 	|1T112 31124.	 	 	
 	|1T112 3 55681	 	 	
 $(#;#;

<  	vQt~~& ' 3	 	 	
 	vQt~~& ' /	 	 	
 	vQt~~& ' 0	 	 	
I =< Hn6 	NN M12"#W& ' 	s1   'I. 5IAI. 
I+&I. ..KJ<<Kc                     S[         R                  ;   a  [         R                  S	 U R                  [        S    S3SS5        U R                  [        S    S3SS	5        U R                  [        S
    S3SS5        g )Nr.   r   z/*z(password: )"?.*"?z\1"*********"r	   z/pgbackrest.confz(.*s3-key.*=).*z\1*********r   z/pgbouncer/userlist.txtz(".*" )".*")rC   rD   do_path_regex_subr0   r   s    r   postprocCharmedPostgreSQL.postproc   s     2::%

<( 	^$%R(!	
 	&'((89	
 	%&''>?	
r   )r7   r   r9   r   r   N)__name__
__module____qualname____firstlineno__
short_descplugin_namepackagespropertystrr   r   rJ   rN   __static_attributes__ r   r   r   r   #   sQ    %J&K&H6 6 6 -3 - -l
\
r   r   )rC   r5   sos.report.pluginsr   r   SNAP_COMMON_PATHSNAP_CURRENT_PATHr0   r   rB   rE   rA   r   rZ   r   r   <module>r^      s    
  38 :  (*??'*??%6$'99(+<<'*??'*::&)==		 ~./}=  ,
\
 \
r   