| Current File : //opt/cloudlinux/venv/lib64/python3.11/site-packages/xray/manager/__pycache__/base.cpython-311.pyc |
�
��me;} � � � d Z ddlZddlZddlZddlZddlZddlZddlZddlmZm Z ddl
m
Z
ddlmZm
Z
mZ ddlZddlmZ ddlmZmZ ddlmZmZ dd lmZ dd
lmZ ddlmZ dd
lmZ ddl m!Z! ddl"m#Z# ddl$m%Z%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z, ddl-m.Z.m/Z/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6m7Z7m8Z8 ddl9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z? ddl@mAZAmBZBmCZCmDZDmEZE G d� d� � ZFdS )zX
This module contains classes implementing X-Ray Manager behaviour
and helper functions
� N)�datetime� timedelta)�glob)�Iterator�Optional�Tuple)�Feature)�is_panel_feature_supported�get_installed_php_versions)�php_get_vhost_versions�is_wpos_supported)�is_litespeed_running)�drop_privileges)�
disable_quota� )�ClWposGetter)�
get_client)�ContinuousManager)�XRayManagerError�XRayAPIError)�FPMReloadController)�open_local_storage)�NginxUserCache)�
DomainInfo�Task� url_split)�ManageUserAgent)�AdvancedMetrics)�get_xray_exec_user�user_mode_restricted�nginx_user_cache)�no_active_tasks�switch_schedstats�ssa_disabled�_cagefsctl_remount�set_privileges�is_file_recently_modified)�create_ini_files�remove_ini_files�is_global_ini_mode�remove_global_ini_mode_marker�create_global_ini_mode_markerc � � e Zd ZdZdZddddddd d
ddd
dd�Zdefd�Zdee fd�Z
defd�Zdede
fd�Zdedefd�Zdedefd�Zdedefd�Zdede
fd�Zdeddfd�Zd� Zdedefd �Zed!edeej fd"�� � Zd#eddfd$�Zd%edefd&�Zd'edefd(�Zdede
fd)�Z d*edefd+�Z!d*eddfd,�Z"edede#ee f fd-�� � Z$d.eddfd/�Z%edefd0�� � Z&d]d2�Z'e(d3d3d4�d%ed5ed6ed7e d8e
d9e
dd1fd:�� � Z)d%edd1fd;�Z*d<d=�d%ed7e dd1fd>�Z+d?edd1fd@�Z,dA� Z-e(d?edd1fdB�� � Z.d?edd1fdC�Z/edDede
fdE�� � Z0d]dF�Z1edGe2dHdIfdJ�� � Z3d?edd1fdK�Z4d%edLedd1fdM�Z5d%edd1fdN�Z6d%edd1fdO�Z7d%edd1fdP�Z8d]dQ�Z9d]dR�Z:dSedd1fdT�Z;dSedUe dd1fdV�Z<d]dW�Z=d]dX�Z>d]dY�Z?d]dZ�Z@d]d[�ZAd]d\�ZBdS )^�BaseManagerz�
Basic manager abstract class.
Implements methods common for all managers.
Requires managers to implement their custom methods.
z/var/run/xray-agent.pidz/opt/alt/php54/link/confz/opt/alt/php55/link/confz/opt/alt/php56/link/confz/opt/alt/php70/link/confz/opt/alt/php71/link/confz/opt/alt/php72/link/confz/opt/alt/php73/link/confz/opt/alt/php74/link/confz/opt/alt/php80/link/confz/opt/alt/php81/link/confz/opt/alt/php82/link/confz/opt/alt/php83/link/conf)z alt-php54z alt-php55z alt-php56z alt-php70z alt-php71z alt-php72z alt-php73z alt-php74z alt-php80z alt-php81z alt-php82z alt-php83� system_idc �: � t � � | _ || _ t j d� � | _ t
� � | _ t � � | _ t t t j
f| _ t d� � | j �� � | _ d S )N�manager�lists�r/ )r �api_client_object�sys_id�logging� getLogger�loggerr �continuous_monitoringr �manage_user_agent�OSError�
ValueError�
subprocess�SubprocessError�subprocess_errors�
ui_api_client)�selfr/ s �H/opt/cloudlinux/venv/lib64/python3.11/site-packages/xray/manager/base.py�__init__zBaseManager.__init__X s~ � �!+���������'� �2�2���%6�%8�%8��"�!0�!2�!2����Z��!;�"
��� 1�Z��0�0�4�;�G�G�G����� �returnc � � t | j � � 5 }t |� � � � � cd d d � � S # 1 swxY w Y d S # t t
f$ r t
j d� � Y d S w xY w)Nz'Unable to read daemon pid from pidfile.)�open�DAEMON_PIDFILE�int�readr; �IOErrorr6 �warning)rA �fs rB �_get_daemon_pidzBaseManager._get_daemon_pidc s� � � G��d�)�*�*�
%�a��1�6�6�8�8�}�}�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%����
%�
%�
%�
%�
%�
%����!� G� G� G��O�E�F�F�F�F�F�F� G���s3 �A �!A�A �A�A �A�A �%A:�9A:c � � | j S )z\
Get supported PHP versions
:return: a dict with supported versions
)�VERSIONS�rA s rB �supported_versionszBaseManager.supported_versionsj s � �
�}�rD �php_versionc �. � || � � � v S )z�
Check if given PHP version is supported
:param php_version: PHP version, e.g. 'alt-phpXY'
:return: True if version is supported, False otherwise
)rR )rA rS s rB �is_version_supportedz BaseManager.is_version_supportedq s � � �d�5�5�7�7�7�7rD �domain_infoc �Z � | � � � � |j � � S )zh
Get a path to directory for additional ini file for based on
panel-set version
)rR �get�panel_php_version�rA rV s rB � _ini_pathzBaseManager._ini_pathy s'