o
    G%@i=                     @   s8   d dl mZmZmZ d dlmZ G dd deeeZdS )    )PluginRedHatPluginUbuntuPlugin)findc                   @   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 )DRBDz*Distributed Replicated Block Device (DRBD)drbd)storage)	drbdsetup<   c                 C   s
  d}t ddD ]u}t|ddd}|  }W d    n1 s!w   Y  |d| d| d	7 }| rxz%d
| d}t|ddd}|| 7 }W d    n1 sTw   Y  W n tyw } z|d| d| d7 }W Y d }~nd }~ww |d7 }q| |d d S )N z*_pidz!/sys/kernel/debug/drbd/resources/rzutf-8)encodingz--- z: z ---
z/proc/z/stackzCould not read /proc/z/stack: 
drbd_thread_stacks)r   openreadstripisdigit	Exceptionadd_string_as_file)selfstackspid_filefpidsfnsfe r   9/usr/lib/python3/dist-packages/sos/report/plugins/drbd.pyadd_drbd_thread_stacks   s&   "
zDRBD.add_drbd_thread_stacksc                 C   s\   |  g d |   tddD ]}| j d| gd|dd d q| g d	 d S )
N)drbdadm dumpzdrbdadm -d -vvv adjust allzdrbdsetup status -vs alldrbdsetup show allz	drbd*.ko*z/lib/moduleszmodinfo modinfo_/_)suggest_filename)z/etc/drbd.confz/etc/drbd.d/*z
/proc/drbdz/sys/kernel/debug/drbd/*z/var/lib/drbd/*z/var/lib/drbd-support/*z/var/lib/linstor.d/*)add_cmd_outputr    r   replaceadd_copy_spec)r   kmodr   r   r   setup*   s   z
DRBD.setupc                 C   sL   d}d}|  d|| d}d}|  d|| | d|| | d|| d S )	Nz!("nodehash"\s*:\s*")[a-zA-Z0-9]+"z\1********"z'/var/lib/drbd-support/registration.jsonz%(shared-secret\s+\"?).[^\"]+(\"?\s*;)z\1********\2z.*\.(conf|res)r!   r"   )do_path_regex_subdo_cmd_output_sub)r   nodehash_rerepl	secret_rer   r   r   postproc@   s   zDRBD.postprocN)__name__
__module____qualname__
short_descplugin_nameprofilescommandscmd_timeoutr    r+   r1   r   r   r   r   r      s    r   N)sos.report.pluginsr   r   r   sos.utilitiesr   r   r   r   r   r   <module>   s   