U
    -_g                     @   s4   d dl Z d dlmZmZmZ G dd deeeZdS )    N)PluginRedHatPluginUbuntuPluginc                   @   s0   e Zd ZdZdZdZdZdZdd Zdd	 Z	d
S )CephMDSzCEPH mdsZceph_mds)ZstorageZvirt	containerZceph)zceph-(.*-)?fs.*)z/var/lib/ceph/mds/*/var/lib/ceph/*/mds.*z%/var/snap/microceph/common/data/mds/*c                    s>  |  d}| jjd}|rL|r.| dg n| dg | dddg nX| dd	i |sl| d
g n| dg | ddddg | ddddddddg 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 z| d0d1 d2 }W n tk
r   d }Y nX |rd3nd4}| j	 fd5d6| 
|D |d7 d S )8Nall_logs	microcephz//var/snap/microceph/common/logs/*ceph-mds*.log*z./var/snap/microceph/common/logs/*ceph-mds*.logz'/var/snap/microceph/common/**/*keyring*z(/var/snap/microceph/current/**/*keyring*z"/var/snap/microceph/common/state/*z/var/log/ceph/ceph-mds.*.logZceph_mds_logz/var/log/ceph/ceph-mds*.logz/var/log/ceph/ceph-mds*.log*z/var/lib/ceph/bootstrap-mds/z/var/lib/ceph/mds/r   z/run/ceph/ceph-mds*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cache statusz	client lszconfig diffzconfig showzcounter dumpzcounter schemaz	damage lsz
dump loadszdump tree /Zdump_blocked_opsZdump_historic_opsZdump_historic_ops_by_durationZdump_mempoolsZdump_ops_in_flightzget subtreesZobjecter_requestsZopsz	perf dumpzperf histogram dumpzperf histogram schemazperf schemaz
session lsZstatusversionz	ceph-mds*r      z/var/snap/microceph/current/runz/var/run/cephc                    s&   g | ]} D ]}d | d| qqS )zceph daemon   ).0icZcmdsr   =/usr/lib/python3/dist-packages/sos/report/plugins/ceph_mds.py
<listcomp>j   s    z!CephMDS.setup.<locals>.<listcomp>)r   )Z
get_optionZpolicyZpackage_managerZpkg_by_nameZadd_copy_specZadd_forbidden_pathZadd_file_tagsZget_all_containers_by_regex	ExceptionZadd_cmd_output	get_socks)selfr   r	   Zcname	directoryr   r   r   setup   s    
 

zCephMDS.setupc                 C   sL   g }t |D ]8\}}}|D ](}|drd|kr|| || qq|S )z
        Find any available admin sockets under /var/run/ceph (or subdirs for
        later versions of Ceph) which can be used for ceph daemon commands
        z.asokZmds)oswalkendswithappendZ	path_join)r   r   Zceph_socketsZrdir_filesfiler   r   r   r   p   s    zCephMDS.get_socksN)
__name__
__module____qualname__Z
short_descZplugin_nameZprofilesZ
containersr   r   r   r   r   r   r   r      s   Zr   )r   Zsos.report.pluginsr   r   r   r   r   r   r   r   <module>	   s   