o
    O6ufç
  ã                   @   s.   d dl Z d dlmZmZ G dd„ deeƒZdS )é    N)ÚPluginÚRedHatPluginc                   @   s,   e Zd ZdZdZdZdZdd„ Zdd„ Zd	S )
ÚLustrezLustre filesystemÚlustre)ÚstorageÚnetworkÚcluster)r   zlustre-clientc                 C   s&   | j dd |¡› �d|› �dd� dS )zZUse lctl get_param to collect a selection of parameters into a
            file.

        zlctl get_param ú zparams-F)Úsuggest_filenameÚstderrN)Úadd_cmd_outputÚjoin)ÚselfÚnameÚ
param_list© r   ú;/usr/lib/python3/dist-packages/sos/report/plugins/lustre.pyÚ
get_params   s   
þzLustre.get_paramsc                    sì   |   g d¢¡ |  d¡d }d‰ ‡ fdd„| ¡ D ƒ}|  d|¡ |  dg d	¢¡ |   d
dg¡ |  dg d¢¡ |  ddg¡ |  ddg¡ |  dddg¡ |  d¡ |  ddg¡ |  d¡rt|  d¡ |  ddg¡ |  ddg¡ d S d S )N)zlctl debug_kernelzlctl device_listzlctl list_nidszlctl route_listzlnetctl net show -vzlctl list_param -R *Úoutputzn.*@.*|.*dump_page_cache|peers|.*quota.*|osd-.*|.*osc.*|mgs.*|.*mgc_irstate|ldlm.*state|.*job_stats|.*exports.*c                    s   g | ]
}t  ˆ |¡s|‘qS r   )ÚreÚmatch)Ú.0Úitem©Úexcluder   r   Ú
<listcomp>+   s    

ÿz Lustre.setup.<locals>.<listcomp>ÚallÚbasic)ÚversionÚhealth_checkÚdebugzlfs dfz	lfs df -iÚ
osc_client)zosc.*.max_dirty_mbzosc.*.max_pages_per_rpczosc.*.checksumszosc.*.max_rpcs_in_flightÚosdz3osd-*.*.{mntdev,files*,kbytes*,blocksize,brw_stats}Úquotaz)osd-*.*.quota_slave.{info,limit_*,acct_*}Úmgszmgs.MGS.ir_timeoutzmgs.MGS.live.*z*/mb_groupsz/sys/fs/ldiskfsz/proc/fs/ldiskfsÚall_logsz/tmp/lustre-log.*z	job-statsz*.*.job_statsÚpeers)r   Úexec_cmdÚ
splitlinesr   Úadd_forbidden_pathÚadd_copy_specÚ
get_option)r   r   Úparamsr   r   r   Úsetup   s<   	þþþ
þ

ýzLustre.setupN)	Ú__name__Ú
__module__Ú__qualname__Ú
short_descÚplugin_nameÚprofilesÚpackagesr   r-   r   r   r   r   r      s    	r   )r   Úsos.report.pluginsr   r   r   r   r   r   r   Ú<module>   s   