HEX
Server: Apache
System: Linux insrv.serversdaddy.com 5.14.0-362.24.2.el9_3.x86_64 #1 SMP PREEMPT_DYNAMIC Sat Mar 30 14:11:54 EDT 2024 x86_64
User: jsaha (1066)
PHP: 8.3.6
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3.9/site-packages/tuned/plugins/__pycache__/plugin_sysctl.cpython-39.opt-1.pyc
a

Y��d �@s�ddlZddlmZddlTddlZddlTddlmZddl	m
Z
ddlZddlZej
��ZddgZdd	gZGd
d�dej�Zdd
�Zdd�Zdd�Zdd�Zdd�Zddd�ZdS)�N�)�base)�*)�commandsZbase_reachable_timeZretrans_timez
/run/sysctl.dz
/etc/sysctl.dcsNeZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Ze	j
fd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|i|��d|_t�|_dS)NT)�superr�__init__Z_has_dynamic_optionsr�_cmd)�self�args�kwargs��	__class__��?/usr/lib/python3.9/site-packages/tuned/plugins/plugin_sysctl.pyr*szSysctlPlugin.__init__cCshd|_d|_|�|j�}|j�|i�|_t|j�dkr\t�	d�|�
|�i|_|j�|�|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�unset�options�_sysctl�r
�instance�storage_keyrrr�_instance_init/s

zSysctlPlugin._instance_initcCs|�|j�}|j�|�dS�N)rrrrrrrr�_instance_cleanup?szSysctlPlugin._instance_cleanupcCs�t|j���D]d\}}t|�}|dur6t�d|�q|j�|j�	|��}|�
||�}|dur||j|<t||�q|�
|j�}|j�||j�|j�tjtj�r�t�d�t|j�dS)NzDsysctl option %s will not be set, failed to read the original value.zreapplying system sysctl)�listr�items�_read_sysctlr�error�
_variables�expandr	�unquote�_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_staticcCspd}d}t|j���D]T\}}t|�}|�|j�|�|�}|dur|�||j�	|�|j�	|�|�dkrd}q|S)NTF)
r#rr$r%r*r'r(Z
_verify_valuer	Z	remove_ws)r
r�ignore_missingZdevices�retr/r0Zcurr_valrrr�_instance_verify_staticYs$z$SysctlPlugin._instance_verify_staticcCs&t|j���D]\}}t||�qdSr!)r#rr$r+)r
rZrollbackr/r0rrrresz%SysctlPlugin._instance_unapply_static)
�__name__�
__module__�__qualname__�__doc__rr r"r2r5r-Z
ROLLBACK_SOFTr�
__classcell__rrr
rrsrc	Cs�i}tD]P}zt�|�}Wnty0YqYn0|D] }|�d�sFq6||vr6|||<q6qt|���D]"}||}d||f}t||�qftd|�dS)Nz.confz%s/%sz/etc/sysctl.conf)�SYSCTL_CONFIG_DIRS�os�listdir�OSError�endswith�sorted�keys�_apply_sysctl_config_file)�instance_sysctl�files�d�flist�fname�pathrrrr.js 

r.c
Cs�t�d|�z^t|d��2}t|d�D]\}}t||||�q&Wd�n1sR0Yt�d|�WnJttfy�}z.|jtjkr�t�	d|t
|�f�WYd}~n
d}~00dS)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_liner>�IOError�errno�ENOENTr&�str)rHrC�f�lineno�line�errrrB}s.�

�rBcCs�|��}t|�dks,|ddks,|ddkr0dS|�dd�}t|�dkr^t�d||f�dS|\}}|��}t|�dkr�t�d||f�dS|��}||vr�|||kr�t�d||||f�t||d	d
�dS)Nr�#�;�=r�z Syntax error in file %s, line %dz2Overriding sysctl parameter '%s' from '%s' to '%s'T)r3)�stripr�splitrr&rr+)rHrSrTrC�tmpr/r0rrrrM�s,$���rMcCsd|�dd�S)Nz/proc/sys/%s�.�/)�replace)r/rrr�_get_sysctl_path�sr`c
Cs�t|�}z�t|d��X}d}t|�D]2\}}|dkr"t�d|�Wd�WdSq"|��}Wd�n1sr0Yt�d||f�|WSttfy�}z@|j	t	j
kr�t�d|�nt�d|t|�f�WYd}~dSd}~00dS)NrI�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)r`rKrLrr&rZrJr>rNrOrPrQ)r/rHrRrT�ir0rUrrrr%�s0�&��
�r%Fc
Cs�t|�}tj�|�tvr*t�d|�dSzLt�d||f�t|d��}|�	|�Wd�n1sh0YWdSt
tfy�}zT|jtj
kr�|r�tjntj}|d||f�nt�d||t|�f�WYd}~dSd}~00dS)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)r`r<rH�basename�DEPRECATED_SYSCTL_OPTIONSrr&rJrK�writer>rNrOrPrQ)r/r0r3rHrRrUZlog_funcrrrr+�s.��(��r+)F)�rerarZ
decoratorsZ
tuned.logsZtuned�
subprocessZtuned.utils.commandsrZtuned.constsr-rOr<Zlogsrrrer;ZPluginrr.rBrMr`r%r+rrrr�<module>s(
�Y