AnonSec Shell
Server IP : 85.193.89.191  /  Your IP : 3.149.242.80
Web Server : Apache
System : Linux 956367-cx40159.tmweb.ru 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64
User : bitrix ( 600)
PHP Version : 8.1.27
Disable Function : NONE
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/libexec/lsm.d/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /usr/libexec/lsm.d/local_sanity_check.pyo
�
/�P`c@s�ddlZddlZddlZddlmZmZmZmZmZmZm	Z	ddlm
Zd�Zd�Z
defd��YZdefd	��YZd
ejfd��YZedkr�ejd
d�ndS(i����N(tVolumet	LocalDisktPooltSystemtLsmErrortErrorNumbertDisk(tCapabilitiescCs(x!|D]}|j|�stSqWtS(N(t	supportedtFalsetTrue(tcaptcap_listtc((s(/usr/libexec/lsm.d/local_sanity_check.pyRs
cCs(d|j|jdj|�|fGHdS(Ns'
[WARN]: Volume '%s(%s)', Disk '%s': %st (tnametidtjoin(tvolt	blk_pathstmsg((s(/usr/libexec/lsm.d/local_sanity_check.pytwarn"stLocalVolcBseZd�ZRS(cCs(||_||_||_||_dS(N(RRtsysR(tselfRRRR((s(/usr/libexec/lsm.d/local_sanity_check.pyt__init__(s			(t__name__t
__module__R(((s(/usr/libexec/lsm.d/local_sanity_check.pyR'stFailurecBs eZdZd�Zd�ZRS(s�
VOL_ID:     "{VOL_ID}"
VOL_NAME:   "{VOL_NAME}"
SYS_ID:     "{SYS_ID}"
SYS_NAME:   "{SYS_NAME}"
BLK_PATHS:  "{BLK_PATHS}"
ISSUE:      "{ISSUE}"
SUGGEST:    "{SUGGEST}"
cCs1||_||_||_||_||_dS(N(RRRRtsuggest(RRRRRR((s(/usr/libexec/lsm.d/local_sanity_check.pyR:s
				cCsktjji|jjd6|jjd6|jjd6|jjd6dj|j�d6|j	d6|j
d6�S(	NtVOL_IDtVOL_NAMEtSYS_IDtSYS_NAMERt	BLK_PATHStISSUEtSUGGEST(Rt
OUTPUT_FORMATtformatRRRRRRRR(R((s(/usr/libexec/lsm.d/local_sanity_check.pytgen_fail_msgAs	




(RRR%RR'(((s(/usr/libexec/lsm.d/local_sanity_check.pyR/s		tSanityCheckcBsGeZd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCsmd}tjd�dk	r-tjd�}ntjd�}|dkrWd}d}ntj||�|_|jj�|_i}i}g|_x7|jD],}|||j	<|jj
|�||j	<q�Wx�|jj�D]o}tj
|j�}|r�|jjt||||j||j��d|j|j	dj|�fGHq�q�W|jsi|jd�ndS(Nt
LSMCLI_URItLSMCLI_PASSWORDslocal://s!
Disk path of volume '%s(%s)': %sRs*No local disk is managed by libstoragemgmt(tNonetostgetenvtlsmtClientR
tsystemstsysst
local_volsRtcapabilitiestvolumesRtvpd83_searchtvpd83tappendRt	system_idRRtskipTest(Rturitpasswordtsys_hashtcap_hashRRR((s(/usr/libexec/lsm.d/local_sanity_check.pytsetUpOs2		

%	cCs|jj�dS(N(R
tclose(R((s(/usr/libexec/lsm.d/local_sanity_check.pyttearDownlscCs,ttjd�tkr(|j|�ndS(s�
        If skipTest is supported(new in python 2.7), skip this test with
        provided message.
        Silently return if not supported.
        R9N(thasattrtunittesttTestCaseR
R9(Rtmesssage((s(/usr/libexec/lsm.d/local_sanity_check.pyt_skip_current_testoscCsWddd}|jtd�|D���}|jt|�dkd||f�dS(Nt-iHs
css|]}|j�VqdS(N(R'(t.0tf((s(/usr/libexec/lsm.d/local_sanity_check.pys	<genexpr>{sis
%s%s(Rtlistt
assertTruetlen(Rtfailstsplitertoutput((s(/usr/libexec/lsm.d/local_sanity_check.pyt_check_failysc	Cs�g}t}x�|jD]�}t}|j}|j}|j}|j}t|tj	tj
g�swt||d�qn|jj
|�}	|	d}
|	d}|tjkr�t||d�qn|tjkrt}|jt|||dd|j��n>|tjkr>t}|jt|||dd|j��n|
tjkrct||d�qn|
tjkr�t}|jt|||d	d
|j��n|rt}qqW|j|�|s�|jd�ndS(Ns<Capabilities VOLUMES and VOLUME_CACHE_INFO are not supportediisUnknown physical disk caches�Physical disk cache of volume is determined by the disk vendor which is not suggested, data loss might occurred on sudden power loss.s&lsmcli vpdcu --vol %s --policy DISABLEs�Physical disk cache of volume is enabled which might(mostly) not be protected by battery/capacitor, data loss might occurred on sudden power loss.sUnknown write cache policys~Write cache of volume is always enabled regardless of battery/capacitor status, data loss might occurred on sudden power loss.s#lsmcli vwcpu --vol %s --policy AUTOs(No local disks are capable for this test(R	R2R
RRRRRtCaptVOLUMEStVOLUME_CACHE_INFORR
tvolume_cache_infoRtPHYSICAL_DISK_CACHE_UNKNOWNt$PHYSICAL_DISK_CACHE_USE_DISK_SETTINGR7RRtPHYSICAL_DISK_CACHE_ENABLEDtWRITE_CACHE_POLICY_UNKNOWNtWRITE_CACHE_POLICY_WRITE_BACKRORE(RRLt
flag_has_passtlvt	flag_passRRRRt
cache_infotwrite_cache_policytphy_disk_cache((s(/usr/libexec/lsm.d/local_sanity_check.pyttest_volume_cache~sV				



cCsWg}t}i}x$|jj�D]}|||j<q"Wi}i}y+x$|jj�D]}|||j<qXWWn+tk
r�}|jtjkr�q��nXx�|j	D]�}	|	j
}
|	j}|	j}|	j
}
||j}|jtjkrt||
d|j|jf�n|jtj@s&t|tjg�r�|j|krd|jj|�||j<n||j}|dtjkr�xg|dD]X}||}|jtj@s�|jt|
||
d|j||jfd��q�q�q�Wq�n|jt|
||
d|j|jfd��q�nt}q�W|j|�|sS|j d�ndS(	NsUnknown pool status %d %siisDisk %s(%s) is not healthy: %ds*Need investigation of output of`lsmcli ld`sPool is not healthy: %d '%s's+Need investigation of output of `lsmcli lp`s(No local disks are capable for this test(!R	R
tpoolsRtdisksRtcodeRt
NO_SUPPORTR2RRRRtpool_idtstatusRtSTATUS_UNKNOWNRtstatus_infot	STATUS_OKRRPtPOOL_MEMBER_INFOtpool_member_infotMEMBER_TYPE_DISKRR7RRR
RORE(RRLRYt	pool_hashtpooltpmi_hasht	disk_hashtdisktlsm_errRZRRRRtpmitdisk_id((s(/usr/libexec/lsm.d/local_sanity_check.pyttest_pool_status�sb				
		





c	Cs�g}t}x�|jD]�}|j}|j}|j}|jtjkrlt||d|j|j	f�n|jtj
@s�|jt|||d|j|j	fd��qnt
}qW|j|�|s�|jd�ndS(NsUnknown system status %d %ssSystem is not healthy: %d '%s's+Need investigation of output of `lsmcli ls`s(No local disks are capable for this test(R	R2RRRReRRfRRgRhR7RR
RORE(RRLRYRZRRR((s(/usr/libexec/lsm.d/local_sanity_check.pyttest_system_status�s*					


(	RRR>R@REROR_RtRu(((s(/usr/libexec/lsm.d/local_sanity_check.pyR(Ns			
		>	:t__main__t	verbosityi(RBR,R.RRRRRRRRRPRRtobjectRRRCR(Rtmain(((s(/usr/libexec/lsm.d/local_sanity_check.pyt<module>s4		�

Anon7 - 2022
AnonSec Team