
    -_gK                     <    d dl m Z  d dlmZmZmZ  G d dee      Zy)    )glob)PluginRedHatPluginSoSPredicatec                   \    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 Zd	 Zd
 Zd Zd Zd Zy)IpazIdentity, policy, auditipa)identityapacheF)z/etc/ipa)
ipa-serverz
ipa-clientfreeipa-serverzfreeipa-clientNc                     | j                  d      s"| j                  d      s| j                  d      ry| j                  d      s| j                  d      ryy)	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selfs    8/usr/lib/python3/dist-packages/sos/report/plugins/ipa.pycheck_ipa_server_versionzIpa.check_ipa_server_version!   sS    \*##N3##$EF\*##$67    c                 d     t         fd j                   d j                   dfD              S )z Check if any CA is installed c              3   @   K   | ]  }j                  |        y wN)r   ).0pathr   s     r   	<genexpr>z#Ipa.ca_installed.<locals>.<genexpr>/   s!      
'+DT"
   z/conf/ca/CS.cfgz/conf/CS.cfg)anypki_tomcat_dir_v4pki_tomcat_dir_v3r   s   `r   ca_installedzIpa.ca_installed,   sC      
))*/:))*,70
 
 	
r   c                 ,     t         fddD              S )z" Check if IPA server is installed c              3   @   K   | ]  }j                  |        y wr   )r   )r   pkgr   s     r   r   z+Ipa.ipa_server_installed.<locals>.<genexpr>8   s!      
'*Dc"
r   )r   r   )r   r   s   `r   ipa_server_installedzIpa.ipa_server_installed6   s     
.N
 
 	
r   c                 h    |dk(  r| j                  g d       y|dk(  r| j                  g d       yy)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.*/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.*r(   N)add_copy_spec)r   ipa_versions     r   collect_pki_logszIpa.collect_pki_logs<   s?    $    D     !r   c                 |   d| _         d| _        d| _        d| _        | j	                         }| j                         r9| j                  d       | j                  d| d       | j                  g d       | j                         r"| j                  d	       | j                  |       | j                  g d
       |dk(  r| j                   }| j                  }n| j                  }| j                  }| j                  d| d       | j                  | d       | j                  ddddddddd| d| d| dg       | j                  g d       | j                  d       t        | dg      }| j                  d|d !       t        d"      D ]  }| j                  d|         | j                  d#d$i       y )%Nz/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 logs)z/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.conf)z 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/
certmonger)servicesgetcert listgetcert_list)predtagsz/etc/dirsrv/slapd-*/z(/var/log/ipa/healthcheck/healthcheck.logfreeipa_healthcheck_log)r    r!   pki_tomcat_conf_dir_v4pki_tomcat_conf_dir_v3r   r&   
_log_debugr)   r"   r+   add_cmd_outputadd_forbidden_pathadd_dir_listingr   r   add_file_tags)r   r*   pki_tomcat_dirpki_tomcat_conf_dirgetcert_predcertdb_directorys         r   setupz	Ipa.setupU   s   !:!2&>#&3# 335$$&OO9:OO.{m1=>    OOBC!!+. 
 	8 $!33N"&"="=!33N"&"="=on-=VDE12':;!&)--#&*k*"#=1"#>2!
 	 	 
 	 	:;#D.:^= 	N!/ 	 	1 !%%; < 	F/2B1C DE	F 	6)
 	r   c                     d}d}| j                  d||       | j                  ddd       d}t        |      D ]  }| j                  |dd	        y )
Nz(\s*arg \"password )[^\"]*z
\1********z/etc/named.confr1   z(pin=)'(\d+)'z\1'***'r.   z(key_pin=)(\d+)z\1***)do_file_subdo_cmd_output_subr   )r   matchsubstrequest_logsrequest_logs        r   postproczIpa.postproc   sf    -*E59~/)	+ =- 	'K[/%'	'r   )__name__
__module____qualname__
short_descplugin_nameprofiles
ipa_server
ipa_clientfilespackagesr    r!   r6   r7   r   r"   r&   r+   rA   rI    r   r   r   r      s]    *JK%HJJEOH!!	

2hT'r   r   N)r   sos.report.pluginsr   r   r   r   rT   r   r   <module>rV      s      A A}'&, }'r   