U
    -_g	                     @   sB   d dl Z d dlmZmZmZ G dd deZG dd deeZdS )    N)PluginRedHatPlugin	PluginOptc                   @   sZ   e Zd ZdZdZdZeddddeddd	dgZd
dddddddgZdd Z	dddZ
dS )OpenStackDatabasezOpenstack Database InformationZopenstack_database)Z	openstackZopenstack_controllerdumpFzDump select databases)defaultZdescdumpallzDump ALL databasesZcinderZglanceZheatZironicZkeystoneZmistralz(.*)?neutronznova.*c                 C   s   ddg}d }|D ]}|  |}|r q(q|r6d| nd }| jd|d|d | ds`| dr| j|d	}d
| }| j|dd|d d S )Nzgalera-bundle-.*ZmysqlZclustercheck_Zclustercheck   )	containerZtimeoutsuggest_filenamer   r   r
   zmysqldump --opt zmysql_dump.sqlr   )r   Z	sizelimitr
   )Zget_container_by_nameZadd_cmd_output
get_optionget_mysql_db_string)selfZ_db_containersZcnamer
   fnameZdb_dumpZdb_cmd r   G/usr/lib/python3/dist-packages/sos/report/plugins/openstack_database.pysetup'   s&    


 zOpenStackDatabase.setupNc                    sl   |  drdS g }| jd|d}|d  D ]& t fdd| jD r,|  q,dd	d
d |D  S )z# Get mysql DB command to be dumped r   z--all-databaseszmysql -e "show databases;"r   outputc                 3   s   | ]}t  |V  qd S N)rematch).0ZregZdatabaser   r   	<genexpr>H   s     z8OpenStackDatabase.get_mysql_db_string.<locals>.<genexpr>z-B  c                 s   s   | ]
}|V  qd S r   r   )r   dr   r   r   r   K   s     )r   Zexec_cmd
splitlinesany	databasesappendjoin)r   r
   ZcollectZdbsr   r   r   r   ?   s    
z%OpenStackDatabase.get_mysql_db_string)N)__name__
__module____qualname__Z
short_descZplugin_nameZprofilesr   Zoption_listr   r   r   r   r   r   r   r      s"   r   c                   @   s   e Zd ZdZdS )RedHatOpenStackDatabase)zopenstack-selinuxN)r"   r#   r$   Zpackagesr   r   r   r   r%   N   s   r%   )r   Zsos.report.pluginsr   r   r   r   r%   r   r   r   r   <module>   s   =