U
    -_g%                     @   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 EngineZovirt)Zvirt)
ovirt-enginezovirt-engine-dwhzovirt-engine-reportszovirt-engine-metricszovirt-engine-setupzovirt-vmconsolezovirt-scheduler-proxyZ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)defaultZdescsensitive-keysz.Sensitive keys to be masked in post-processingheapdumpFz3Collect heap dumps from /var/log/ovirt-engine/dump/c                    s  |  dr| drd}d| d}| |}dd |d  D }|s^| jd	 | d	 |D ]>}zt|t	j
 W qb tk
r   | jd
|  Y qbX qb| ddg |  ds| d | d ddddddddg}ddg}| ddg | dd |D  | dd |D  d}d}	d  t|rF| | d! t|	r`| |	 d" td rd#d$d%g}
|  fd&d|
D  | d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;g | d<d=d>d? | d@dAg | dBdCg d S )DNr
   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   s     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/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)Zmypass!/etc/pki/ovirt-engine/.truststore)Z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-extensionszquery --what=userzquery --what=groupzsettings showc                    s   g | ]}  d | qS ) r   )r   ZscZ	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/configZovirt_engine_confdZovirt_engine_boot_logZ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_optionZis_installedZexec_cmd
splitlinesZsoslogerrorZ	add_alertoskillsignalSIGQUITOSErrorZadd_forbidden_pathZadd_dir_listingZadd_cmd_outputr   Zadd_copy_specZadd_file_tags)selfZengine_patternZpgrepresZengine_pidspidZcertificatesZ	keystoresZmanage_domainsZextensions_toolZsubcmdsr   r   r   setupB   s    










zOvirt.setupc                 C   s  dD ]}|  |dd qd}|D ]}|  d| dd q |  dd	d d
ddg}|D ]}| d|}|  |dd qV| j}| d}|r|dk	r|}dd |dD }	| | jdd|	 dd dD ]}
| dd|
 dd qddddg}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      s      z"Ovirt.postproc.<locals>.<listcomp>:(|z)=(.*))ZpasswordZ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)Zdo_file_subZ	path_joinDEFAULT_SENSITIVE_KEYSr   splitZdo_path_regex_subDB_PASS_FILESjoin)r&   ZproZengine_filesfilenameZpasswd_filesZ	conf_fileZ	conf_pathZsensitive_keysZkeys_optZkey_listitemZprotect_keysZregexpr   r   r   postproc   sl    

zOvirt.postprocN)__name__
__module____qualname__Z
short_descZplugin_nameZprofilesZpackagesrecompileVERBOSEr/   r-   r   Zoption_listr)   r3   r   r   r   r   r      s,   		yr   )
r!   r7   r#   Zsos.report.pluginsr   r   r   Zsos.utilitiesr   r   r   r   r   r   <module>   s
   