U
    -_gK                     @   s6   d dl m Z  d dlmZmZmZ G dd deeZdS )    )glob)PluginRedHatPluginSoSPredicatec                   @   sh   e Zd ZdZdZdZd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d Zdd Zdd ZdS )IpazIdentity, policy, auditZipa)ZidentityZapacheF)z/etc/ipa)
ipa-serverz
ipa-clientfreeipa-serverzfreeipa-clientNc                 C   s>   |  ds| ds| dr"dS |  ds6| dr:dS dS )	z Get IPA server version z
pki-serverz/var/lib/pkiz/usr/share/doc/ipa-server-4.2.0v4z
pki-commonz/var/lib/pki-ca/v3N)is_installedpath_existsself r   8/usr/lib/python3/dist-packages/sos/report/plugins/ipa.pycheck_ipa_server_version!   s    

zIpa.check_ipa_server_versionc                    s*   t  fdd j d j dfD S )z Check if any CA is installed c                 3   s   | ]}  |V  qd S N)r   ).0pathr   r   r   	<genexpr>/   s    z#Ipa.ca_installed.<locals>.<genexpr>z/conf/ca/CS.cfgz/conf/CS.cfg)anypki_tomcat_dir_v4pki_tomcat_dir_v3r   r   r   r   ca_installed,   s
    

zIpa.ca_installedc                    s   t  fdddD S )z" Check if IPA server is installed c                 3   s   | ]}  |V  qd S r   )r   )r   pkgr   r   r   r   8   s    z+Ipa.ipa_server_installed.<locals>.<genexpr>)r   r   )r   r   r   r   r   ipa_server_installed6   s    zIpa.ipa_server_installedc                 C   sJ   |dkr(|  dddddddd	d
dg
 n|dkrF|  ddddddg dS )z Collect PKI logs r	   z!/var/log/pki/pki-tomcat/ca/debug*z!/var/log/pki/pki-tomcat/ca/systemz'/var/log/pki/pki-tomcat/ca/transactionsz(/var/log/pki/pki-tomcat/ca/selftests.logz"/var/log/pki/pki-tomcat/catalina.*z/var/log/pki/pki-ca-spawn.*z"/var/log/pki/pki-tomcat/kra/debug*z"/var/log/pki/pki-tomcat/kra/systemz(/var/log/pki/pki-tomcat/kra/transactionsz/var/log/pki/pki-kra-spawn.*r
   z/var/log/pki-ca/debugz/var/log/pki-ca/systemz/var/log/pki-ca/transactionsz/var/log/pki-ca/selftests.logz/var/log/pki-ca/catalina.*N)add_copy_spec)r   ipa_versionr   r   r   collect_pki_logs<   s,    zIpa.collect_pki_logsc                 C   s  d| _ d| _d| _d| _|  }|  rZ| d | d| d | dd	d
dddg |  rv| d | 	| | dddddddddddddddddd d!d"d#d$d%d&g |d'kr| j }| j}n| j}| j}| 
d(| d) | | d* | d+d,d-d.d/d0d1d2d3| d4| d5| d6g | 
d7d8d9d:d;d<g | d= t| d>gd?}| j
d@|dAdB tdCD ]}| 
d(|  qn| dDdEi d S )FNz/var/lib/pki/pki-tomcatz/var/lib/pki-caz/etc/pki/pki-tomcat/caz/etc/pki-cazIPA server install detectedzIPA version is []z/var/log/ipaserver-install.logz"/var/log/ipaserver-kra-install.logz!/var/log/ipaserver-enable-sid.logz/var/log/ipareplica-install.logz"/var/log/ipareplica-ca-install.logz/var/log/ipa-custodia.audit.logz$CA is installed: retrieving PKI logsz/var/log/ipaclient-install.logz/var/log/ipaupgrade.logz/var/log/krb5kdc.logz#/var/log/dirsrv/slapd-*/logs/accessz#/var/log/dirsrv/slapd-*/logs/errorsz/etc/dirsrv/slapd-*/dse.ldifz&/etc/dirsrv/slapd-*/schema/99user.ldifz
/etc/hostsz/etc/httpd/alias/*z/etc/named.*z/etc/ipa/ca.crtz/etc/ipa/default.confz/etc/ipa/kdcproxy/kdcproxy.confz$/etc/ipa/kdcproxy/ipa-kdc-proxy.confz/etc/ipa/kdcproxy.confz/root/.ipa/log/cli.log#/var/lib/certmonger/requests/[0-9]*z/var/lib/certmonger/cas/[0-9]*z/var/lib/ipa/ra-agent.pemz/var/lib/ipa/certs/httpd.crtz/var/kerberos/krb5kdc/kdc.crtz(/var/lib/ipa/sysrestore/sysrestore.statez)/var/log/ipa/healthcheck/healthcheck.log*z/var/log/ipaepn.log*r	   zcertutil -L -d z/aliasz/CS.cfgz/etc/pki/nssdb/key*z/etc/dirsrv/slapd-*/key*z/etc/dirsrv/slapd-*/pin.txtz/etc/dirsrv/slapd-*/pwdfile.txtz/etc/httpd/alias/ipasession.keyz/etc/httpd/alias/key*z/etc/httpd/alias/pin.txtz/etc/httpd/alias/pwdfile.txtz/etc/named.keytabz/alias/key*z/flatfile.txtz/password.confz certutil -L -d /etc/httpd/alias/zpki-server cert-find --show-allz%pki-server subsystem-cert-validate caz klist -ket /etc/dirsrv/ds.keytabz%klist -ket /etc/httpd/conf/ipa.keytabz,klist -ket /var/lib/ipa/gssproxy/http.keytabz/etc/dirsrv/slapd-*/schema/Z
certmonger)servicesgetcert listZgetcert_list)ZpredZtagsz/etc/dirsrv/slapd-*/z(/var/log/ipa/healthcheck/healthcheck.logZfreeipa_healthcheck_log)r   r   pki_tomcat_conf_dir_v4pki_tomcat_conf_dir_v3r   r   Z
_log_debugr   r   r   Zadd_cmd_outputZadd_forbidden_pathZadd_dir_listingr   r   Zadd_file_tags)r   r   Zpki_tomcat_dirZpki_tomcat_conf_dirZgetcert_predZcertdb_directoryr   r   r   setupU   s    
	

	
z	Ipa.setupc                 C   sH   d}d}|  d|| | ddd d}t|D ]}|  |dd	 q0d S )
Nz(\s*arg \"password )[^\"]*z
\1********z/etc/named.confr"   z(pin=)'(\d+)'z\1'***'r    z(key_pin=)(\d+)z\1***)Zdo_file_subZdo_cmd_output_subr   )r   matchZsubstZrequest_logsZrequest_logr   r   r   postproc   s    zIpa.postproc)__name__
__module____qualname__Z
short_descZplugin_nameZprofilesZ
ipa_serverZ
ipa_clientfilesZpackagesr   r   r#   r$   r   r   r   r   r%   r'   r   r   r   r   r      s"   
jr   N)r   Zsos.report.pluginsr   r   r   r   r   r   r   r   <module>   s   