ó æ ”\c@sddlmZddlZddlZddlZddlTddlZddl Tddl m Z ej j ƒZdejfd„ƒYZdS(i(tbaseiÿÿÿÿN(t*(tcommandst SysfsPlugincBsbeZdZd„Zd„Zd„Zd„Zd„Zed„Z d„Z d„Z d „Z RS( sR Plugin for applying custom sysfs options, using specific plugins is preferred. cOs2tt|ƒj||Žt|_tƒ|_dS(N(tsuperRt__init__tTruet_has_dynamic_optionsRt_cmd(tselftargstkwargs((s>/usr/lib/python2.7/site-packages/tuned/plugins/plugin_sysfs.pyRs cCsjt|_t|_tgt|jjƒƒD]&}tj j |dƒ|df^q+ƒ|_ i|_ dS(Nii( tFalset_has_dynamic_tuningRt_has_static_tuningtdicttlisttoptionstitemstostpathtnormpatht_sysfst_sysfs_original(R tinstancet key_value((s>/usr/lib/python2.7/site-packages/tuned/plugins/plugin_sysfs.pyt_instance_inits  KcCsdS(N((R R((s>/usr/lib/python2.7/site-packages/tuned/plugins/plugin_sysfs.pyt_instance_cleanupscCsŸx˜t|jjƒƒD]\}}|jj|ƒ}x`tj|ƒD]O}|j|ƒr‚|j|ƒ|j |<|j ||ƒqDt j d|ƒqDWqWdS(Ns)rejecting write to '%s' (not inside /sys)( RRRt _variablestexpandtglobtiglobt _check_sysfst _read_sysfsRt _write_sysfstlogterror(R Rtkeytvaluetvtf((s>/usr/lib/python2.7/site-packages/tuned/plugins/plugin_sysfs.pyt_instance_apply_static"s"c Cs¤t}x—t|jjƒƒD]€\}}|jj|ƒ}x_tj|ƒD]N}|j|ƒrJ|j |ƒ} |j ||| |ƒt kr˜t }q˜qJqJWqW|S(N( RRRRRRRRR R!t _verify_valueR ( R Rtignore_missingtdevicestretR%R&R'R(tcurr_val((s>/usr/lib/python2.7/site-packages/tuned/plugins/plugin_sysfs.pyt_instance_verify_static,s"cCs:x3t|jjƒƒD]\}}|j||ƒqWdS(N(RRRR"(R Rt full_rollbackR%R&((s>/usr/lib/python2.7/site-packages/tuned/plugins/plugin_sysfs.pyt_instance_unapply_static7s"cCstjd|ƒS(Ns^/sys/.*(tretmatch(R t sysfs_file((s>/usr/lib/python2.7/site-packages/tuned/plugins/plugin_sysfs.pyR ;scCsE|jj|ƒjƒ}t|ƒdkr=|jj|tƒSdSdS(Ni(Rt read_filetstriptlentget_active_optionR tNone(R R4tdata((s>/usr/lib/python2.7/site-packages/tuned/plugins/plugin_sysfs.pyR!>scCs|jj||ƒS(N(Rt write_to_file(R R4R&((s>/usr/lib/python2.7/site-packages/tuned/plugins/plugin_sysfs.pyR"Es( t__name__t __module__t__doc__RRRR)R/R R1R R!R"(((s>/usr/lib/python2.7/site-packages/tuned/plugins/plugin_sysfs.pyR s      (tRRR2tos.pathRt decoratorst tuned.logsttunedt subprocessttuned.utils.commandsRtlogstgetR#tPluginR(((s>/usr/lib/python2.7/site-packages/tuned/plugins/plugin_sysfs.pyts