HEX
Server: LiteSpeed
System: Linux w5304130.sdnsbox.com 4.18.0-425.3.1.lve.el8.x86_64 #1 SMP Tue Nov 22 22:59:23 EST 2022 x86_64
User: makefitmeserver (1001)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/tuned/plugins/__pycache__/plugin_sysctl.cpython-36.opt-1.pyc
3

]�b��@s�ddlZddlmZddlTddlZddlTddlmZddl	j
Z
ddlZddlZej
j�ZddgZdd	gZGd
d�dej�Zdd
�Zdd�Zdd�Zdd�Zdd�Zddd�ZdS)�N�)�base)�*)�commandsZbase_reachable_timeZretrans_timez
/run/sysctl.dz
/etc/sysctl.dcsJeZdZdZ�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
	----
	====
	cs$tt|�j||�d|_t�|_dS)NT)�superr�__init__Z_has_dynamic_optionsr�_cmd)�self�args�kwargs)�	__class__��#/usr/lib/python3.6/plugin_sysctl.pyr*szSysctlPlugin.__init__cCshd|_d|_|j|j�}|jj|i�|_t|j�dkr\tj	d�|j
|�i|_|jj|�|j|_
dS)NFTrz0recovering 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_keyrrr�_instance_init/s

zSysctlPlugin._instance_initcCs|j|j�}|jj|�dS)N)rrrr)r
rrrrr�_instance_cleanup?szSysctlPlugin._instance_cleanupcCs�xvt|jj��D]d\}}t|�}|dkr8tjd|�q|jj|jj	|��}|j
||�}|dk	r||j|<t||�qW|j
|j�}|jj||j�|jjtjtj�r�tjd�t�dS)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_sysctlrrr�setZ_global_cfgZget_bool�constsZCFG_REAPPLY_SYSCTLZCFG_DEF_REAPPLY_SYSCTLr�_apply_system_sysctl)r
r�option�value�original_valueZ	new_valuerrrr�_instance_apply_staticCs"


z#SysctlPlugin._instance_apply_staticcCstd}d}xft|jj��D]T\}}t|�}|j|jj|�|�}|dk	r|j||jj	|�|jj	|�|�dkrd}qW|S)NTF)
rrr r!r%r#r$Z
_verify_valuer	Z	remove_ws)r
r�ignore_missingZdevices�retr*r+Zcurr_valrrr�_instance_verify_staticYs$z$SysctlPlugin._instance_verify_staticFcCs*x$t|jj��D]\}}t||�qWdS)N)rrr r&)r
rZ
full_rollbackr*r+rrrresz%SysctlPlugin._instance_unapply_static)F)�__name__�
__module__�__qualname__�__doc__rrrr-r0r�
__classcell__rr)r
rrsrc
Cs�i}x\tD]T}ytj|�}Wntk
r2w
YnXx(|D] }|jd�sJq:||kr:|||<q:Wq
Wx0t|j��D] }||}d||f}t|�qpWtd�dS)Nz.confz%s/%sz/etc/sysctl.conf)�SYSCTL_CONFIG_DIRS�os�listdir�OSError�endswith�sorted�keys�_apply_sysctl_config_file)�files�d�flistZfname�pathrrrr)js 


r)cCs�tjd|�yLt|d��*}x"t|d�D]\}}t|||�q(WWdQRXtjd|�WnHttfk
r�}z(|jtjkr�tj	d|t
|�f�WYdd}~XnXdS)Nz%Applying sysctl settings from file %s�rrz.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)rA�f�lineno�line�errrr=}sr=cCs�|j�}t|�dks,|ddks,|ddkr0dS|jdd�}t|�dkr^tjd||f�dS|\}}|j�}t|�dkr�tjd||f�dS|j�}t||dd	�dS)
Nr�#�;�=r�z Syntax error in file %s, line %dT)r.)�stripr�splitrr"r&)rArLrMZtmpr*r+rrrrF�s $rFcCsd|jdd�S)Nz/proc/sys/%s�.�/)�replace)r*rrr�_get_sysctl_path�srXcCs�t|�}yht|d��B}d}x.t|�D]"\}}|dkr$tjd|�dSq$W|j�}WdQRXtjd||f�|Sttfk
r�}z6|j	t	j
kr�tjd|�ntjd|t|�f�dSd}~XnXdS)NrB�rzGFailed 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)rXrDrErr"rSrCr9rGrHrIrJ)r*rArKrM�ir+rNrrrr!�s(
r!FcCs�t|�}tjj|�tkr*tjd|�dSy6tjd||f�t|d��}|j	|�WdQRXdSt
tfk
r�}zJ|jtj
kr�|r�tjntj}|d||f�ntjd||t|�f�dSd}~XnXdS)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)rXr7rA�basename�DEPRECATED_SYSCTL_OPTIONSrr"rCrD�writer9rGrHrIrJ)r*r+r.rArKrNZlog_funcrrrr&�s&r&)F)�rerYrZ
decoratorsZ
tuned.logsZtuned�
subprocessZtuned.utils.commandsrZtuned.constsr(rHr7Zlogsrrr]r6ZPluginrr)r=rFrXr!r&rrrr�<module>s&

Y