+
    Û1jô  ã                   ót   € ^ RI t ^ RIt^ RIHtHtHtHt  ! R R]4      t ! R R]]4      t ! R R]]4      t	R# )	é    N)ÚPluginÚRedHatPluginÚ	PluginOptÚUbuntuPluginc            	       óŒ   a € ] tR t^t o RtRtRt]! RRRR7      ]! RRRR7      ]! R	R
]RR7      .t	. ROt
R tR tRR ltRtV tR# )ÚOpenStackDatabasezOpenstack Database InformationÚopenstack_databaseÚdumpFzDump select databases)ÚdefaultÚdescÚdumpallzDump ALL databasesÚdbpassÚ z%Password for database dump collection)r   Úval_typer   c                ó–  € R R.pRpV F  pV P                  V4      pV'       g   K   M	  V'       d   RV 2MRpV P                  RV^VR7       V P                  R4      '       g   V P                  R4      '       dM   V P                  VR7      pV P	                  4       pR	V 2pV'       d   R
V/MRpV P                  VR^ W(R7       R# R# )zgalera-bundle-.*ÚmysqlNÚclustercheck_Úclustercheck)Ú	containerÚtimeoutÚsuggest_filenamer
   r   ©r   zmysqldump --opt Ú	MYSQL_PWDzmysql_dump.sql)r   Ú	sizelimitr   Úenv)Úget_container_by_nameÚadd_cmd_outputÚ
get_optionÚget_mysql_db_stringÚget_mysql_password)	ÚselfÚ_db_containersÚcnamer   ÚfnameÚdb_dumpr   Údb_cmdÚ	mysql_envs	   &        ÚG/usr/lib/python3/dist-packages/sos/report/plugins/openstack_database.pyÚsetupÚOpenStackDatabase.setup)   sè   € ð Øð
ˆð
 ˆÛ'ˆIØ×.Ñ.¨yÓ9ˆEß‰uÙñ (÷
 ,1�- ˜wÑ'°dˆØ×Ñ˜N°eÀRØ-2ð 	ô 	4ð �?‰?˜6×"Ò" d§o¡o°i×&@Ò&@Ø×.Ñ.¸Ð.Ó?ˆGØ×,Ñ,Ó.ˆFØ'¨ yÐ1ˆF÷ 28˜ fÑ-¸TˆIà×Ñ Ð9IØ*+°uð  ö Mñ 'Aó    c                ó$   € V P                  R4      # )zAReturn MySQL password from user-provided option (default: empty).r   )r   )r!   s   &r(   r    Ú$OpenStackDatabase.get_mysql_passwordE   s   € à�‰˜xÓ(Ð(r+   Nc                ó¨  a€ V P                  R4      '       d   R# . pV P                  RVR7      pVR,          P                  4        Fj  o\        ;QJ d)    V3R lV P                   4       F  '       g   K   RM	  RM! V3R lV P                   4       4      '       g   KY  VP                  S4       Kl  	  R	R
P                  R V 4       4      ,           # )z"Get mysql DB command to be dumped r   z--all-databaseszmysql -e "show databases;"r   Úoutputc              3   óR   <"  € T F  p\         P                  ! SV4      x € K  	  R # 5i©N)ÚreÚmatch)Ú.0ÚregÚdatabases   & €r(   Ú	<genexpr>Ú8OpenStackDatabase.get_mysql_db_string.<locals>.<genexpr>R   s   øé € ÐE±n¨s”2—8’8˜H c×*Ð*³nùs   ƒ$'TFz-B Ú c              3   ó$   "  € T F  qx € K  	  R # 5ir1   © )r4   Úds   & r(   r7   r8   U   s   é € Ð3©7 a¤«7ùs   ‚)r   Úexec_cmdÚ
splitlinesÚanyÚ	databasesÚappendÚjoin)r!   r   ÚcollectÚdbsr6   s   &&  @r(   r   Ú%OpenStackDatabase.get_mysql_db_stringI   s•   ø€ à�?‰?˜9×%Ò%Ù$àˆØ�m‰mÐ8ÀIˆmÓNˆà˜H�×0Ñ0Ö2ˆHß‹sÔE°d·n²nÓE�s�sŠsÔE°d·n²nÓE×EÔEØ—‘˜xÖ(ñ 3ð �s—x‘xÑ3©7Ó3Ó3Õ3Ð3r+   r;   )Ú	openstackÚopenstack_controller)ÚcinderÚglanceÚheatÚironicÚkeystoneÚmistralz(.*)?neutronznova.*r1   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú
short_descÚplugin_nameÚprofilesr   ÚstrÚoption_listr@   r)   r    r   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r(   r   r      se   ø‡ € à1€JØ&€KØ4€Hñ 	�& %Ð.EÔFÙ�) UÐ1EÔFÙ�( B°Ø>ô	@ð€Kò	€IòMò8)÷4ò 4r+   r   c                   ó   € ] tR t^XtRtRtR# )ÚRedHatOpenStackDatabaser;   N)zopenstack-selinux)rN   rO   rP   rQ   ÚpackagesrW   r;   r+   r(   r\   r\   X   s   † à&„Hr+   r\   c                   ó0   a € ] tR t^]t o RtR tR tRtV tR# )ÚUbuntuOpenStackDatabasec                ó†  € V P                  R4      pV'       d   V# V P                  4       pV'       dª    \        P                  ! V4      pVP	                  4       pVP                  R4       VP                  4       pV'       d9   V^ ,          '       d*   V^ ,          R\        4       9   d   VP                  4        # # R\        4       9   d   XP                  4        R# R#   \        P                  \        3 d"   pT P                  RT RT 24        Rp?LZRp?ii ; i  R\        4       9   d   XP                  4        i i ; i)zr
Return MySQL password.
1. User provided option (--dbpass)
2. SQLite (Ubuntu only)
3. Default empty (no password)
r   zASELECT data FROM kv WHERE key='leadership.settings.mysql.passwd';Úconnz/Failed to read MySQL password from SQLite file z: Nr   )r   Úfind_mysql_sqlite_fileÚsqlite3ÚconnectÚcursorÚexecuteÚfetchoneÚlocalsÚcloseÚErrorÚOSErrorÚ
_log_error)r!   r   Úsqlite_filera   re   ÚrowÚes   &      r(   r    Ú*UbuntuOpenStackDatabase.get_mysql_passworda   s  € ð —‘ Ó*ˆßØˆMð ×1Ñ1Ó3ˆßð!Ü—’ {Ó3�ØŸ™›�Ø—‘ðDôð —o‘oÓ'�ß˜3˜qŸ6œ6Ø˜q�6ð œV›XÔ%Ø—J‘J•Lð &�6œV›XÔ%Ø—J‘J”Ló øô —M‘M¤7Ð+ô Ø—‘ØEØ"�m 2 a Sð*÷ñ ûðûð œV›XÔ%Ø—J‘J•Lð &ús0   µAC ÂC ÃDÃ:DÄD ÄDÄD Ä"E c                ó"  € Rp V P                  V4       FI  pV RV R2pV R2pV P                  V4      '       g   K)  V R2pV P                  V4      '       g   KG  Vu # 	  R#   \         d    pT P                  RT 24        Rp?R# Rp?ii ; i)zh
Dynamically locate the Juju SQLite file for MySQL password.
Returns the full path if found, else None.
z/var/lib/juju/agents/Ú/z/charmz/metadata.yamlz/.unit-state.dbz$Failed to locate MySQL SQLite file: N)ÚlistdirÚpath_existsrk   rl   )r!   Ú	base_pathÚunit_dirÚ
charm_pathÚ	meta_filerm   ro   s   &      r(   rb   Ú.UbuntuOpenStackDatabase.find_mysql_sqlite_file‡   sª   € ð
 ,ˆ	ð	Ø ŸL™L¨Ö3�Ø )˜{¨!¨H¨:°VÐ<�
Ø)˜l¨.Ð9�	Ø×#Ñ# I×.Ô.Ø%/ L°Ð"@�KØ×'Ñ'¨×4Ô4Ø*Ò*ñ 4ñ øô	 ô 	Ø�O‰OØ6°q°cÐ:÷ð ñ ûð		ús(   „5A$ ¾A$ ÁA$ Á A$ Á$BÁ/B	Â	Br;   N)zmysql-server)	rN   rO   rP   rQ   r]   r    rb   rW   rX   rY   s   @r(   r_   r_   ]   s   ø‡ € à €Hò$÷Lð r+   r_   )
r2   rc   Úsos.report.pluginsr   r   r   r   r   r\   r_   r;   r+   r(   Ú<module>r{      s@   ðó 
Û ç LÓ LôD4˜ô D4ôN'Ð/°ô 'ô
<Ð/°ö <r+   