o
    *b  ã                   @   s4   d dl mZmZmZ d dlZG dd„ deeeƒZdS )é    )ÚPluginÚRedHatPluginÚUbuntuPluginNc                   @   s,   e Zd ZdZdZdZdZdd„ Zdd„ Zd	S )
ÚCephOSDzCEPH osdZceph_osd)ZstorageZvirtÚ	container)z
ceph-osd.*c                 C   s   t   d¡rdS dS )Nz/var/lib/ceph/osd/*/*TF)Úglob)Úself© r	   ú=/usr/lib/python3/dist-packages/sos/report/plugins/ceph_osd.pyÚcheck_enabled   s   zCephOSD.check_enabledc                    sú   |   ddi¡ |  g d¢¡ |  ddg¡ g d¢‰ g }|  d¡}|d d	krO|d
  ¡ D ]"}| ¡ }t|ƒdk r9q,|d dkrN|d  ¡ rN| d|d  ¡ q,z|  	d¡d	 d }W n t
ye   d }Y nw | j‡ fdd„|D ƒ|d |  g d¢¡ d S )Nz/var/log/ceph/ceph-osd.*.logZceph_osd_log)z/var/log/ceph/ceph-osd*.logz/var/log/ceph/ceph-volume*.logz/var/lib/ceph/osd/z/var/lib/ceph/bootstrap-osd/z/run/ceph/ceph-osd*zceph-disk listzceph-volume lvm list)zbluestore bluefs availablezconfig diffzconfig showZdump_blacklistZdump_blocked_opsZdump_historic_ops_by_durationZdump_historic_slow_opsZdump_mempoolsZdump_ops_in_flightZdump_op_pq_stateZdump_osd_networkZdump_reservationsZdump_watcherszlog dumpz	perf dumpzperf histogram dumpZobjecter_requestsÚopsÚstatusÚversionzps -u ceph -o argsr   r   Úoutputé   é   z--idé   zosd.%sz	ceph-osd*é   c                    s"   g | ]}ˆ D ]}d ||f ‘qqS )zceph daemon %s %sr	   )Ú.0ÚiÚc©Z	ceph_cmdsr	   r
   Ú
<listcomp>W   s   " z!CephOSD.setup.<locals>.<listcomp>)r   )z/etc/ceph/*keyring*z/var/lib/ceph/*keyring*z/var/lib/ceph/*/*keyring*z/var/lib/ceph/*/*/*keyring*z/var/lib/ceph/osdz/var/lib/ceph/monz/var/lib/ceph/tmp/*mnt*z/etc/ceph/*bindpass*)Zadd_file_tagsZadd_copy_specZadd_cmd_outputZexec_cmdÚ
splitlinesÚsplitÚlenÚisdigitÚappendZget_all_containers_by_regexÚ	ExceptionZadd_forbidden_path)r   Zosd_idsÚoutZprocsÚprocZcnamer	   r   r
   Úsetup   s:   ÿ
þ
€ÿþzCephOSD.setupN)	Ú__name__Ú
__module__Ú__qualname__Z
short_descZplugin_nameZprofilesZ
containersr   r!   r	   r	   r	   r
   r      s    r   )Zsos.report.pluginsr   r   r   r   r   r	   r	   r	   r
   Ú<module>   s   