Edit File: plugin_sysctl.cpython-36.opt-1.pyc
3 ��c������������������@���s����d�dl�Z�ddlmZ�ddlT�d�dlZd�dlT�d�dlmZ�d�dl j Z d�dlZd�dlZej j��ZddgZdd gZG�d d��dej�Zdd ��Zdd��Zdd��Zdd��Zdd��Zddd�ZdS�)�����N����)�base)�*)�commandsZbase_reachable_timeZretrans_timez /run/sysctl.dz /etc/sysctl.dc�������������������sJ���e�Zd�ZdZ��fdd�Zdd��Zdd��Zdd ��Zd d��Zdd d�Z ���Z S�)�SysctlPluginaI�� `sysctl`:: Sets various kernel parameters at runtime. + This plug-in is used for applying custom `sysctl` settings and should only be used to change system settings that are not covered by other *TuneD* plug-ins. If the settings are covered by other *TuneD* plug-ins, use those plug-ins instead. + The syntax for this plug-in is `_key_=_value_`, where `_key_` is the same as the key name provided by the `sysctl` utility. + .Adjusting the kernel runtime kernel.sched_min_granularity_ns value ==== ---- [sysctl] kernel.sched_min_granularity_ns=3000000 ---- ==== c����������������s$���t�t|��j||��d|�_t��|�_d�S�)NT)�superr����__init__Z_has_dynamic_optionsr����_cmd)�self�args�kwargs)� __class__���#/usr/lib/python3.6/plugin_sysctl.pyr���*���s����zSysctlPlugin.__init__c�������������C���sh���d|_�d|_|�j|j�}|�jj|i��|_t|j�dkr\tj d��|�j |��i�|_|�jj|��|j|_ d�S�)NFTr���z0recovering old sysctl settings from previous run)Z_has_dynamic_tuningZ_has_static_tuning�_storage_key�name�_storage�get�_sysctl_original�len�log�info�_instance_unapply_static�unsetZoptions�_sysctl)r ����instance�storage_keyr���r���r����_instance_init/���s���� zSysctlPlugin._instance_initc�������������C���s���|�j�|j�}|�jj|��d�S�)N)r���r���r���r���)r ���r���r���r���r���r����_instance_cleanup?���s����zSysctlPlugin._instance_cleanupc�������������C���s����xvt�|jj���D�]d\}}t|�}|d�kr8tjd|���q|�jj|�jj |��}|�j ||�}|d�k r||j|<�t||��qW�|�j |j�}|�jj||j��|�jjtjtj�r�tjd��t|j��d�S�)NzDsysctl option %s will not be set, failed to read the original value.zreapplying system sysctl)�listr����items�_read_sysctlr����error� _variables�expandr ���Zunquote�_process_assignment_modifiersr���� _write_sysctlr���r���r����setZ_global_cfgZget_bool�constsZCFG_REAPPLY_SYSCTLZCFG_DEF_REAPPLY_SYSCTLr����_apply_system_sysctl)r ���r����option�value�original_valueZ new_valuer���r���r���r����_instance_apply_staticC���s"���� z#SysctlPlugin._instance_apply_staticc�������������C���st���d}d}xft�|jj���D�]T\}}t|�}|�j|�jj|�|�}|d�k r|�j||�jj |�|�jj |�|�dkrd}qW�|S�)NTF) r���r���r ���r!���r%���r#���r$���Z _verify_valuer ���Z remove_ws)r ���r����ignore_missingZdevices�retr*���r+���Zcurr_valr���r���r����_instance_verify_staticY���s����$z$SysctlPlugin._instance_verify_staticFc�������������C���s*���x$t�|jj���D�]\}}t||��qW�d�S�)N)r���r���r ���r&���)r ���r���Z full_rollbackr*���r+���r���r���r���r���e���s����z%SysctlPlugin._instance_unapply_static)F)�__name__� __module__�__qualname__�__doc__r���r���r���r-���r0���r���� __classcell__r���r���)r ���r���r������s���r���c���������� ���C���s����i�}x\t�D�]T}ytj|�}W�n�tk r2���w Y�nX�x(|D�] }|jd�sJq:||kr:|||<�q:W�q W�x2t|j���D�]"}||�}d||f�}t||���qpW�td|���d�S�)Nz.confz%s/%sz/etc/sysctl.conf)�SYSCTL_CONFIG_DIRS�os�listdir�OSError�endswith�sorted�keys�_apply_sysctl_config_file)�instance_sysctl�files�d�flistZfname�pathr���r���r���r)���j���s ���� r)���c�������������C���s����t�jd|����yNt|�d��,}x$t|d�D�]\}}t|�|||��q(W�W�d�Q�R�X�t�jd|����W�nH�ttfk r��}�z(|jtjkr�t�j d|�t |�f���W�Y�d�d�}~X�nX�d�S�)Nz%Applying sysctl settings from file %s�rr���z.Finished applying sysctl settings from file %sz.Error reading sysctl settings from file %s: %s)r����debug�open� enumerate�_apply_sysctl_config_liner9����IOError�errno�ENOENTr"����str)rB���r>����f�lineno�line�er���r���r���r=���}���s����r=���c�������������C���s����|j���}t|�dks,|d�dks,|d�dkr0d�S�|jdd�}t|�dkr^tjd|�|f���d�S�|\}}|j���}t|�dkr�tjd|�|f���d�S�|j���}||kr�||�|kr�tjd|||�|f���t||d d ��d�S�)Nr����#�;�=r�������z Syntax error in file %s, line %dz2Overriding sysctl parameter '%s' from '%s' to '%s'T)r.���)�stripr����splitr���r"���r���r&���)rB���rM���rN���r>���Ztmpr*���r+���r���r���r���rG�������s&����$rG���c�������������C���s���d|�j�dd��S�)Nz/proc/sys/%s�.�/)�replace)r*���r���r���r����_get_sysctl_path����s����rY���c�������������C���s����t�|��}yht|d��B}d}x.t|�D�]"\}}|dkr$tjd|����d�S�q$W�|j��}W�d�Q�R�X�tjd|�|f���|S��ttfk r��}�z6|j t j kr�tjd|����ntjd|�t|�f���d�S�d�}~X�nX�d�S�)NrC�����r���zGFailed to read sysctl parameter '%s', multi-line values are unsupportedz&Value of sysctl parameter '%s' is '%s'zBFailed to read sysctl parameter '%s', the parameter does not existz(Failed to read sysctl parameter '%s': %s)rY���rE���rF���r���r"���rT���rD���r9���rH���rI���rJ���rK���)r*���rB���rL���rN����ir+���rO���r���r���r���r!�������s(���� r!���Fc�������������C���s����t�|��}tjj|�tkr*tjd|����dS�y6tjd|�|f���t|d��}|j |��W�d�Q�R�X�dS��t tfk r��}�zJ|jtj kr�|r�tjntj}|d|�|f���ntjd|�|t|�f���dS�d�}~X�nX�d�S�)Nz+Refusing to set deprecated sysctl option %sFz%Setting sysctl parameter '%s' to '%s'�wTzIFailed to set sysctl parameter '%s' to '%s', the parameter does not existz/Failed to set sysctl parameter '%s' to '%s': %s)rY���r7���rB����basename�DEPRECATED_SYSCTL_OPTIONSr���r"���rD���rE����writer9���rH���rI���rJ���rK���)r*���r+���r.���rB���rL���rO���Zlog_funcr���r���r���r&�������s&����r&���)F)�rerZ���r���Z decoratorsZ tuned.logsZtuned� subprocessZtuned.utils.commandsr���Ztuned.constsr(���rI���r7���Zlogsr���r���r^���r6���ZPluginr���r)���r=���rG���rY���r!���r&���r���r���r���r����<module>���s&��� Y