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                   @   s8   e Zd ZdZdZdZdZdZdd„ Zdd	„ Z	d
d„ Z
dS )ÚOpenStackAodhzOpenStack Alarm serviceÚopenstack_aodh)Ú	openstackÚopenstack_controllerz*/var/lib/config-data/puppet-generated/aodhNc              	   C   s¾   |   d| jd | jd | jd | jd | jd g¡ |  d¡r,|   dd	| j› d
�g¡ n|   dd	| j› d�g¡ dd„ dD ƒ}dd„ dD ƒ}t|ƒrNt|ƒsV| j d¡ d S |  g d¢¡ d S )Nz
/etc/aodh/z/etc/aodh/*z/etc/httpd/conf/*z/etc/httpd/conf.d/*z#/etc/httpd/conf.modules.d/wsgi.confz/etc/my.cnf.d/tripleo.cnfÚall_logsz/var/log/aodh/*z	/var/log/z*/aodh*z/var/log/aodh/*.logz*/aodh*.logc                 S   ó   g | ]}|t jv ‘qS © ©ÚosÚenviron©Ú.0Úpr   r   úC/usr/lib/python3/dist-packages/sos/report/plugins/openstack_aodh.pyÚ
<listcomp>.   ó    z'OpenStackAodh.setup.<locals>.<listcomp>)ÚOS_USERNAMEÚOS_PASSWORDÚOS_AUTH_TYPEc                 S   r   r   r   r   r   r   r   r   2   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aodh --versionzaodh capabilities listzaodh alarm list)	Úadd_copy_specÚvar_puppet_genÚ
get_optionÚ	apachepkgÚallÚanyÚsoslogÚwarningÚadd_cmd_output)ÚselfÚvars_allÚvars_anyr   r   r   Úsetup   s,   ú
	þþzOpenStackAodh.setupc                 C   s&   |   d||¡ |   | jd ||¡ dS )z Apply regex substitution z/etc/aodh/aodh.confN)Údo_path_regex_subr   )r$   ÚregexpÚsubstr   r   r   Úapply_regex_subA   s   þþzOpenStackAodh.apply_regex_subc                 C   sL   g d¢}g d¢}|   dd |¡› d�d¡ d |¡}|   d|› d�d¡ d S )	N)Úadmin_passwordÚconnection_passwordÚhost_passwordÚos_passwordÚpasswordÚqpid_passwordÚrabbit_passwordÚmemcache_secret_key)Ú
connectionÚbackend_urlÚtransport_urlz(^\s*(ú|z)\s*=\s*)(.*)z\1*********z!)\s*=\s*(.*)://(\w*):)(.*)(@(.*))z\1*********\6)r+   Újoin)r$   Úprotect_keysÚconnection_keysÚjoin_con_keysr   r   r   ÚpostprocL   s   þ

þzOpenStackAodh.postproc)Ú__name__Ú
__module__Ú__qualname__Ú
short_descÚplugin_nameÚprofilesr   r   r'   r+   r<   r   r   r   r   r      s    (r   c                   @   s   e Zd ZdZdZdS )ÚDebianOpenStackAodhÚapache2)zaodh-apizaodh-commonzaodh-evaluatorzaodh-notifierzaodh-listenerzpython-aodhzpython3-aodhN)r=   r>   r?   r   Úpackagesr   r   r   r   rC   a   s    rC   c                       s$   e Zd ZdZdZ‡ fdd„Z‡  ZS )ÚRedHatOpenStackAodhÚhttpd)zopenstack-selinuxc                    s8   t ƒ  ¡  |  d¡r|  ddg¡ d S |  ddg¡ d S )Nr
   z$/var/log/containers/httpd/aodh-api/*z/var/log/containers/aodh/*z(/var/log/containers/httpd/aodh-api/*.logz/var/log/containers/aodh/*.log)Úsuperr'   r   r   )r$   ©Ú	__class__r   r   r'   t   s   


þ
þzRedHatOpenStackAodh.setup)r=   r>   r?   r   rE   r'   Ú__classcell__r   r   rI   r   rF   o   s    rF   )	r   Úsos.report.pluginsr   r   r   r   r   rC   rF   r   r   r   r   Ú<module>   s
   Q