o
    íìg`  ã                   @   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 )ÚOpenStackHeatzOpenStack HeatÚopenstack_heat)Ú	openstackÚopenstack_controller)ú
.*heat_apiz*/var/lib/config-data/puppet-generated/heatzopenstack-heat-api.servicec           	      C   s–  |   d¡}|  | j¡s|rzd}|rd| j d }| jd| d dd� d	d
„ dD ƒ}dd
„ dD ƒ}t|ƒr9t|ƒs@| j d¡ n:|  d¡ |  	d¡}|d dkrz|d }| 
¡ dd… D ]}| ¡ d }d|› �}|  |¡ d|› d�}|  |¡ q\|  d¡r†|  dg¡ n|  dg¡ |  d| jd | jd | jd | jd | jd  | jd! | jd" | jd# | jd$ | jd% | jd& | jd' g¡ |  d(d)i¡ d S )*Nr
   Ú z--config-dir z_api/etc/heat/zheat-manage z db_versionÚheat_db_version)Úsuggest_filenamec                 S   ó   g | ]}|t jv ‘qS © ©ÚosÚenviron©Ú.0Úpr   r   úC/usr/lib/python3/dist-packages/sos/report/plugins/openstack_heat.pyÚ
<listcomp>+   ó    z'OpenStackHeat.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 stack list --all-projects --nestedz#openstack stack list --all-projectsÚstatusr   Úoutputé   éÿÿÿÿé   zopenstack stack show zopenstack stack resource list z -n 10Úall_logsz/var/log/heat/z/var/log/heat/*.logz
/etc/heat/z/etc/my.cnf.d/tripleo.cnfz_api/etc/httpd/conf/z_api/etc/httpd/conf.d/z$_api/etc/httpd/conf.modules.d/*.confz_api/var/spool/cron/heatz_api_cfn/etc/heat/z_api_cfn/etc/httpd/conf/z_api_cfn/etc/httpd/conf.d/z(_api_cfn/etc/httpd/conf.modules.d/*.confz_api_cfn/var/spool/cron/heatz/var/log/heat/heat-engine.logÚheat_engine_log)Úcontainer_existsÚis_service_runningÚservice_nameÚvar_puppet_genÚadd_cmd_outputÚallÚanyÚsoslogÚwarningÚcollect_cmd_outputÚ
splitlinesÚsplitÚ
get_optionÚadd_copy_specÚadd_file_tags)	ÚselfÚin_containerÚheat_configÚvars_allÚvars_anyÚresÚheat_stacksÚstackÚcmdr   r   r   Úsetup   sh   
ÿ
þ
ÿ


ÿÿó
ÿzOpenStackHeat.setupc                 C   sN   |   d||¡ |   | jd ||¡ |   | jd ||¡ |   | jd ||¡ dS )z Apply regex substitution z/etc/heat/*z_api/etc/heat/*z_api_cfn/etc/heat/*N)Údo_path_regex_subr'   )r3   ÚregexpÚsubstr   r   r   Úapply_regex_subd   s    þþþþzOpenStackHeat.apply_regex_subc                 C   sJ   g d¢}dg}d  |¡}|  dd  |¡› d�d¡ |  d|› d�d¡ d S )	N)Úadmin_passwordÚmemcache_secret_keyÚpasswordÚqpid_passwordÚrabbit_passwordÚstack_domain_admin_passwordÚtransport_urlÚauth_encryption_keyÚ
connectionú|z(^\s*(z)\s*=\s*)(.*)z\1*********z!)\s*=\s*(.*)://(\w*):)(.*)(@(.*))z\1*********\6)Újoinr@   )r3   Úprotect_keysÚconnection_keysÚjoin_con_keysr   r   r   Úpostprocv   s   
þ
þzOpenStackHeat.postprocN)Ú__name__Ú
__module__Ú__qualname__Ú
short_descÚplugin_nameÚprofilesÚ
containersr'   r&   r<   r@   rO   r   r   r   r   r      s    Kr   c                   @   s   e Zd ZdZdZdS )Ú
DebianHeat)zheat-apizheat-api-cfnzheat-api-cloudwatchzheat-commonzheat-enginezpython-heatzpython3-heatzheat-api.serviceN)rP   rQ   rR   Úpackagesr&   r   r   r   r   rW   Š   s    	rW   c                   @   s   e Zd ZdZdS )Ú
RedHatHeat)zopenstack-selinuxN)rP   rQ   rR   rX   r   r   r   r   rY   ˜   s    rY   )	r   Úsos.report.pluginsr   r   r   r   r   rW   rY   r   r   r   r   Ú<module>   s
   z