
    -_g	                     N    d dl Z d dlmZmZmZ  G d de      Z G d dee      Zy)    N)PluginRedHatPlugin	PluginOptc                   Z    e Zd ZdZdZdZ eddd       eddd	      gZg d
Zd Z	ddZ
y)OpenStackDatabasezOpenstack Database Informationopenstack_database)	openstackopenstack_controllerdumpFzDump select databases)defaultdescdumpallzDump ALL databases)cinderglanceheatironickeystonemistralz(.*)?neutronznova.*c                 "   ddg}d }|D ]  }| j                  |      }|s n |rd| nd }| j                  d|d|       | j                  d      s| j                  d      r-| j                  |	      }d
| }| j                  |dd|       y y )Nzgalera-bundle-.*mysqlclustercheck_clustercheck   )	containertimeoutsuggest_filenamer   r   r   zmysqldump --opt zmysql_dump.sqlr   )r   	sizelimitr   )get_container_by_nameadd_cmd_output
get_optionget_mysql_db_string)self_db_containerscnamer   fnamedb_dumpdb_cmds          G/usr/lib/python3/dist-packages/sos/report/plugins/openstack_database.pysetupzOpenStackDatabase.setup'   s     

 ' 	I..y9E	
 ,1-w'dNeR-2 	 	4 ??6"dooi&@...?G'y1F9I*+u   >	 'A    Nc                    | j                  d      ryg }| j                  d|      }|d   j                         D ]2  t        fd| j                  D              s"|j                         4 ddj                  d	 |D              z   S )
z# Get mysql DB command to be dumped r   z--all-databaseszmysql -e "show databases;"r   outputc              3   J   K   | ]  }t        j                  |        y wN)rematch).0regdatabases     r)   	<genexpr>z8OpenStackDatabase.get_mysql_db_string.<locals>.<genexpr>H   s     Es288Hc*Es    #z-B  c              3       K   | ]  }|  y wr/    )r2   ds     r)   r5   z8OpenStackDatabase.get_mysql_db_string.<locals>.<genexpr>K   s     3a3s   )r!   exec_cmd
splitlinesany	databasesappendjoin)r#   r   collectdbsr4   s       @r)   r"   z%OpenStackDatabase.get_mysql_db_string?   s    ??9%$mm8ImNH002 	)HEdnnEEx(	) sxx373333r+   r/   )__name__
__module____qualname__
short_descplugin_nameprofilesr   option_listr=   r*   r"   r8   r+   r)   r   r      sE    1J&K4H 	&%.EF)U1EFK
	I>04r+   r   c                       e Zd ZdZy)RedHatOpenStackDatabase)zopenstack-selinuxN)rB   rC   rD   packagesr8   r+   r)   rJ   rJ   N   s    &Hr+   rJ   )r0   sos.report.pluginsr   r   r   r   rJ   r8   r+   r)   <module>rM      s.    
 ? >:4 :4z'/ 'r+   