U
    -_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 HeatZopenstack_heat)Z	openstackZopenstack_controller)
.*heat_apiz*/var/lib/config-data/puppet-generated/heatzopenstack-heat-api.servicec           	      C   s  |  d}| | js|rd}|r0d| j d }| jd| d dd d	d
 dD }dd
 dD }t|rrt|s| jd nt| d | 	d}|d dkr|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_versionZheat_db_version)Zsuggest_filenamec                 S   s   g | ]}|t jkqS  osenviron.0pr	   r	   C/usr/lib/python3/dist-packages/sos/report/plugins/openstack_heat.py
<listcomp>+   s     z'OpenStackHeat.setup.<locals>.<listcomp>)ZOS_USERNAMEZOS_PASSWORDc                 S   s   g | ]}|t jkqS r	   r
   r   r	   r	   r   r   .   s     )ZOS_TENANT_NAMEZ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-projectsZstatusr   output      zopenstack stack show zopenstack stack resource list z -n 10Z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.logZheat_engine_log)Zcontainer_existsZis_service_runningservice_namevar_puppet_genZadd_cmd_outputallanyZsoslogZwarningZcollect_cmd_output
splitlinessplitZ
get_optionZadd_copy_specZadd_file_tags)	selfZin_containerZheat_configZvars_allZvars_anyresZheat_stacksstackcmdr	   r	   r   setup   sj    




 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)Zdo_path_regex_subr   )r   ZregexpZsubstr	   r	   r   apply_regex_subd   s(        zOpenStackHeat.apply_regex_subc                 C   sV   ddddddddg}d	g}d
 |}| dd
 | dd | d| dd d S )NZadmin_passwordZmemcache_secret_keyZpasswordZqpid_passwordZrabbit_passwordZstack_domain_admin_passwordZtransport_urlZauth_encryption_keyZ
connection|z(^\s*(z)\s*=\s*)(.*)z\1*********z!)\s*=\s*(.*)://(\w*):)(.*)(@(.*))z\1*********\6)joinr!   )r   Zprotect_keysZconnection_keysZjoin_con_keysr	   r	   r   postprocv   s&         

zOpenStackHeat.postprocN)__name__
__module____qualname__Z
short_descZplugin_nameZprofilesZ
containersr   r   r    r!   r$   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)r%   r&   r'   packagesr   r	   r	   r	   r   r(      s   	r(   c                   @   s   e Zd ZdZdS )
RedHatHeat)zopenstack-selinuxN)r%   r&   r'   r)   r	   r	   r	   r   r*      s   r*   )	r   Zsos.report.pluginsr   r   r   r   r   r(   r*   r	   r	   r	   r   <module>   s   z