PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  \c@sddlmZddlTddlZddlmZddlmZddlj Z ddl Z ddl Z ej j ZdejfdYZdS( i(tbase(t*iN(t exceptions(tcommandst SystemdPlugincBseZdZdZdZdZedZdZdZ dZ dZ d Z d Z d Zed Zd ZeddedZRS(sn Plugin for tuning systemd options. These tunings are unloaded only on profile change followed by reboot. cOsWtjjtjs.tjdtjntt|j ||t |_ dS(NsERequired systemd '%s' configuration file not found, disabling plugin.( tostpathtisfiletconststSYSTEMD_SYSTEM_CONF_FILERtNotSupportedPluginExceptiontsuperRt__init__Rt_cmd(tselftargstkwargs((s@/usr/lib/python2.7/site-packages/tuned/plugins/plugin_systemd.pyR scCst|_t|_dS(N(tFalset_has_dynamic_tuningtTruet_has_static_tuning(Rtinstance((s@/usr/lib/python2.7/site-packages/tuned/plugins/plugin_systemd.pyt_instance_inits cCsdS(N((RR((s@/usr/lib/python2.7/site-packages/tuned/plugins/plugin_systemd.pyt_instance_cleanupscCs idd6S(Nt cpu_affinity(tNone(tcls((s@/usr/lib/python2.7/site-packages/tuned/plugins/plugin_systemd.pyt_get_config_options!scCs^|dk rZtjd|d|dtj}|dk rZ|jdkrZ|jdSndS(Ns^\s*s \s*=\s*(.*)$tflagsi(Rtretsearcht MULTILINEt lastindextgroup(Rtconftkeytmo((s@/usr/lib/python2.7/site-packages/tuned/plugins/plugin_systemd.pyt _get_keyval's  #cCstjd|ddt||dtj\}}|dkry!|ddkrb|d7}nWntk rvnX||dt|d7}|S|S( Ns^(\s*s\s*=).*$s\g<1>Riis t=(RtsubntstrRt IndexError(RR"R#tvaltconf_newtnsubs((s@/usr/lib/python2.7/site-packages/tuned/plugins/plugin_systemd.pyt _add_keyval/s6  cCs$tjd|dd|dtjS(Ns^\s*s\s*=.*\ntR(RtsubR(RR"R#((s@/usr/lib/python2.7/site-packages/tuned/plugins/plugin_systemd.pyt_del_key;scCs<|jjtjdd}|dkr8tjddS|S(Nterr_rets(error reading systemd configuration file(R t read_fileRR Rtlogterror(Rtsystemd_system_conf((s@/usr/lib/python2.7/site-packages/tuned/plugins/plugin_systemd.pyt_read_systemd_system_conf>s   cCstjtj}|jj||sLtjd|jj|dtt S|jj |tjstjdtj|jj|dtt StS(Ns(error writing systemd configuration filetno_errors/error replacing systemd configuration file '%s'( RR tTMP_FILE_SUFFIXR t write_to_fileR3R4tunlinkRRtrename(RR"ttmpfile((s@/usr/lib/python2.7/site-packages/tuned/plugins/plugin_systemd.pyt_write_systemd_system_confEs cCstjjtj|jS(N(RRtjoinRtPERSISTENT_STORAGE_DIRtname(R((s@/usr/lib/python2.7/site-packages/tuned/plugins/plugin_systemd.pyt_get_storage_filenameSscCs|j}|dk r|j}|jj|dddt}|jj||dkrv|j|tj }n|j |tj |}|j |ndS(NR1R7( R6RRAR R2RR:R0RtSYSTEMD_CPUAFFINITY_VARR-R=(RR"tfnametcpu_affinity_saved((s@/usr/lib/python2.7/site-packages/tuned/plugins/plugin_systemd.pyt_remove_systemd_tuningVs    cCs8|r4tjdtj|jtjdndS(Ns6removing '%s' systemd tuning previously added by Tuneds[you may need to manualy run 'dracut -f' to update the systemd configuration in initrd image(R3tinfoRRBREtconsole(RRt full_rollback((s@/usr/lib/python2.7/site-packages/tuned/plugins/plugin_systemd.pyt_instance_unapply_staticbs c CsQ|dkrdSdjd|jjtjddtjdd|DS(NR.t css|]}t|VqdS(N(R((t.0tv((s@/usr/lib/python2.7/site-packages/tuned/plugins/plugin_systemd.pys lss\s+t,s,\s+(RR>R tcpulist_unpackRR/(Rtcpulist((s@/usr/lib/python2.7/site-packages/tuned/plugins/plugin_systemd.pyt_cpulist_convert_unpackis Rt per_devicec Csld}d}|jj|jj|jj|}djd|jj|D}|j} | dk r|j | t j }|j |}n|r|j d|||S|rh|j} |jj| dddt} |dk r&| dkr&||kr&|jj| |dtntjdt j |t jf|j|j| t j |ndS(NRJcss|]}t|VqdS(N(R((RKRL((s@/usr/lib/python2.7/site-packages/tuned/plugins/plugin_systemd.pys ssRR1R7tmakedirs setting '%s' to '%s' in the '%s'(RR tunescapet _variablestexpandtunquoteR>RNR6R%RRBRPt _verify_valueRAR2RR9R3RFR R=R-( Rtenablingtvaluetverifytignore_missingt conf_affinitytconf_affinity_unpackedRLt v_unpackedR"RCRD((s@/usr/lib/python2.7/site-packages/tuned/plugins/plugin_systemd.pyt_cmdlinens"*%   $ (t__name__t __module__t__doc__R RRt classmethodRR%R-R0R6R=RARERRIRPtcommand_customR_(((s@/usr/lib/python2.7/site-packages/tuned/plugins/plugin_systemd.pyR s          (R.Rt decoratorst tuned.logsttunedRttuned.utils.commandsRt tuned.constsRRRtlogstgetR3tPluginR(((s@/usr/lib/python2.7/site-packages/tuned/plugins/plugin_systemd.pyts