o
    *b	                     @   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                   @   sN   e Zd ZdZdZdZeddddeddd	dgZg d
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 databases)ZcinderZglanceZheatZironicZkeystoneZmistralz(.*)?neutronznova.*c                 C   s   ddg}d }|D ]}|  |}|r nq|rd| nd }| jd|d|d | ds/| drD| j|d	}d
| }| j|dd|d d S d S )Nzgalera-bundle-.*Zmysqlzclustercheck_%sZclustercheck   )	containerZtimeoutsuggest_filenamer   r   r
   zmysqldump --opt %sz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 )Nr   z--all-databaseszmysql -e "show databases;"r   outputc                    s   g | ]}t  |qS r   )rematch).0ZregZdbr   r   
<listcomp>H   s    z9OpenStackDatabase.get_mysql_db_string.<locals>.<listcomp>z-B  c                 s   s    | ]}|V  qd S Nr   )r   dr   r   r   	<genexpr>K   s    z8OpenStackDatabase.get_mysql_db_string.<locals>.<genexpr>)r   Zexec_cmd
splitlinesany	databasesappendjoin)r   r
   ZcollectZdbsr   r   r   r   ?   s   

z%OpenStackDatabase.get_mysql_db_stringr   )__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   
=