o
    O6ufÆ%  ã                   @   sN   d dl Z d dlZd dlZd dlmZmZmZ d dlmZ G dd„ deeƒZ	dS )é    N)ÚPluginÚRedHatPluginÚ	PluginOpt)Úis_executablec                   @   sh   e Zd ZdZdZdZdZejej	dd�Z
dZedd	d
d�ededd�edddd�gZdd„ Zdd„ ZdS )ÚOvirtzoVirt EngineÚovirt)Úvirt)
úovirt-enginezovirt-engine-dwhzovirt-engine-reportszovirt-engine-metricszovirt-engine-setupzovirt-vmconsolezovirt-scheduler-proxyÚrhevmz	rhevm-dwhzrhevm-reportsz}^/etc/
        (rhevm|ovirt-engine|ovirt-engine-dwh)/
        (engine.conf|ovirt-engine-dwhd.conf)
        (\.d/.+.conf.*?)?$)ÚflagsÚpatternzcENGINE_DB_PASSWORD:ENGINE_PKI_TRUST_STORE_PASSWORD:ENGINE_PKI_ENGINE_STORE_PASSWORD:DWH_DB_PASSWORDÚ
jbosstraceTz0Enable oVirt Engine JBoss stack trace collection)ÚdefaultÚdescúsensitive-keysz.Sensitive keys to be masked in post-processingÚheapdumpFz3Collect heap dumps from /var/log/ovirt-engine/dump/c              	      s´  |   d¡rO|  d¡rOd}d|› d�}|  |¡}dd„ |d  ¡ D ƒ}|s/| j d	¡ |  d	¡ |D ]}z	t |t	j
¡ W q1 tyN   | j d
|› �¡ Y q1w |  ddg¡ |   d¡se|  d¡ |  d¡ g d¢}ddg}|  ddg¡ |  dd„ |D ƒ¡ |  dd„ |D ƒ¡ d}d}	d‰ t|ƒrš|  |› d�¡ t|	ƒr¦|  |	› d�¡ tdƒrºg d¢}
|  ‡ fdd„|
D ƒ¡ |  g d¢¡ |  dd d!d"œ¡ |  d#d$g¡ |  d%d&g¡ d S )'Nr   r	   z)^ovirt-engine\ -server.*jboss-modules.jarz
pgrep -f 'ú'c                 S   s   g | ]}t |ƒ‘qS © )Úint©Ú.0Úxr   r   ú:/usr/lib/python3/dist-packages/sos/report/plugins/ovirt.pyÚ
<listcomp>G   ó    zOvirt.setup.<locals>.<listcomp>ÚoutputzUnable to get ovirt-engine pidzUnable to send signal to z/etc/ovirt-engine/.pgpassz/etc/rhevm/.pgpassr   z/var/log/ovirt-engine/dumpz!ls -l /var/log/ovirt-engine/dump/)z/etc/pki/ovirt-engine/ca.pemz#/etc/pki/ovirt-engine/apache-ca.pemz&/etc/pki/ovirt-engine/certs/engine.cerz&/etc/pki/ovirt-engine/certs/apache.cerz//etc/pki/ovirt-engine/certs/websocket-proxy.cerz%/etc/pki/ovirt-engine/certs/jboss.cerz-/etc/pki/ovirt-engine/certs/imageio-proxy.cerz2/etc/pki/ovirt-engine/certs/ovirt-provider-ovn.cer)Úmypassú!/etc/pki/ovirt-engine/.truststore)Úchangeitú)/var/lib/ovirt-engine/external_truststorezengine-config --allzengine-config -dc                 S   s   g | ]}d |› d�‘qS )zopenssl x509 -in z -text -nooutr   )r   Úcr   r   r   r   r   s    þc                 S   s    g | ]\}}d |› d|› �‘qS )zkeytool -list -storepass z -rfc -keystore r   )r   Úpr    r   r   r   r   w   s    ÿþzengine-manage-domainszovirt-engine-extensions-toolzovirt-aaa-jdbc-toolz listz info list-extensions)zquery --what=userzquery --what=groupzsettings showc                    s   g | ]	}ˆ › d |› �‘qS )ú r   )r   Úsc©Ú	jdbc_toolr   r   r   �   s    )ú/etc/ovirt-enginez/etc/rhevm/z/etc/ovirt-engine-dwhz/etc/ovirt-engine-reportsz/etc/ovirt-engine-metricsz/etc/ovirt-engine-setupz/etc/ovirt-vmconsolez/var/log/ovirt-enginez/var/log/ovirt-engine-dwhz/var/log/ovirt-engine-reportsz/var/log/ovirt-scheduler-proxyz/var/log/rhevmz/etc/sysconfig/ovirt-enginez/usr/share/ovirt-engine/confz/var/log/ovirt-guest-agentz'/var/lib/ovirt-engine/setup-history.txtz#/var/lib/ovirt-engine/setup/answersr   z/var/tmp/ovirt-engine/configz*/var/lib/ovirt-engine/jboss_runtime/configz2/var/lib/ovirt-engine-reports/jboss_runtime/configÚovirt_engine_confdÚovirt_engine_boot_logÚovirt_engine_console_log)z"/etc/ovirt-engine/engine.conf.d/.*z/var/log/ovirt-engine/boot.logz!/var/log/ovirt-engine/console.logz/etc/pki/ovirt-engine/keysz/etc/pki/ovirt-engine/privatez/etc/pki/ovirt-engine/r   )Ú
get_optionÚis_installedÚexec_cmdÚ
splitlinesÚsoslogÚerrorÚ	add_alertÚosÚkillÚsignalÚSIGQUITÚOSErrorÚadd_forbidden_pathÚadd_cmd_outputr   Úadd_copy_specÚadd_file_tags)ÚselfÚengine_patternÚpgrepÚresÚengine_pidsÚpidÚcertificatesÚ	keystoresÚmanage_domainsÚextensions_toolÚsubcmdsr   r$   r   ÚsetupB   sv   

ÿþ


þü
þ
ýú
þ
þzOvirt.setupc                 C   s  dD ]	}|   |dd¡ qd}|D ]}|   d|› �dd¡ q|   dd	d¡ g d
¢}|D ]}|  d|¡}|   |dd¡ q*| j}|  d¡}|rJ|durJ|}dd„ | d¡D ƒ}	|  | jdd |	¡› d�d¡ dD ]}
|  dd|
› d�d¡ qeg d¢}dd |¡› d�}|  d|d¡ dS ) z+
        Obfuscate sensitive keys.
        )z8/etc/ovirt-engine/engine-config/engine-config.propertiesz//etc/rhevm/rhevm-config/rhevm-config.propertiesz(Password.type)=(.*)z\1=********)zovirt-engine.xmlz0ovirt-engine_history/current/ovirt-engine.v1.xmlz*ovirt-engine_history/ovirt-engine.boot.xmlz-ovirt-engine_history/ovirt-engine.initial.xmlz*ovirt-engine_history/ovirt-engine.last.xmlz/var/tmp/ovirt-engine/config/z(<password>)(.*)(</password>)z\1********\3z*/etc/ovirt-engine/redhatsupportplugin.confz(proxyPassword)=(.*))zlogcollector.confzimageuploader.confzisouploader.confr&   z(passwd|pg-pass)=(.*)r   Tc                 S   s   g | ]}|r|‘qS r   r   r   r   r   r   r   í   r   z"Ovirt.postproc.<locals>.<listcomp>ú:ú(ú|z)=(.*))ÚpasswordÚOVESETUP_CONFIG_ADMIN_SETUPz&/var/lib/ovirt-engine/setup/answers/.*z(?P<key>[^=]*z	[^=]*)=.*z\g<key>=********)zvars.passwordz!pool.default.auth.simple.passwordz$pool.default.ssl.truststore.passwordzconfig.datasource.dbpasswordz(^\s*#*(z)\s*=\s*)(.*)z$/etc/ovirt-engine/aaa/.*\.propertiesz\1*********N)Údo_file_subÚ	path_joinÚDEFAULT_SENSITIVE_KEYSr*   ÚsplitÚdo_path_regex_subÚDB_PASS_FILESÚjoin)r:   ÚproÚengine_filesÚfilenameÚpasswd_filesÚ	conf_fileÚ	conf_pathÚsensitive_keysÚkeys_optÚkey_listÚitemÚprotect_keysÚregexpr   r   r   Úpostproc»   s^   ýýýý
ý
ýÿzOvirt.postprocN)Ú__name__Ú
__module__Ú__qualname__Ú
short_descÚplugin_nameÚprofilesÚpackagesÚreÚcompileÚVERBOSErP   rM   r   Úoption_listrE   r^   r   r   r   r   r      s.    þ	ÿÿÿÿû	yr   )
r1   rf   r3   Úsos.report.pluginsr   r   r   Úsos.utilitiesr   r   r   r   r   r   Ú<module>   s   