HEX
Server: LiteSpeed
System: Linux us-phx-web629.main-hosting.eu 5.14.0-503.23.2.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Feb 12 05:52:18 EST 2025 x86_64
User: u756937133 (756937133)
PHP: 8.2.30
Disabled: passthru,chgrp
Upload Files
File: //lib/python3.9/site-packages/tuned/plugins/__pycache__/plugin_service.cpython-39.pyc
a

�Գf�)�@s�ddlmZddlZddlmZddlTddlZddlZddlZ	ddl
mZe	j�
�Ze�ZGdd�d�ZGdd	�d	�ZGd
d�de�ZGdd
�d
e�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�dej�ZdS)�)�base�N)�*)�commandsc@seZdZddd�ZdS)�ServiceNcCs||_||_||_||_dS�N)�enable�start�cfg_file�runlevel)�selfr	rr
r�r
�@/usr/lib/python3.9/site-packages/tuned/plugins/plugin_service.py�__init__szService.__init__)NNNN)�__name__�
__module__�__qualname__rr
r
r
rr
src@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�InitHandlercCs(t�dg�\}}|dkr$|��dSdS)Nrr���)�cmd�execute�split�r�retcode�outr
r
r�runlevel_getszInitHandler.runlevel_getcCst�ddg�dS)NZtelinit�q�rr�rr
r
r�
daemon_reloadszInitHandler.daemon_reloadcCsdSrr
�r�namer
r
r
r�cfg_installszInitHandler.cfg_installcCsdSrr
r r
r
r�
cfg_uninstallszInitHandler.cfg_uninstallcCsdSrr
r r
r
r�
cfg_verify"szInitHandler.cfg_verifyN)rrrrrr"r#r$r
r
r
rrs
rc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�SysVBasicHandlercCst�d|dg�dS)N�servicer	r�rr!r
r
rr	'szSysVBasicHandler.startcCst�d|dg�dS)Nr&�stoprr'r
r
rr(*szSysVBasicHandler.stopcCs
t��dSr��NotImplementedError�rr!rr
r
rr-szSysVBasicHandler.enablecCs
t��dSrr)r+r
r
r�disable0szSysVBasicHandler.disablecCs"tjd|dgdgd�\}}|dkS)Nr&�statusr�Z	no_errorsr�rr!rrr
r
r�
is_running3szSysVBasicHandler.is_runningcCs
t��dSrr)r+r
r
r�
is_enabled7szSysVBasicHandler.is_enabledN)	rrrr	r(rr,r0r1r
r
r
rr%&sr%c@s$eZdZdd�Zdd�Zdd�ZdS)�SysVHandlercCst�dd||dg�dS)N�	chkconfig�--level�onrr+r
r
rr;szSysVHandler.enablecCst�dd||dg�dS)Nr3r4�offrr+r
r
rr,>szSysVHandler.disablecCsBt�dd|g�\}}|dkr>|�dt|��ddd�dkSdS)Nr3�--listr�%s:r�r5�rrr�str�rr!rrrr
r
rr1AszSysVHandler.is_enabledN�rrrrr,r1r
r
r
rr2:sr2c@s$eZdZdd�Zdd�Zdd�ZdS)�
SysVRCHandlercCst�dd||dg�dS)N�sysv-rc-confr4r5rr+r
r
rrFszSysVRCHandler.enablecCst�dd||dg�dS)Nr?r4r6rr+r
r
rr,IszSysVRCHandler.disablecCsBt�dd|g�\}}|dkr>|�dt|��ddd�dkSdS)Nr?r7rr8rr9r5r:r<r
r
rr1LszSysVRCHandler.is_enabledNr=r
r
r
rr>Esr>c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�
OpenRCHandlercCs&t�ddg�\}}|dkr"|��SdS)Nz	rc-statusz-rr�rr�striprr
r
rrQszOpenRCHandler.runlevel_getcCst�d|dg�dS)N�
rc-servicer	rr'r
r
rr	UszOpenRCHandler.startcCst�d|dg�dS)NrCr(rr'r
r
rr(XszOpenRCHandler.stopcCst�dd||g�dS)N�	rc-update�addrr+r
r
rr[szOpenRCHandler.enablecCst�dd||g�dS)NrD�delrr+r
r
rr,^szOpenRCHandler.disablecCs"tjd|dgdgd�\}}|dkS)NrCr-rr.rr/r
r
rr0aszOpenRCHandler.is_runningcCs2t�dd|g�\}}tt�dt�|�d|��S)NrDZshowz\b)rr�bool�re�search�escaper<r
r
rr1eszOpenRCHandler.is_enabledN)
rrrrr	r(rr,r0r1r
r
r
rr@Psr@c@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�SystemdHandlercCsdS)N�r
rr
r
rrkszSystemdHandler.runlevel_getcCst�dd|g�dS)N�	systemctlZrestartrr'r
r
rr	nszSystemdHandler.startcCst�dd|g�dS)NrMr(rr'r
r
rr(qszSystemdHandler.stopcCst�dd|g�dS)NrMrrr+r
r
rrtszSystemdHandler.enablecCst�dd|g�dS)NrMr,rr+r
r
rr,wszSystemdHandler.disablecCs"tjdd|gdgd�\}}|dkS)NrMz	is-activerr.rr/r
r
rr0zszSystemdHandler.is_runningcCs>tjdd|gdgd�\}}|��}|dkr.dS|dkr:dSdS)	NrMz
is-enabledrr.ZenabledTZdisabledFrA)rr!rrrr-r
r
rr1~szSystemdHandler.is_enabledc
Cs�t�d||f�tj�|�s0t�d|�dStj|}zt�|tj	�Wn8t
y�}z t�d||f�WYd}~dSd}~00t�||�|�
�dS)NzCinstalling service configuration overlay file '%s' for service '%s'z)Unable to find service configuration '%s'z#Unable to create directory '%s': %s)�log�info�os�path�exists�error�consts�SERVICE_SYSTEMD_CFG_PATH�makedirsZDEF_SERVICE_CFG_DIR_MODE�OSErrorr�copyr)rr!r
�dirpath�er
r
rr"�s
zSystemdHandler.cfg_installc	Cslt�d||f�tj|}d|tj�|�f}t�|�|�	�zt�
|�WnttfyfYn0dS)NzEuninstalling service configuration overlay file '%s' for service '%s'�%s/%s)
rNrOrTrUrPrQ�basenamer�unlinkr�rmdir�FileNotFoundErrorrW)rr!r
rYrQr
r
rr#�s

zSystemdHandler.cfg_uninstallcCs�|durdSdtj|tj�|�f}tj�|�sHt�d||f�dStj�|�sjt�d||f�dSt�	|�}t�	|�}||kS)Nr[z.Unable to find service '%s' configuration '%s'Fz0Service '%s' configuration not installed in '%s')
rTrUrPrQr\rRrNrSrZ	sha256sum)rr!r
rQZ
sha256sum1Z
sha256sum2r
r
rr$�s

zSystemdHandler.cfg_verifyN)
rrrrr	r(rr,r0r1r"r#r$r
r
r
rrKisrKcsneZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Ze
jfdd�Z�ZS)�
ServicePlugina1
	`service`::
	
	Plug-in for handling sysvinit, sysv-rc, openrc and systemd services.
	+
	The syntax is as follows:
	+
	[subs="+quotes,+macros"]
	----
	[service]
	service.__service_name__=__commands__[,file:__file__]
	----
	+
	Supported service-handling `_commands_` are `start`, `stop`, `enable`
	and `disable`. The optional `file:__file__` directive installs an overlay
	configuration file `__file__`. Multiple commands must be comma (`,`)
	or semicolon (`;`) separated. If the directives conflict, the last
	one is used.
	+
	The service plugin supports configuration overlays only for systemd.
	In other init systems, this directive is ignored. The configuration
	overlay files are copied to `/etc/systemd/system/__service_name__.service.d/`
	directories. Upon profile unloading, the directory is removed if it is empty.
	+
	With systemd, the `start` command is implemented by `restart` in order
	to allow loading of the service configuration file overlay.
	+
	NOTE: With non-systemd init systems, the plug-in operates on the
	current runlevel only.
	+
	.Start and enable the `sendmail` service with an overlay file
	====
	----
	[service]
	service.sendmail=start,enable,file:${i:PROFILE_DIR}/tuned-sendmail.conf
	----
	The internal variable `${i:PROFILE_DIR}` points to the directory
	from which the profile is loaded.
	====
	cs*tt|�j|i|��d|_|��|_dS)NT)�superr`rZ_has_dynamic_options�_detect_init_system�
_init_handler)r�args�kwargs��	__class__r
rr�szServicePlugin.__init__cCstj|dgd�\}}|dkS)Nrr.r)rZcommandrrr
r
r�
_check_cmd�szServicePlugin._check_cmdcCs�|�ddg�rt�d�t�S|�dg�r:t�d�t�S|�ddg�rXt�d�t�S|�d	dg�rvt�d
�t�St�d��dS)NrMr-zdetected systemdr3zdetected generic sysvinitzupdate-rc.dz-hzdetected sysv-rcrDzdetected openrcz8Unable to detect your init system, disabling the plugin.)	rhrN�debugrKr2r>r@�
exceptionsZNotSupportedPluginExceptionrr
r
rrb�s



z!ServicePlugin._detect_init_systemcCs�t�d|�}t�}|D]v}|dkr*d|_q|dkr:d|_q|dkrJd|_q|dkrZd|_q|dd�d	krz|dd�|_qt�d
||f�q|S)Nz
\s*[,;]\s*rTr,Fr	r(�zfile:z*service '%s': invalid service option: '%s')rHrrrr	r
rNrS)rr!�val�lr&�ir
r
r�_parse_service_options�sz$ServicePlugin._parse_service_optionscs6d|_d|_t��fdd�|j��D���_i|_dS)NFTc	sTg|]L\}}|dd�dkrt|�dkr|dd���|dd��j�|��f�qS)N�zservice.)�lenroZ
_variables�expand)�.0�option�valuerr
r�
<listcomp>s
�
�z0ServicePlugin._instance_init.<locals>.<listcomp>)Z_has_dynamic_tuningZ_has_static_tuning�collections�OrderedDict�options�items�	_services�_services_original�r�instancer
rr�_instance_inits�
zServicePlugin._instance_initcCsdSrr
r}r
r
r�_instance_cleanup	szServicePlugin._instance_cleanupcCsT|r|j�|�n|dur&|j�|�|r:|j�||�n|durP|j�||�dSr)rcr	r(rr,)rr!r	rrr
r
r�_process_serviceszServicePlugin._process_servicecCs�|j��}|dur t�d�dS|j��D]�}|j�|d|�}|j�|d�}t|||dj	|�|j
|d<|dj	r�|j�|d|dj	�|�|d|dj
|dj|�q*dS)NzCannot detect runlevelrr)rcrrNrSr{rzr1r0rr
r|r"r�r	r)rr~rr&r1r0r
r
r�_instance_apply_statics


z$ServicePlugin._instance_apply_staticc
CsB|j��}|dur&t�tjd�dSd}|j��D�]}|j�|d|dj	�}|rzt�
tjd|d|dj	f�nR|dur�t�tjd|d|dj	f�d}n"t�
tjd|d|dj	f�|j�
|d|�}|j�|d�}	|�d	|d|dj|	|�du�rd}|�d
|d|dj||�dur4d}q4|S)Nzcannot detect runlevelFTrrz'service '%s' configuration '%s' matchesz'service '%s' configuration '%s' differszservice '%s' configuration '%s'z
%s runningz
%s enabled)rcrrNrSrTZSTR_VERIFY_PROFILE_FAILr{rzr$r
rOZSTR_VERIFY_PROFILE_OKZ STR_VERIFY_PROFILE_VALUE_MISSINGr1r0Z
_verify_valuer	r)
rr~Zignore_missingZdevicesr�retr&Zret_cfg_verifyr1r0r
r
r�_instance_verify_static$s(
$""$"z%ServicePlugin._instance_verify_staticcCsHt|j���D]4\}}|jr,|j�||j�|�||j|j|j	�qdSr)
�listr|rzr
rcr#r�r	rr)rr~Zrollbackr!rur
r
r�_instance_unapply_static<sz&ServicePlugin._instance_unapply_static)rrr�__doc__rrhrbrorr�r�r�r�rTZ
ROLLBACK_SOFTr��
__classcell__r
r
rfrr`�s)	
r`)rLrrwZtuned.constsrTZ
decoratorsrPrHZ
tuned.logsZtunedZtuned.utils.commandsrZlogs�getrNrrrr%r2r>r@rKZPluginr`r
r
r
r�<module>s"
B