U
    -_gj                     @   s&   d dl mZmZ G dd deeZdS )    )PluginRedHatPluginc                   @   s8   e Zd ZdZdZdZdZdZdd Zdd	 Z	d
d Z
dS )DirectoryServerzDirectory ServerZds)Zidentity)/etc/dirsrv/opt/redhat-ds)redhat-ds-baseredhat-ds-7c                 C   s4   |  ds| drdS |  ds,| dr0dS dS )z Get Directory Server version r   r   ds8r   r   ds7F)Zis_installedZpath_exists)self r   7/usr/lib/python3/dist-packages/sos/report/plugins/ds.pycheck_version   s    

zDirectoryServer.check_versionc              
   C   s   |  dddddddg zR| dD ]B}|d	d
 dkr$| d|}| d|  | d| d q$W n tk
r   | d Y nX |  s| d nPd|  kr| ddddddddg | 	ddi nd|  kr| ddg | 
d d S ) Nz/etc/dirsrv/slapd*/pin.txtz/etc/dirsrv/slapd*/key3.dbz/etc/dirsrv/slapd*/pwfile.txtz/etc/dirsrv/slapd*/*passw*z"/etc/dirsrv/admin-serv/key[3-4].dbz/etc/dirsrv/admin-serv/admpwz$/etc/dirsrv/admin-serv/password.confr   r      Zslapdzcertutil -L -d zdsctl z healthcheckzcould not list /etc/dirsrvzDirectory Server not found.r	   z/etc/dirsrv/slapd*/cert8.dbz/etc/dirsrv/slapd*/certmap.confz/etc/dirsrv/slapd*/dse.ldifz#/etc/dirsrv/slapd*/dse.ldif.startOKz/etc/dirsrv/slapd*/secmod.dbz /etc/dirsrv/slapd*/schema/*.ldifz/etc/dirsrv/admin-servz/var/log/dirsrv/*z/var/log/dirsrv/*/accessZdirsrv_accessr
   z/opt/redhat-ds/slapd-*/configz/opt/redhat-ds/slapd-*/logsz/var/lib/dirsrv/slapd-*/db/*)Zadd_forbidden_pathlistdirZ	path_joinZadd_cmd_outputOSErrorZ	_log_warnr   Z	add_alertZadd_copy_specZadd_file_tagsZadd_dir_listing)r   ZdsrvZcertpathr   r   r   setup&   sP    

 zDirectoryServer.setupc                 C   s,   d}d}d}|  d|| |  d|| d S )Nz/(nsslapd-rootpw(\s)*:(\s)*)(\S+)([\r\n]\s.*)*\nz0(nsSymmetricKey(\s)*::(\s)*)(\S+)([\r\n]\s.*)*\nz\1********\nz/etc/dirsrv/*)Zdo_path_regex_sub)r   Z
regexppassZ	regexpkeyreplr   r   r   postprocR   s
    zDirectoryServer.postprocN)__name__
__module____qualname__Z
short_descZplugin_nameZprofilesfilesZpackagesr   r   r   r   r   r   r   r      s   ,r   N)Zsos.report.pluginsr   r   r   r   r   r   r   <module>   s   