MINI MINI MANI MO

Path : /usr/lib/python2.7/site-packages/tuned/utils/
File Upload :
Current File : //usr/lib/python2.7/site-packages/tuned/utils/commands.pyc


-\c@sddlZddlZddlZddlZddlZddljZddlm	Z	m
Z
ddlZddlZddl
TddlmZejjZdddYZdS(iN(t	ConfigObjtConfigObjError(t*(tTunedExceptiontcommandscBseZedZdZdZdZdZdZdddZ	ddZ
d	Zd
ZdZ
d)dd
Zd)dZeedZdedZedZedZedZedZdZdZedZed)gedZedZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%ed$Z&d%Z'd&Z(d'Z)d(Z*RS(*cCsd|_||_dS(N(tNonet_environmentt_logging(tselftlogging((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pyt__init__s	cCs|jrtj|ndS(N(Rtlogterror(Rtmsg((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pyt_errors	cCs|jrtj|ndS(N(RRtdebug(RR
((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pyt_debugs	cCs`t|jj}idd6dd6dd6dd6dd6dd6dd	6dd
6j||S(Nt1tYtYEStTtTRUEt0tNtNOtFtFALSE(tstrtuppertstriptget(Rtvaluetv((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pytget_boolscCstjddt|jS(Ns\s+t (tretsubRR(Rts((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pyt	remove_ws!scCstjdd|S(Ns^"(.*)"$s\1(R#R$(RR ((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pytunquote$ss\cCs|j|d||fS(Ns%s%s(treplace(RR%twhat_escapet	escape_by((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pytescape(scCs|j|dS(Nt(R((RR%tescape_char((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pytunescape,scCs|d|t||S(NR"(tlen(Rts1tposts2((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pyt	align_str0scCsFg}|dk	rBx-t|jD]}|t|7}q%Wn|S(N(Rtsortedtitemstlist(Rtdtlti((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pyt	dict2list6s
cCs6|dkrdStjddjt|jS(Ns(%s)s)|((RR#tcompiletjoinR6tkeys(RR7((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pytre_lookup_compile>sics{dkr|dkrA|Sn"tdks=|dkrA|S|dkr_|j}n|jfd||S(Nicstj|jdS(Ni(R6tvaluest	lastindex(tmo(R7(s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pyt<lambda>Os(RR/R>R$(RR7R%trtflags((R7s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pytmultiple_re_replaceFscCstt|dks|dkr"dS|dkr@|j|}n|j|}|rpt|j|jdSdS(Nii(R/RR>tsearchR6R?R@(RR7R%RCRA((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pyt	re_lookupUsc	Cs|jd||f|rMtjj|}tjj|rMt}qMnyL|rftj|nt|d}|jt	||j
t}Wn?tt
fk
r}t}|s|jd||fqnX|S(NsWriting to file: '%s' < '%s'tws Writing to file '%s' error: '%s'(RtostpathtdirnametisdirtFalsetmakedirstopentwriteRtclosetTruetOSErrortIOErrorR(	Rtftdatatmakedirtno_errorR7tfdtrcte((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pyt
write_to_file_s"

R,cCs|}y)t|d}|j}|jWn9ttfk
rj}|sk|jd||fqknX|jd||f|S(NRCs"Error when reading file '%s': '%s's Read data from file: '%s' > '%s'(ROtreadRQRSRTRR(RRUterr_retRXt	old_valueR[((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pyt	read_filerscCs{|jd|tjj|rwytj||Wqwtk
rs}|sotjd|t	|fnt
SXntS(NsRemoving tree: '%s'scannot remove tree '%s': '%s'(RRIRJtexiststshutiltrmtreeRSRRRRMRR(RRURXR((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pyRc~s cCsx|jd|tjj|rtytj|Wqttk
rp}|sltjd|t|fnt	SXnt
S(NsRemoving file: '%s'scannot remove file '%s': '%s'(RRIRJRatunlinkRSRRRRMRR(RRURXR((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pyRds cCso|jd||fytj||Wn=tk
rj}|sftjd||t|fntSXtS(NsRenaming file '%s' to '%s's%cannot rename file '%s' to '%s': '%s'(	RRItrenameRSRRRRMRR(RtsrctdstRXR((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pyRes#cCsmy/tjd||ftj||tSWn7tk
rh}|sdtjd|||fntSXdS(Nscopying file '%s' to '%s's!cannot copy file '%s' to '%s': %s(RRRbtcopyRRRTRRM(RRfRgRXR[((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pyRhscCsM|j|}t|dkr%tS|j|tj|||dtjS(NiRD(R`R/RMR\R#R$t	MULTILINE(RRUtpatterntreplRV((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pytreplace_in_filescCsJ|j|}t|dkr%tS|j||j||dtjS(NiRD(R`R/RMR\RER#Ri(RRUR7RV((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pytmultiple_replace_in_filescCs|j|}x|D]}t|}t||}tjd|d|dtjdkr|rt|dkr|ddkr|d7}n|d||f7}qqtjd|d	d|d|dtj}qW|j||S(
Ns\bs\s*=.*$RDiis
s%s="%s"
s\b(s\s*=).*$s\1s"s\1"(	R`RR#RFRiRR/R$R\(RRUR7taddRVtopttoR ((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pytadd_modify_option_in_files
)"
2c
Csd}|jdkr7tjj|_d|jd<n|jdt|d}d}yt|dtdtd|jd	|d
|dt	dt	}	|	j
\}}
|	j}|r%||kr%d|kr%|
d
 }t|dkr|d
 }nd|d|f}|s%|j
|q%nWnttfk
r}|jdk	rW|jnd
}t||krd|krd|d|f}|s|j
|qqnX|r|||fS||fSdS(NitCtLC_ALLs
Executing %s.R,tstdouttstderrtenvtshelltcwdt	close_fdstuniversal_newlinesisExecuting %s error: %s(RRRItenvironRhRRtPopentPIPERRtcommunicatet
returncodeR/RRSRTterrnotabs(
RtargsRwRxt	no_errorst
return_errtretcodetoutterr_msgtprocterrterr_outR[((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pytexecutes>			


cCs=tjd|}|r%|jdS|r9|jdS|S(Ns.*\[([^\]]+)\].*ii(R#tmatchtgrouptsplit(Rtoptionstdosplittm((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pytget_active_options
cCs;t|}|dkp:|jd|dtjdkS(NRs$/sys/devices/system/cpu/cpu%s/onlineRXR(RR`RRR(Rtcputscpu((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pyt
is_cpu_onlinescCst|dkrdSt|jdd}yt|d}Wn)tk
rftjdt|gSX|j|S(Nt,R,isinvalid hexadecimal mask '%s'(RRR(tintt
ValueErrorRRtbitmask2cpulist(RtmaskR((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pythex2cpulists
cCsQd}g}x>|dkrL|d@r5|j|n|dL}|d7}qW|S(Nii(tappend(RRRtcpus((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pyRs

c
Csvg}|dkr|St|tkr1|}nt|jd}g}g}t}d}x|D]}t|}	|rt|	dkrt}|j|d}qB||	7}qe|	dd!jdkrt	}|	}qe|	r |	ddks|	ddkr |jt
|	dqet|	dkre|j|	qeqeWt|dkrh|j|nx|D]}|jd	}
|dd!jdkr||j|7}qoyat|
dkr|ttt
|
dt
|
dd7}n|jt
|
dWqot
k
r(gSXqoWttt|}x*|D]"}||krL|j|qLqLW|S(
NRR,iit0xt^t!it-(RttypeR6RRRMR/RtlowerRRRRtrangeRR4tsettremove(
RR8trltlltll2t
negation_listthexmaskthvR tsvtvltcpu_listR((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pytcpulist_unpacksT	

	
	&
4
	
cCs?|j|}|dks-t|dkr1|Sd}|}g}x|dt|kr||d||dkr||kr|jt||dt||n|jt|||d}n|d7}qFW|dt|kr$|jt||dt|dn|jt|d|S(NiiRi(RRR/RR(RR8R9tjR((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pytcpulist_packVs",
,cCsA|j|}|j|jd}tt|t|S(Ns/sys/devices/system/cpu/online(RR`R6R(RR8Rtonline((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pytcpulist_invertlscs|dkrdS|j|}|dkr/dS|j|}d|t}|ddkry|d|d7}nj|djfdtdtdDS(Ns%xiiRc3s |]}||d!VqdS(iN((t.0R9(R%(s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pys	<genexpr>~s(RRtcpulist2bitmaskR/tzfillR<R(RR8tulRtls((R%s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pytcpulist2hexrs
cCs.d}x!|D]}|td|O}q
W|S(Nii(tpow(RR8RR ((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pyRs
cCs'd}ytjj|sdSt|dtdt}xt|jD]}t}xdt||jD]L}|||}|dkrd}n|dkrt	j
||jddt	jst}qqm|dkrt	j
||j
tjt	jst}qqm|d	d
kr`tjj|sTt	j
||j
|t	jrt}qqm|d	d!dkrmtj}|jt|jt	j|d	krt}qqmqmW|rJt	jd
}	|	jd|}PqJqJWWn3tttfk
r"}
tjd||
fnX|S(Ntlist_valuest
interpolationR,s^$tvirts	virt-whatitsystemit/itprocesss,[^,]*$serror processing '%s', %s(RRIRJtisfileRRMR6R=RRR#RRtSR`tconststSYSTEM_RELEASE_FILERatprocfstpidstatstreload_threadsR/t
find_by_regexR;R$RTRSRRR(Rtfnametmatching_profiletconfigtsectionRtoptionRtpsRCR[((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pytprocess_recommend_files@	%$5
$c
Cs$tj}|r|S|jtj}|dk	r5|Si}xtjD]}g}ytj|}Wn?tk
r}|j	t	j
krtjd||fqnXx-|D]%}tj
j||}	|	||<qWqEWxCt|jD]/}||}	|j|	}|dk	r|SqW|S(Nserror accessing %s: %s(RtDEFAULT_PROFILERtRECOMMEND_CONF_FILERtRECOMMEND_DIRECTORIESRItlistdirRSRtENOENTRRRJR<R4R=(
Rt	hardcodedtprofiletmatchingtfilest	directorytcontentsR[tnameRJ((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pytrecommend_profiles.	

cCs,y|j|tSWn|j|SXdS(N(twaitRM(Rt	terminatettime((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pyRscCst|jj}xddddgD]}|j|}|dkrRq+nyt|| }||}|dkr|d9}nG|dkr|d9}n.|dkr|d	9}n|dkrd}n|SWq+tk
rdSXq+WdS(
NtKBtMBtGBR,iiiii@(RRRtrfindRRR(RR%tunittunit_ixtvaltu((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pytget_sizes&



	
c	Csd}d}y1ttjd}|jj}WdQXWn`tk
rw}|jtjkrtd|qn)t	t
fk
r}td|nXybttjdJ}|jj}|dtjtj
gkrtdtjnWdQXWn`tk
r<}|jtjkretd|qen)t	t
fk
rd}td|nX|dkrzd}n|tj
k}|dkrd}n||fS(NR,RCs!Failed to read active profile: %ssInvalid value in file %s.sFailed to read profile mode: %s(RORtACTIVE_PROFILE_FILER]RRTRRRRStEOFErrortPROFILE_MODE_FILEtACTIVE_PROFILE_AUTOtACTIVE_PROFILE_MANUALR(Rtprofile_nametmodeRUR[tmanual((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pytget_active_profiles4 		cCsy?ttjd'}|dk	r8|j|dnWdQXWn,ttfk
rm}td|jnXyHttj	d0}|rtj
ntj}|j|dWdQXWn,ttfk
r}td|jnXdS(NRHs
s!Failed to save active profile: %ssFailed to save profile mode: %s(RORRRRPRSRTRtstrerrorRRR(RRRRUR[R((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pytsave_active_profilesN(+t__name__t
__module__RRR
RRR!R&R'R+R.R3R:R>RRERGRMR\R`RcRdReRhRlRmRqRRRRRRRRRRRRRRRR(((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pyRsL								


		
'					8					#			((Rt
tuned.logsttunedRhRIRbttuned.constsRt	configobjRRR#Rt
subprocessttuned.exceptionsRtlogsRRR(((s8/usr/lib/python2.7/site-packages/tuned/utils/commands.pyt<module>s


OHA YOOOO