U
    -_g                     @   s^   d dl Z d dlmZmZmZmZmZ G dd deZG dd deeZG dd deeeZ	dS )	    N)PluginRedHatPluginDebianPluginUbuntuPlugin	PluginOptc                       sl   e Zd ZdZdZdZdZdZdZe	dde
dd	e	d
de
de d	e	ddddgZ fddZdd Z  ZS )MysqlzMySQL and MariaDB RDBMSmysql)servicesz/etc/my.cnfz/etc/my.cnf.dz' (password visible in process listings)dbuserz%username for database dump collection)defaultZval_typedescdbpass z!password for data dump collectiondbdumpFzCollect a database dump)r   r   c                    s  t    | | jdddg | dr:| dddg n| dd	d
dg | drd}d| }| d}| d}dtjkrtjd }|dks|dkr| j| d S |r|dkr| j| d S |tjd< d| d}d}| j	d| |d | 	d d S )Nz/etc/mysqlrouter/z/var/lib/mysql/grastate.datz/var/lib/mysql/gvwstate.datZall_logsz/var/log/mysql*z/var/log/mariadb*z/var/log/mysqlrouter/*z/var/log/mysqld.logz/var/log/mysql/mysqld.logz$/var/log/mysqlrouter/mysqlrouter.logz/var/log/mariadb/mariadb.logr   z0database user name and password must be suppliedzmysql.dbdump: r
   r   Z	MYSQL_PWDTFz--user=z --all-databaseszmysqldump_--all-databasesz
mysqldump )Zsuggest_filenamezdu -s /var/lib/mysql/*)
supersetupadd_copy_spec	mysql_cnfZ
get_optionosenvironZsoslogZwarningadd_cmd_output)selfmsgZ
dbdump_errr
   r   Zoptsname	__class__ :/usr/lib/python3/dist-packages/sos/report/plugins/mysql.pyr   !   sJ    








zMysql.setupc                 C   sH   dg}dd | d}d}| | j d|| | | j || d S )NZpasswordz(^\s*(|z)\s*=\s*)(.*)z\1*********/*)joinZdo_path_regex_sub
my_cnf_dirZdo_file_subr   )r   Zprotect_keysZregexsubr   r   r   postprocX   s    
  zMysql.postproc)__name__
__module____qualname__Z
short_descZplugin_nameZprofilesr   r!   Zpw_warn_textr   strZoption_listr   r#   __classcell__r   r   r   r   r      s    7r   c                       s    e Zd ZdZ fddZ  ZS )RedHatMysql)zmysql-serverr   zmariadb-serverZmariadbzopenstack-selinuxc                    s(   t    | dd| j ddg d S )Nz/etc/ld.so.conf.d/mysql-*.confz /etc/ld.so.conf.d/mariadb-*.confr   z:/var/lib/config-data/puppet-generated/mysql/etc/my.cnf.d/*)r   r   r   r!   r   r   r   r   r   q   s    

zRedHatMysql.setup)r$   r%   r&   packagesr   r(   r   r   r   r   r)   g   s   r)   c                       s.   e Zd ZdZdZe dZ fddZ  ZS )DebianMysql)zmysql-server.*zmysql-commonzmariadb-server.*zmariadb-commonz percona-xtradb-cluster-server-.*z/etc/mysql/z/my.cnfc              	      s2   t    | | jddddddg | d d S )Nz/var/log/mysql/error.logz/var/lib/mysql/*.errz%/var/lib/percona-xtradb-cluster/*.errz,/var/lib/percona-xtradb-cluster/grastate.datz,/var/lib/percona-xtradb-cluster/gvwstate.datz0/var/lib/percona-xtradb-cluster/innobackup.*.logz'du -s /var/lib/percona-xtradb-cluster/*)r   r   r   r!   r   r*   r   r   r   r      s    
	zDebianMysql.setup)r$   r%   r&   r+   r!   r   r   r(   r   r   r   r   r,   {   s   
r,   )
r   Zsos.report.pluginsr   r   r   r   r   r   r)   r,   r   r   r   r   <module>	   s   Y