o
    O6uf™  ã                   @   s^   d dl Z d dlmZ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ÚUbuntuPluginÚ	PluginOptc                   @   sL   e Zd ZdZdZdZedddd�gZdZd	Z	d
Z
dd„ Zdd„ Zdd„ Zd	S )ÚOpenStackKeystonezOpenStack KeystoneÚopenstack_keystone)Ú	openstackÚopenstack_controllerÚnopwTz!do not collect keystone passwords)ÚdefaultÚdescz./var/lib/config-data/puppet-generated/keystoneNÚ c                 C   s&  |   dddd| jd | jd | jd | jd | jd	 | jd
 | jd g¡ |  d¡r7|   dd| j› d�g¡ n|   dd| j› d�g¡ |  d¡}|d | _|d dksY|  | j¡s\d| _|   | j¡ dd„ dD ƒ}dd„ dD ƒ}t|ƒrxt|ƒs| j	 
d¡ n
|  d¡ |  d¡ |  dd d!œ¡ d S )"Nz'/etc/keystone/default_catalog.templatesz/etc/keystone/keystone.confz/etc/keystone/logging.confz/etc/keystone/policy.jsonz/etc/keystone/*.confz/etc/keystone/*.jsonz/etc/httpd/conf/ú/etc/httpd/conf.d/z /etc/httpd/conf.modules.d/*.confz/var/spool/cron/z/etc/my.cnf.d/tripleo.cnfÚall_logsz/var/log/keystone/z	/var/log/z*/keystone*z/var/log/keystone/*.logz*/keystone*.logzDcrudini --get /etc/keystone/keystone.conf identity domain_config_dirÚoutputÚstatusr   z/etc/keystone/domainsc                 S   ó   g | ]}|t jv ‘qS © ©ÚosÚenviron©Ú.0Úpr   r   úG/usr/lib/python3/dist-packages/sos/report/plugins/openstack_keystone.pyÚ
<listcomp>D   ó    z+OpenStackKeystone.setup.<locals>.<listcomp>)ÚOS_USERNAMEÚOS_PASSWORDc                 S   r   r   r   r   r   r   r   r   G   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 endpoint listzopenstack catalog listÚkeystone_confÚkeystone_log)z.*/etc/keystone/keystone.confz/var/log/keystone/keystone.log)Úadd_copy_specÚvar_puppet_genÚ
get_optionÚ	apachepkgÚcollect_cmd_outputÚdomain_config_dirÚ
path_isdirÚallÚanyÚsoslogÚwarningÚadd_cmd_outputÚadd_file_tags)ÚselfÚexec_outÚvars_allÚvars_anyr   r   r   Úsetup   sR   õ
þþÿ

ÿ

þzOpenStackKeystone.setupc                 C   s:   |   d||¡ |   | jd ||¡ |   | jd ||¡ dS )z Apply regex substitution z/etc/keystone/*r   N)Údo_path_regex_subr%   )r1   ÚregexpÚsubstr   r   r   Úapply_regex_subW   s   þþz!OpenStackKeystone.apply_regex_subc                 C   sh   g d¢}dg}d  |¡}|  dd  |¡› d�d¡ |  d|› d�d¡ |  | jdd  |¡› d	�d
¡ d S )N)ÚpasswordÚqpid_passwordÚrabbit_passwordÚssl_key_passwordÚldap_dns_passwordÚneutron_admin_passwordÚhost_passwordÚadmin_passwordÚadmin_tokenÚca_passwordÚtransport_urlÚOIDCClientSecretÚ
connectionú|z(^\s*(z)\s*(=\s*)?)(.*)z\1*********z!)\s*=\s*(.*)://(\w*):)(.*)(@(.*))z\1*********\6z)\s*=\s*)(.*)z
\1********)Újoinr9   r6   r)   )r1   Úprotect_keysÚconnection_keysÚjoin_con_keysr   r   r   Úpostprocc   s    
þ
þýzOpenStackKeystone.postproc)Ú__name__Ú
__module__Ú__qualname__Ú
short_descÚplugin_nameÚprofilesr   Úoption_listr%   r'   r)   r5   r9   rL   r   r   r   r   r      s    ÿÿ8r   c                   @   ó   e Zd ZdZdZdS )ÚDebianKeystoneÚapache2)Úkeystonezpython-keystonezpython3-keystoneN©rM   rN   rO   r'   Úpackagesr   r   r   r   rU      ó    rU   c                   @   rT   )ÚRedHatKeystoneÚhttpd)zopenstack-selinuxNrX   r   r   r   r   r[   ‰   rZ   r[   )
r   Úsos.report.pluginsr   r   r   r   r   r   rU   r[   r   r   r   r   Ú<module>   s
   n
