Spade
Mini Shell
| Directory:~$ /proc/self/root/usr/lib/python2.7/site-packages/tuned/plugins/ |
| [Home] [System Details] [Kill Me] |
�
��\c@s�ddljZddlmZddlTddlmZmZddlZ ddl
mZddlZe j
j�Ze�Zdejfd��YZdS( i����Ni(tbase(t*(tPopentPIPE(tcommandstMountsPlugincBs�eZdZed��Zd�Zed��Zd�Zd�Zd�Z d�Z
d�Zd �Ze
d
de�d��ZRS(
s.
Plugin for tuning options of mount-points.
c
Cs�i}d}tdddgdtdtdtdt�j�\}}x-g|j�D]}|j�^qUD]}t|�dkr�qkn|d
\}}} t|�dkr�|dnd}
t|�d kr�|d nd}|d
kr�| }qkn|dksk|dkrqkn|dksk|dkr4qkn|j|it �d6| d6|
d6�||dj
|�qkW||_dS(s�
Gets the information about disks, partitions and mountpoints. Stores
information about used filesystem and
creates a list of all underlying devices (in case of LVM) for each
mountpoint.
tlsblks-rnosTYPE,RM,KNAME,FSTYPE,MOUNTPOINTtstdouttstderrt close_fdstuniversal_newlinesiitdiskt1tparttlvms[SWAP]tdiskstdevice_namet
filesystemN(R
R(tNoneRRtTruetcommunicatet
splitlinestsplittlent
setdefaulttsettaddt_mountpoint_topology(tclstmountpoint_topologytcurrent_diskRRtlinetcolumnstdevice_typetdevice_removableRRt
mountpoint((s?/usr/lib/python2.7/site-packages/tuned/plugins/plugin_mounts.pyt_generate_mountpoint_topologys, ,""(cCs;|j�t|_t|jj��|_t�|_dS(N(R$Rt_devices_supportedRRtkeyst
_free_devicest_assigned_devices(tself((s?/usr/lib/python2.7/site-packages/tuned/plugins/plugin_mounts.pyt
_init_devices5s
cCsidd6S(Ntdisable_barriers(R(R)((s?/usr/lib/python2.7/site-packages/tuned/plugins/plugin_mounts.pyt_get_config_options;scCst|_t|_dS(N(tFalset_has_dynamic_tuningRt_has_static_tuning(R)tinstance((s?/usr/lib/python2.7/site-packages/tuned/plugins/plugin_mounts.pyt_instance_initAs cCsdS(N((R)R0((s?/usr/lib/python2.7/site-packages/tuned/plugins/plugin_mounts.pyt_instance_cleanupEscCs8tjd|�}x|D]}tj|�j�SWdS(sV
Get device cache type. This will work only for devices on SCSI kernel
subsystem.
s+/sys/block/%s/device/scsi_disk/*/cache_typeN(tglobtcmdt read_filetstripR(R)tdevicetsource_filenamestsource_filename((s?/usr/lib/python2.7/site-packages/tuned/plugins/plugin_mounts.pyt_get_device_cache_typeHs
cCs9x2|j|dD]}|j|�dkrtSqWtS(sr
Checks if the device has 'write back' cache. If the cache type
cannot be determined, asume some other cache.
Rs
write
back(RR:RR-(R)R#R7((s?/usr/lib/python2.7/site-packages/tuned/plugins/plugin_mounts.pyt_mountpoint_has_writeback_cacheQscCs�td��`}xV|D]J}|j�}|dddkrBqn|d|kr|d}PqqWdSWdQX|jd�}xb|D]V}|jd�\}} }
|d ks�|d
kr�|
dkr�tS|d
kr�tSq�WtSdS(sP
Checks if a given mountpoint is mounted with barriers enabled or
disabled.
s/proc/mountsit/iiNt,t=t nobarriertbarriert0(topenRRt partitionR-R(R)R#tmounts_fileRR
toption_listtoptionstoptiontnametseptvalue((s?/usr/lib/python2.7/site-packages/tuned/plugins/plugin_mounts.pyt_mountpoint_has_barriersZs"
$cCs'd|dd|g}tj|�dS(s
Remounts partition.
s/usr/bin/mounts-os
remount,%sN(R4texecute(R)RCRFtremount_command((s?/usr/lib/python2.7/site-packages/tuned/plugins/plugin_mounts.pyt_remount_partitionwsR+t
per_devicec
Cs�|jddd|�}t|�j�dk}|pB|j|�}|rp|sUdSd}|j|djd�s~d}n�|r�|j|�r�d}nu|j|�} | dkr�d }nQ| t kr�|r�t
jtj
|�tSd
}n|rt
jtj|�t S|dk r9t
jd||f�dS|jj|| �t
jd|�|j|d
�n]|rzdS|jj|�} | dkr�dSt
jd|�|j|d�|jj|�dS(Ntcommand_nameR+RtforceRtextsfilesystem
not supportedsdevice uses write back cachesunknown current
settingsbarriers already disableds#not disabling barriers on
'%s' (%s)sdisabling barriers on
'%s's barrier=0senabling barriers on
'%s's barrier=1(t_storage_keytstrtlowert_option_boolRRt
startswithR;RKR-tlogtinfotconststSTR_VERIFY_PROFILE_OKRterrortSTR_VERIFY_PROFILE_FAILt_storageRRNtgettunset(
R)tstartRJR#tverifytignore_missingtstorage_keyRQt
reject_reasontoriginal_value((s?/usr/lib/python2.7/site-packages/tuned/plugins/plugin_mounts.pyt_disable_barriers~sN (t__name__t
__module__t__doc__tclassmethodR$R*R,R1R2R:R;RKRNtcommand_customRRg(((s?/usr/lib/python2.7/site-packages/tuned/plugins/plugin_mounts.pyRs$ (ttuned.constsRZtRt
decoratorst
subprocessRRt
tuned.logsttunedttuned.utils.commandsRR3tlogsR_RXR4tPluginR(((s?/usr/lib/python2.7/site-packages/tuned/plugins/plugin_mounts.pyt<module>s