o
    O6uf±  ã                   @   sZ   d dl Z d dlmZmZmZmZ G dd„ deƒZG dd„ deeeƒZG dd„ deeƒZdS )	é    N)ÚPluginÚRedHatPluginÚDebianPluginÚUbuntuPluginc                   @   s<   e Zd ZdZdZdZdZdZdZdd„ Z	d	d
„ Z
dd„ ZdS )ÚOpenStackGlancezOpenStack GlanceÚopenstack_glance)Ú	openstackÚopenstack_controller)Ú
glance_apiz0/var/lib/config-data/puppet-generated/glance_apizopenstack-glance-api.servicec           	      C   s,  |   d¡r|  dg¡ n|  dg¡ |  d| jd | jd g¡ |  d¡}|  | j¡s-|rŠd}|r8d| j d }| jd	| d
 dd� dd„ dD ƒ}dd„ dD ƒ}t|ƒrYt|ƒs`| j	 
d¡ n*|  d¡}|d dkrŠ|d }| ¡ dd… D ]}| ¡ d }d|› �}|  |¡ qw|  dddddœ¡ d S ) NÚall_logsz/var/log/glance/z/var/log/glance/*.logz/etc/glance/z/etc/my.cnf.d/tripleo.cnfr
   Ú z--config-dir zglance-manage z db_versionÚglance_db_version)Úsuggest_filenamec                 S   ó   g | ]}|t jv ‘qS © ©ÚosÚenviron©Ú.0Úpr   r   úE/usr/lib/python3/dist-packages/sos/report/plugins/openstack_glance.pyÚ
<listcomp>=   ó    z)OpenStackGlance.setup.<locals>.<listcomp>)ÚOS_USERNAMEÚOS_PASSWORDc                 S   r   r   r   r   r   r   r   r   @   r   )ÚOS_TENANT_NAMEÚOS_PROJECT_NAMEz}Not all environment variables set. Source the environment file for the user intended to connect to the OpenStack environment.zopenstack image list --longÚstatusr   Úoutputé   éÿÿÿÿé   zopenstack image show Úglance_api_confÚglance_cache_confÚglance_registry_confÚglance_api_log)z/etc/glance/glance-api.confz/etc/glance/glance-cache.confz /etc/glance/glance-registry.confz/var/log/glance/api.log)Ú
get_optionÚadd_copy_specÚvar_puppet_genÚcontainer_existsÚis_service_runningÚservice_nameÚadd_cmd_outputÚallÚanyÚsoslogÚwarningÚcollect_cmd_outputÚ
splitlinesÚsplitÚadd_file_tags)	ÚselfÚin_containerÚglance_configÚvars_allÚvars_anyÚresÚglance_imagesÚimageÚcmdr   r   r   Úsetup   sT   
ÿÿý
ÿ
þÿ
üzOpenStackGlance.setupc                 C   s&   |   d||¡ |   | jd ||¡ dS )z Apply regex substitution z/etc/glance/*N)Údo_path_regex_subr)   )r6   ÚregexpÚsubstr   r   r   Úapply_regex_sub[   s
   þzOpenStackGlance.apply_regex_subc                 C   sJ   g d¢}dg}|   dd |¡› d�d¡ d |¡}|   d|› d�d¡ d S )	N)	Úadmin_passwordÚpasswordÚqpid_passwordÚrabbit_passwordÚs3_store_secret_keyÚssl_key_passwordÚvmware_server_passwordÚtransport_urlÚmemcache_secret_keyÚ
connectionz(^\s*(ú|z)\s*=\s*)(.*)z\1*********z!)\s*=\s*(.*)://(\w*):)(.*)(@(.*))z\1*********\6)rC   Újoin)r6   Úprotect_keysÚconnection_keysÚjoin_con_keysr   r   r   Úpostprocc   s   þ

þzOpenStackGlance.postprocN)Ú__name__Ú
__module__Ú__qualname__Ú
short_descÚplugin_nameÚprofilesÚ
containersr)   r,   r?   rC   rS   r   r   r   r   r      s    >r   c                   @   s   e Zd ZdZdZdS )ÚDebianGlance)Úglancez
glance-apizglance-clientzglance-commonzglance-registryzpython-glancezpython3-glancezapache2.serviceN)rT   rU   rV   Úpackagesr,   r   r   r   r   r[   y   s    	r[   c                   @   s   e Zd ZdZdS )ÚRedHatGlance)zopenstack-selinuxN)rT   rU   rV   r]   r   r   r   r   r^   ‡   s    r^   )	r   Úsos.report.pluginsr   r   r   r   r   r[   r^   r   r   r   r   Ú<module>   s
   f