MINI MINI MANI MO

Path : /lib/python2.7/site-packages/tuned/plugins/
File Upload :
Current File : //lib/python2.7/site-packages/tuned/plugins/plugin_mounts.pyo

ó
©=[c@sœddljZddlmZddlTddlmZmZddlZ	ddl
mZddlZe	j
jƒZeƒZdejfd„ƒYZdS(	iÿÿÿÿNi(tbase(t*(tPopentPIPE(tcommandstMountsPlugincBs†eZdZed„ƒZd„Zed„ƒZd„Zd„Zd„Z	d„Z
d„Zd	„Ze
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_topologytcurrent_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|ƒrd}nu|j|ƒ}	|	dkrÁd	}nQ|	t	krô|rët
jtj
|ƒtSd
}n|rt
jtj|ƒt	S|dk	r9t
jd||fƒdS|jj||	ƒt
jd|ƒ|j|d
ƒn]|rzdS|jj|ƒ}	|	dkrœdSt
jd|ƒ|j|dƒ|jj|ƒdS(Ntcommand_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.pyRs$									(ttuned.constsRZtRt
decoratorst
subprocessRRt
tuned.logsttunedttuned.utils.commandsRR3tlogsR_RXR4tPluginR(((s?/usr/lib/python2.7/site-packages/tuned/plugins/plugin_mounts.pyt<module>s
	

OHA YOOOO